Category: ruby

  • gem environment, or where are my gems being loaded from, etc.

    Ever have a problem with the wrong gem loading or the gem you’re expecting not being found? You can use the gem environment command to output various information about the RubyGems environment: If you export GEM_PATH=/path:/path2… those paths will be added to the GEM You can also see the remote sources, and the gem configuration…

  • Conditional gems in ruby without breaking Gemfile.lock

    Do you want ruby/bundler to skip a gem install on a certain platform, but any other platform needs that gem? The obvious answer would be the following, which would result in also clobbering your Gemfile.lock if bundling on macOS: gem “openssl”, “= 3.2.0” if RUBY_PLATFORM !~ /darwin/ But bundler has its own method, install_if , to accomplish such a…

  • Handling keyword arguments in method_missing in Ruby

    If you implement a method_missing method to receive methods that receive keyword arguments and you only receive and forward (to send) the method name, *args, and &block, you will receive ArgumentError: wrong number of arguments (given 3, expected 2) when the arguments are forwarded. This is because the keyword arguments will revert to the backward-compatible…