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