Module: Believer::Columns::ClassMethods

Defined in:
lib/believer/columns.rb

Instance Method Summary collapse

Instance Method Details

#apply_cql_result_row_conversion=(b) ⇒ Object



87
88
89
# 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?Boolean

Returns:

  • (Boolean)


80
81
82
83
84
85
# 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 = {}) ⇒ Object

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



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# 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

#columnsObject

Returns all columns on the model

Returns:



27
28
29
# File 'lib/believer/columns.rb', line 27

def columns
  @columns ||= {}
end

#columns_with_type(t) ⇒ Object



50
51
52
# File 'lib/believer/columns.rb', line 50

def columns_with_type(t)
  columns.values.find_all {|col| col.ruby_type == t}
end

#get_primary_keyObject



58
59
60
# File 'lib/believer/columns.rb', line 58

def get_primary_key
  @primary_key.dup
end

#has_compound_key?Boolean

Returns:

  • (Boolean)


76
77
78
# File 'lib/believer/columns.rb', line 76

def has_compound_key?
  @primary_key.size > 1
end

#partition_keyObject



66
67
68
# File 'lib/believer/columns.rb', line 66

def partition_key
  @primary_key.first.dup
end

#partition_keysObject



70
71
72
73
74
# 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) ⇒ Object



54
55
56
# File 'lib/believer/columns.rb', line 54

def primary_key(*cols)
  @primary_key = *cols
end

#primary_key_columnsObject



62
63
64
# File 'lib/believer/columns.rb', line 62

def primary_key_columns
  @primary_key.flatten
end