0
0
Fork 0
mirror of https://github.com/ohmyzsh/ohmyzsh.git synced 2024-09-19 04:01:21 +02:00
ohmyzsh/plugins/bundler
Nick Fagerlund a41d308f70 bundler: make it play nice with functions that call wrapped commands (#8271)
When another function calls one of the bundler plugin's wrapper functions, the
command to run gets passed as an array instead of a space-separated string. That
works fine when the arguments are expanded alone, like `bundle exec $@`, but
something like `./bin/$@` will expand to something like `./bin/rake
./bin/--silent ./bin/--tasks`, which of course will explode. This was causing a
nasty interaction with the rake-fast plugin, and I'd be shocked if it wasn't
causing other problems.

The fix is to explicitly turn off the `RC_EXPAND_PARAM` option for that expansion.
See http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion
for more details.
2019-10-18 18:43:25 +02:00
..
_bundler Add 'outdated' and 'platform' completions to bundler plugin 2014-07-15 16:42:23 +02:00
bundler.plugin.zsh bundler: make it play nice with functions that call wrapped commands (#8271) 2019-10-18 18:43:25 +02:00
README.md Add rubocop to bundler readme 2019-10-02 11:01:16 -04:00

Bundler

  • adds completion for basic bundler commands
  • adds short aliases for common bundler commands
    • be aliased to bundle exec. It also supports aliases (if rs is rails server, be rs will bundle-exec rails server).
    • bl aliased to bundle list
    • bp aliased to bundle package
    • bo aliased to bundle open
    • bout aliased to bundle outdated
    • bu aliased to bundle update
    • bi aliased to bundle install --jobs=<cpu core count> (only for bundler >= 1.4.0)
  • adds a wrapper for common gems:
    • looks for a binstub under ./bin/ and executes it (if present)
    • calls bundle exec <gem executable> otherwise

Common gems wrapped by default (by name of the executable): annotate, cap, capify, cucumber, foodcritic, guard, hanami, irb, jekyll, kitchen, knife, middleman, nanoc, pry, puma, rackup, rainbows, rake, rspec, rubocop, shotgun, sidekiq, spec, spork, spring, strainer, tailor, taps, thin, thor, unicorn and unicorn_rails.

Configuration

Please use the exact name of the executable and not the gem name.

Add additional gems to be wrapped

Add this before the plugin-list in your .zshrc:

BUNDLED_COMMANDS=(rubocop)
plugins=(... bundler ...)

This will add the wrapper for the rubocop gem (i.e. the executable).

Exclude gems from being wrapped

Add this before the plugin-list in your .zshrc:

UNBUNDLED_COMMANDS=(foreman spin)
plugins=(... bundler ...)

This will exclude the foreman and spin gems (i.e. their executable) from being wrapped.

Excluded gems

These gems should not be called with bundle exec. Please see issue #2923 on GitHub for clarification.

berks foreman mailcatcher rails ruby spin