lib/parameters/param.rb in parameters-0.3.0 vs lib/parameters/param.rb in parameters-0.3.1

- old
+ new

@@ -16,27 +16,21 @@ # Creates a new Param object. # # @param [Symbol, String] name # The name of the parameter. # - # @param [Class] type + # @param [Class, nil] type # The enforced type of the parameter. # # @param [String, nil] description # The description of the parameter. # def initialize(name,type=nil,description=nil) @name = name.to_sym - @type = case type - when Types::Type + @type = if (type.kind_of?(Types::Type)) || + (type.kind_of?(Class) && (type < Types::Type)) type - when Class - if type < Types::Type - type - else - Types[type] - end else Types[type] end @description = description @@ -52,10 +46,10 @@ # # @return [Object] # The coerced value. # def coerce(value) - if @type === value + if (value.nil? || (@type === value)) value else @type.coerce(value) end end