diff options
| author | Mike McQuaid | 2018-02-28 14:25:16 +0000 |
|---|---|---|
| committer | GitHub | 2018-02-28 14:25:16 +0000 |
| commit | 4176399537f6cff28e6e94b5473870f3d89d1024 (patch) | |
| tree | a9c8df6c73b8451b754803bbdadf41e35854ba95 /Library/Homebrew/dev-cmd | |
| parent | 8a23df7f76978df8df1efb65872e54ecfc6b831b (diff) | |
| parent | 2205f62ec672643b845579f8687b0372b256f485 (diff) | |
| download | brew-4176399537f6cff28e6e94b5473870f3d89d1024.tar.bz2 | |
Merge pull request #3851 from MikeMcQuaid/pry
irb: add pry support.
Diffstat (limited to 'Library/Homebrew/dev-cmd')
| -rw-r--r-- | Library/Homebrew/dev-cmd/irb.rb | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/Library/Homebrew/dev-cmd/irb.rb b/Library/Homebrew/dev-cmd/irb.rb new file mode 100644 index 000000000..700cbe009 --- /dev/null +++ b/Library/Homebrew/dev-cmd/irb.rb @@ -0,0 +1,54 @@ +#: * `irb` [`--examples`] [`--pry`]: +#: Enter the interactive Homebrew Ruby shell. +#: +#: If `--examples` is passed, several examples will be shown. +#: If `--pry` is passed or HOMEBREW_PRY is set, pry will be +#: used instead of irb. + +class Symbol + def f(*args) + Formulary.factory(to_s, *args) + end +end + +class String + def f(*args) + Formulary.factory(self, *args) + end +end + +module Homebrew + module_function + + def irb + if ARGV.include? "--examples" + puts "'v8'.f # => instance of the v8 formula" + puts ":hub.f.installed?" + puts ":lua.f.methods - 1.methods" + puts ":mpd.f.recursive_dependencies.reject(&:installed?)" + return + end + + if ARGV.pry? + Homebrew.install_gem_setup_path! "pry" + require "pry" + Pry.config.prompt_name = "brew" + else + require "irb" + end + + require "formula" + require "keg" + + $LOAD_PATH.unshift("#{HOMEBREW_LIBRARY_PATH}/cask/lib") + require "hbc" + + ohai "Interactive Homebrew Shell" + puts "Example commands available with: brew irb --examples" + if ARGV.pry? + Pry.start + else + IRB.start + end + end +end |
