Module: BigRecord::FamilySpanColumns::ClassMethods

Defined in:
lib/big_record/family_span_columns.rb

Instance Method Summary

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