diff --git a/Library/Homebrew/dev-cmd/irb.rb b/Library/Homebrew/dev-cmd/irb.rb index 700cbe0097..ac27cf16af 100644 --- a/Library/Homebrew/dev-cmd/irb.rb +++ b/Library/Homebrew/dev-cmd/irb.rb @@ -5,6 +5,9 @@ #: If `--pry` is passed or HOMEBREW_PRY is set, pry will be #: used instead of irb. +require "cli_parser" +require "utils/env" + class Symbol def f(*args) Formulary.factory(to_s, *args) @@ -21,7 +24,12 @@ module Homebrew module_function def irb - if ARGV.include? "--examples" + args = Homebrew::CLI::Parser.new do + switch "--examples" + switch "--pry" + end.parse + + if args.examples? puts "'v8'.f # => instance of the v8 formula" puts ":hub.f.installed?" puts ":lua.f.methods - 1.methods" @@ -29,7 +37,7 @@ module Homebrew return end - if ARGV.pry? + if args.pry? || Utils::EnvVars.pry? Homebrew.install_gem_setup_path! "pry" require "pry" Pry.config.prompt_name = "brew" @@ -45,7 +53,7 @@ module Homebrew ohai "Interactive Homebrew Shell" puts "Example commands available with: brew irb --examples" - if ARGV.pry? + if args.pry? || Utils::EnvVars.pry? Pry.start else IRB.start diff --git a/Library/Homebrew/extend/ARGV.rb b/Library/Homebrew/extend/ARGV.rb index 8f8a63c7ef..0a66a0abe6 100644 --- a/Library/Homebrew/extend/ARGV.rb +++ b/Library/Homebrew/extend/ARGV.rb @@ -268,10 +268,6 @@ module HomebrewArgvExtension include? "--fetch-HEAD" end - def pry? - include?("--pry") || !ENV["HOMEBREW_PRY"].nil? - end - # eg. `foo -ns -i --bar` has three switches, n, s and i def switch?(char) return false if char.length > 1 diff --git a/Library/Homebrew/utils/env.rb b/Library/Homebrew/utils/env.rb new file mode 100644 index 0000000000..7a4709fb51 --- /dev/null +++ b/Library/Homebrew/utils/env.rb @@ -0,0 +1,9 @@ +module Utils + module EnvVars + class << self + def pry? + !ENV["HOMEBREW_PRY"].nil? + end + end + end +end