irb: Use Parser to parse args

This commit is contained in:
Gautham Goli 2018-03-24 20:04:45 +05:30
parent 2ec684a123
commit 164f47a108
3 changed files with 20 additions and 7 deletions

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,9 @@
module Utils
module EnvVars
class << self
def pry?
!ENV["HOMEBREW_PRY"].nil?
end
end
end
end