Really Cheap Command-Line Option Parsing in Ruby

前端 未结 20 1122
野的像风
野的像风 2020-11-30 16:57

EDIT: Please, please, please read the two requirements listed at the bottom of this post before replying. People keep posting their new gems and li

20条回答
  •  日久生厌
    2020-11-30 17:01

    I share your distaste for require 'getopts', mainly due to the awesomeness that is OptionParser:

    % cat temp.rb                                                            
    require 'optparse'
    OptionParser.new do |o|
      o.on('-d') { |b| $quiet = b }
      o.on('-i') { |b| $interactive = b }
      o.on('-f FILENAME') { |filename| $filename = filename }
      o.on('-h') { puts o; exit }
      o.parse!
    end
    p :quiet => $quiet, :interactive => $interactive, :filename => $filename
    % ruby temp.rb                                                           
    {:interactive=>nil, :filename=>nil, :quiet=>nil}
    % ruby temp.rb -h                                                        
    Usage: temp [options]
        -d
        -i
        -f FILENAME
        -h
    % ruby temp.rb -d                                                        
    {:interactive=>nil, :filename=>nil, :quiet=>true}
    % ruby temp.rb -i                                                        
    {:interactive=>true, :filename=>nil, :quiet=>nil}
    % ruby temp.rb -di                                                       
    {:interactive=>true, :filename=>nil, :quiet=>true}
    % ruby temp.rb -dif apelad                                               
    {:interactive=>true, :filename=>"apelad", :quiet=>true}
    % ruby temp.rb -f apelad -i                                              
    {:interactive=>true, :filename=>"apelad", :quiet=>nil}
    

提交回复
热议问题