Module: Protobuf::ActiveRecord::AttributeMethods::ClassMethods
- Defined in:
- lib/protobuf/active_record/attribute_methods.rb
Instance Method Summary collapse
- #alias_field(field_alias, attribute) ⇒ Object
- #fetch_attribute_alias_from_proto(attribute, field_alias) ⇒ Object
- #fetch_field_alias_from_record(attribute, field_aliasd) ⇒ Object
Instance Method Details
#alias_field(field_alias, attribute) ⇒ Object
9 10 11 12 13 14 |
# File 'lib/protobuf/active_record/attribute_methods.rb', line 9 def alias_field(field_alias, attribute) alias_attribute field_alias, attribute attribute_from_proto attribute, fetch_attribute_alias_from_proto(attribute, field_alias) field_from_record field_alias, fetch_field_alias_from_record(attribute, field_alias) end |
#fetch_attribute_alias_from_proto(attribute, field_alias) ⇒ Object
16 17 18 19 20 21 22 23 |
# File 'lib/protobuf/active_record/attribute_methods.rb', line 16 def fetch_attribute_alias_from_proto(attribute, field_alias) lambda do |proto| value = proto.__send__(:"#{field_alias}!") value ||= proto.__send__(:"#{attribute}!") if proto.respond_to?(attribute) self._protobuf_convert_fields_to_attributes(attribute, value) end end |
#fetch_field_alias_from_record(attribute, field_aliasd) ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/protobuf/active_record/attribute_methods.rb', line 25 def fetch_field_alias_from_record(attribute, field_aliasd) lambda do |record| value = record.__send__(field_alias) self._protobuf_convert_attributes_to_fields(attribute, value) end end |