Module: BigRecord::FamilySpanColumns::ClassMethods
- Defined in:
- lib/big_record/family_span_columns.rb
Instance Method Summary
-
- (Object) alias_attribute_with_family_span_columns(alias_name, fully_qualified_name)
Define aliases to the fully qualified attributes.
-
- (Object) family_columns
Returns the list of columns that are spanned on a whole family.
-
- (Object) simple_columns
Returns the list of columns that are not spanned on a whole family.
Instance Method Details
- (Object) alias_attribute_with_family_span_columns(alias_name, fully_qualified_name)
Define aliases to the fully qualified attributes
31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/big_record/family_span_columns.rb', line 31 def alias_attribute_with_family_span_columns(alias_name, fully_qualified_name) # when it's a single column everything's normal but when it's a # column family then this actually add accessors for the whole family alias_attribute_without_family_span_columns(alias_name, fully_qualified_name) # fully_qualified_name ends with ':' => consider it a family span column if fully_qualified_name.ends_with?(":") # add the accessors for the individual columns self.class_eval "def \#{alias_name}(column_key=nil)\nif column_key\nread_attribute(\"\#{fully_qualified_name}\\\#{column_key}\")\nelse\nread_family_attributes(\"\#{fully_qualified_name}\")\nend\nend\ndef set_\#{alias_name}(column_key, value)\nwrite_attribute(\"\#{fully_qualified_name}\\\#{column_key}\", value)\nend\n" end end |
- (Object) family_columns
Returns the list of columns that are spanned on a whole family
26 27 28 |
# File 'lib/big_record/family_span_columns.rb', line 26 def family_columns columns.select{|c|c.family?} end |
- (Object) simple_columns
Returns the list of columns that are not spanned on a whole family
21 22 23 |
# File 'lib/big_record/family_span_columns.rb', line 21 def simple_columns columns.select{|c|!c.family?} end |