コマンドラインからのオプションをパースしてくれるSlop
の使い方。
gem
でインストールができる。
gem install slop
使い方はSlop.parse do ... end
でSlop
のインスタンスを作って、後はそのインスタンスを経由してオプションの有無などを確認することができる。
slop_sample.rb
require 'slop'
opts = Slop.parse do
banner 'Usage: slop_sample.rb [options]'
on 'name=', 'Your name'
on 'p', 'password', 'An optional password', argument: :optional
on 'v', 'verbose', 'Enable verbose mode'
end
p opts.verbose?
p opts.v?
p opts.password?
p opts[:name]
p opts.to_hash
$ ruby slop_sample.rb -v --name yui
# =>
true (opts.verbose?)
true (opts.v?)
false (opts.password?)
"yui" (opts[:name])
{:name=>"yui", :password=>nil, :verbose=>true} (opts.to_hash)
Slop.parse do ... end
に渡すブロックには引数としてSlop
のインスタンスを渡すことも可能で、そのときは次のような書き方になる。
slop_sample.rb
require 'slop'
opts = Slop.parse do |opt|
opt.banner 'Usage: slop_sample.rb [options]'
opt.on 'name=', 'Your name'
opt.on 'p', 'password', 'An optional password', argument: :optional
opt.on 'v', 'verbose', 'Enable verbose mode'
end
Slop.parse
に:help => true
を渡すと-h
や--help
でヘルプを出力できるようになる。
slop_sample.rb
require 'slop'
opts = Slop.parse(help: true) do |opt|
opt.banner 'Usage: slop_sample.rb [options]'
opt.on 'name=', 'Your name'
opt.on 'p', 'password', 'An optional password', argument: :optional
opt.on 'v', 'verbose', 'Enable verbose mode'
end
$ruby slop_sample.rb -h
# =>
Usage: slop_sample.rb [options]
--name Your name
-p, --password An optional password
-v, --verbose Enable verbose mode
-h, --help Display this help message.