lib/configure_me/setting.rb in configure_me-0.2.1 vs lib/configure_me/setting.rb in configure_me-0.3.1
- old
+ new
@@ -1,16 +1,27 @@
module ConfigureMe
class Setting
- attr_reader :name, :default
+ attr_reader :name, :type, :default
- def initialize(owner, name, *args)
+ def initialize(owner, name, type, *args)
options = args.extract_options!
- @owner, @name = owner, name.to_s
+ @owner, @name, @type = owner, name.to_s
@default = options.key?(:default) ? options[:default] : nil
end
def define_methods!
@owner.define_attribute_methods(true)
+ end
+
+ def convert(value)
+ case type
+ when :string then value
+ when :text then value
+ when :integer then value.to_i rescue value ? 1 : 0
+ when :float then value.to_f
+ when :date then ActiveRecord::ConnectionAdapters::Column.string_to_date(value)
+ else value
+ end
end
end
end