From: "trans (Thomas Sawyer)" Date: 2012-11-22T02:52:37+09:00 Subject: [ruby-core:49825] [ruby-trunk - Feature #5010] Add Slop(-like) in stdlib and deprecate current OptionParser API Issue #5010 has been updated by trans (Thomas Sawyer). @duerst >I agree with Rodrigo. If I have to use an option parser, I don't want to > waste time shopping around. > > Also, if no option parser outside optparse gets significant traction > outside the Ruby standard library, this means that none of them is > significantly better than the current one for a significant percentage > of Ruby users. You just contradicted yourself. And your first argument is exactly the problem with Ruby rubber stamping an official option parser. > Are you ready to provide a patch? Yes, I could do that. ---------------------------------------- Feature #5010: Add Slop(-like) in stdlib and deprecate current OptionParser API https://bugs.ruby-lang.org/issues/5010#change-33410 Author: rosenfeld (Rodrigo Rosenfeld Rosas) Status: Assigned Priority: Low Assignee: matz (Yukihiro Matsumoto) Category: Target version: next minor I always found the OptionParser API not as well designed as it could be. I've just found this gem: http://lee.jarvis.co/slop/ Much better API and I think we should integrate it to Ruby 2.0. Take a look at the minimal example shown in OptionParser :
  require 'optparse'

  options = {}
  OptionParser.new do |opts|
    opts.banner = "Usage: example.rb [options]"

    opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
      options[:verbose] = v
    end
  end.parse!

  p options
  p ARGV
This is the equivalent in Slop:
require 'slop'

opts = Slop.parse do
  banner "Usage: example.rb [options]"
  on :v, :verbose, "Run verbosely", :default => true
end

p opts.to_hash
-- http://bugs.ruby-lang.org/