module Believer::Columns::ClassMethods

Public Instance Methods

apply_cql_result_row_conversion=(b) click to toggle source
# File lib/believer/columns.rb, line 87
def apply_cql_result_row_conversion=(b)
  @apply_cql_result_row_conversion = b
end
apply_cql_result_row_conversion?() click to toggle source
# File lib/believer/columns.rb, line 80
def apply_cql_result_row_conversion?
  if @apply_cql_result_row_conversion.nil?
    @apply_cql_result_row_conversion = columns.any? {|name, col| col.apply_cql_result_row_conversion?}
  end
  @apply_cql_result_row_conversion
end
column(name, opts = {}) click to toggle source

Defines a column on the model. The column name must correspond with the Cassandra column name

# File lib/believer/columns.rb, line 33
def column(name, opts = {})
  defaults = {
      :type => :string
  }
  options = defaults.merge(opts).merge(:name => name)

  columns[name] = ::Believer::Column.new(options)

  self.redefine_method(name) do
    read_attribute(name)
  end

  self.redefine_method("#{name}=") do |val|
    write_attribute(name, val)
  end
end
columns() click to toggle source

Returns all columns on the model @return []

# File lib/believer/columns.rb, line 27
def columns
  @columns ||= {}
end
columns_with_type(t) click to toggle source
# File lib/believer/columns.rb, line 50
def columns_with_type(t)
  columns.values.find_all {|col| col.ruby_type == t}
end
get_primary_key() click to toggle source
# File lib/believer/columns.rb, line 58
def get_primary_key
  @primary_key.dup
end
has_compound_key?() click to toggle source
# File lib/believer/columns.rb, line 76
def has_compound_key?
  @primary_key.size > 1
end
partition_key() click to toggle source
# File lib/believer/columns.rb, line 66
def partition_key
  @primary_key.first.dup
end
partition_keys() click to toggle source
# File lib/believer/columns.rb, line 70
def partition_keys
  part_key = partition_key
  return part_key.dup if part_key.is_a?(Enumerable)
  [part_key]
end
primary_key(*cols) click to toggle source
# File lib/believer/columns.rb, line 54
def primary_key(*cols)
  @primary_key = *cols
end
primary_key_columns() click to toggle source
# File lib/believer/columns.rb, line 62
def primary_key_columns
  @primary_key.flatten
end