通常、gemを使うには主に以下の2つの方法を使います。
- 
gem install fooでgemをインストールしてから使う
- Gemfileにそのgemを記述し、bundle installでインストールしてから使う
どちらもせずに済ますには、bundler/inlineを使います。
bundler/inlineの使い方
以下はTimers gemを使うサンプルです。
require 'bundler/inline'
gemfile do
  source 'https://rubygems.org'
  gem 'timers'
end
timers = Timers::Group.new
every_five_seconds = timers.now_and_every(1) { puts "Hello!" }
loop { timers.wait }
このスクリプトは、Timersを使って1秒ごとに"Hello!"と表示するものです。実行前にgemコマンドもbundlerコマンドを使わず、いきなり、
$ ruby timers.rb
と入力すれば実行できます。
このスクリプトのポイントは1行目のrequire 'bundler/inline'と、3行目からのgemfileのdo〜endブロックです。require 'bundler/inline' とすると、gemfileというメソッドが使えるようになります。このgemfileメソッドのブロックがGemfileの代わりになります。このブロックの2行でTimersが使えるようになります。
上記のサンプルではrequire 'timers'を暗黙に実行しています。明示的にさせるようにするには以下のようにします。
require 'bundler/inline'
gemfile do
  source 'https://rubygems.org'
  gem 'timers', require: false
end
require 'timers'
timers = Timers::Group.new
every_five_seconds = timers.now_and_every(1) { puts "Hello!" }
loop { timers.wait }
5行目のrequire: falseによって、暗黙の読み込みをしないようにしています。そのため、8行目の require 'timers'を削除して実行するとエラーになります。
参考