Sha256: 2baf6c2a2224009316b31e47aa3eae9b751037974366a41e9757ea2269098c36
Contents?: true
Size: 917 Bytes
Versions: 1
Compression:
Stored size: 917 Bytes
Contents
module FormattedAttributes module ActiveRecord def self.included(base) base.instance_eval do include InstanceMethods extend ClassMethods end end module ClassMethods def formatted(*args) options = args.extract_options! args.each do |attr| accessible_attributes << "formatted_#{attr}" class_eval <<-RUBY def #{attr}=(value) @formatted_#{attr} = nil write_attribute :#{attr}, value end def formatted_#{attr} @formatted_#{attr} ||= format_from_#{options[:with]}(send(:#{attr})) end def formatted_#{attr}=(value) self.send :#{attr}=, format_to_#{options[:with]}(value) @formatted_#{attr} = value end RUBY end end end module InstanceMethods end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
formatted_attributes-0.1.0 | lib/formatted_attributes/active_record.rb |