lib/king_konf/variable.rb in king_konf-0.1.6 vs lib/king_konf/variable.rb in king_konf-0.1.7
- old
+ new
@@ -9,28 +9,36 @@
@description = description
@required = required
@options = options
end
+ def cast(value)
+ case @type
+ when :float then value.to_f
+ else value
+ end
+ end
+
def required?
@required
end
def valid?(value)
case @type
when :string then value.is_a?(String) || value.nil?
when :list then value.is_a?(Array)
when :integer then value.is_a?(Integer) || value.nil?
+ when :float then value.is_a?(Float) || value.is_a?(Integer) || value.nil?
when :boolean then value == true || value == false
else raise "invalid type #{@type}"
end
end
def decode(value)
Decoder.public_send(@type, value, **options)
end
- %i(boolean integer string list).each do |type|
+ %i(boolean integer float string list).each do |type|
define_method("#{type}?") do
@type == type
end
end
end