module BigRecord::FamilySpanColumns::ClassMethods
Public Instance Methods
alias_attribute_with_family_span_columns(alias_name, fully_qualified_name)
click to toggle source
Define aliases to the fully qualified attributes
# 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 <<-EOF def #{alias_name}(column_key=nil) if column_key read_attribute("#{fully_qualified_name}\#{column_key}") else read_family_attributes("#{fully_qualified_name}") end end def set_#{alias_name}(column_key, value) write_attribute("#{fully_qualified_name}\#{column_key}", value) end EOF end end
family_columns()
click to toggle source
Returns the list of columns that are spanned on a whole family
# File lib/big_record/family_span_columns.rb, line 26 def family_columns columns.select{|c|c.family?} end
simple_columns()
click to toggle source
Returns the list of columns that are not spanned on a whole family
# File lib/big_record/family_span_columns.rb, line 21 def simple_columns columns.select{|c|!c.family?} end