lib/thor/parser/option.rb in thor-0.15.2 vs lib/thor/parser/option.rb in thor-0.15.3
- old
+ new
@@ -2,16 +2,17 @@
class Option < Argument #:nodoc:
attr_reader :aliases, :group, :lazy_default, :hide
VALID_TYPES = [:boolean, :numeric, :hash, :array, :string]
- def initialize(name, description=nil, required=nil, type=nil, default=nil, banner=nil, lazy_default=nil, group=nil, aliases=nil, hide=nil)
- super(name, description, required, type, default, banner)
- @lazy_default = lazy_default
- @group = group.to_s.capitalize if group
- @aliases = [*aliases].compact
- @hide = hide
+ def initialize(name, options={})
+ options[:required] = false unless options.key?(:required)
+ super
+ @lazy_default = options[:lazy_default]
+ @group = options[:group].to_s.capitalize if options[:group]
+ @aliases = Array(options[:aliases])
+ @hide = options[:hide]
end
# This parse quick options given as method_options. It makes several
# assumptions, but you can be more specific using the option method.
#
@@ -62,11 +63,10 @@
when Numeric
:numeric
when Hash, Array, String
value.class.name.downcase.to_sym
end
-
- self.new(name.to_s, nil, required, type, default, nil, nil, nil, aliases)
+ self.new(name.to_s, :required => required, :type => type, :default => default, :aliases => aliases)
end
def switch_name
@switch_name ||= dasherized? ? name : dasherize(name)
end