class OptionParser

Version = '20130517-120455'

Attributes

p[R]

Public Instance Methods

_on(attr, *args, &block)
Alias for: on
on(attr, *args, &block) click to toggle source
# File lib/sushi_fabric/optparse_ex.rb, line 10
def on(attr, *args, &block)
  if attr.is_a?(Symbol)
    self.class.class_eval do
      unless method_defined?(attr)
        attr_accessor attr 
      else
        raise "Method #{attr.to_s} is already defined in OptionParser class"
      end
    end
    unless args[0] =~ /\-/
      default = args.shift
      self.send(attr.to_s+"=", default)
    end
    _on(*args) do |i|
      self.send(attr.to_s+"=", i)
      block.call(i) if block
    end
  else
    args.unshift attr
    _on(*args, block)
  end
end
Also aliased as: _on