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