Module: Colorizable::ModelExtensions::ClassMethods
- Defined in:
- lib/colorizable/model_extensions.rb
Instance Method Summary collapse
Instance Method Details
#colorize(*fields) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/colorizable/model_extensions.rb', line 8 def colorize(*fields) fields.each do |field| name = field define_method name do |*args| Color.by_hex(self[name]) rescue Color.new end define_method "#{name}=" do |value| color = if value.kind_of?(Hash) value = value.symbolize_keys Color.new(value[:r], value[:g], value[:b]) rescue nil else Color.by_hex(value.to_s) rescue nil end.try(:hex) self[name] = color end end end |