Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

slopでCLIアプリの引数をよろしくやる

slopでCLIアプリの引数をよろしくやるgemです。

require 'slop'

opts = Slop.parse do |o|
  o.banner = "usage: connect [options] ..."
  o.string  '-h', '--host', default: "localhost"
  o.integer '-p', '--port', default: 80

  o.on '--version', '-v' do
    puts "v0.0.1"
    exit
  end
end

if ARGV == []
  puts opts
  exit
else
  p ARGV
  puts opts[:host].to_s + ':' +  opts[:port].to_s
end

実運用

$ ruby slop.rb --host '192.11.11.11' -p 99
["--host", "192.11.11.11", "-p", "99"]
192.11.11.11:99

なんもオプションを入れないと、usageみたいな文を表示する事ができます。

$ ruby slop.rb
usage: connect [options] ...
    -h, --host     
    -p, --port     
    --version, -v