Module: Rooftop::FieldAliases
- Defined in:
- lib/rooftop/field_aliases.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
-
#field_aliases ⇒ Object
Class method to get the class’s field aliases.
Class Method Details
.included(base) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/rooftop/field_aliases.rb', line 7 def self.included(base) # Include Rooftop::HookCalls to allow us to push things into a list of hooks in the right order base.include Rooftop::HookCalls base.extend ClassMethods # Add the call to the :after_find hook to the list of hook calls, to be processed later. # This is where we iterate over our previously established list of field aliases. base.send(:add_to_hook, :after_find, ->(r){ r.field_aliases.each do |old, new| if r.respond_to?(old) r.send("#{new}=",r.send(old)) end end }) base.send(:before_save, ->(r) { r.field_aliases.each do |old,new| r.send(:"restore_#{new}!") unless r.new? end }) end |
Instance Method Details
#field_aliases ⇒ Object
Class method to get the class’s field aliases
43 44 45 |
# File 'lib/rooftop/field_aliases.rb', line 43 def field_aliases self.class.instance_variable_get(:"@field_aliases") || {} end |