Module: CassandraModel::CompositeRecordStatic

Extended by:
Forwardable
Defined in:
lib/cassandra_model/composite_record_static.rb

Instance Method Summary collapse

Instance Method Details

#clustering_columnsObject



11
12
13
# File 'lib/cassandra_model/composite_record_static.rb', line 11

def clustering_columns
  table_data.composite_clustering_columns ||= internal_clustering_columns.map { |column| trimmed_column(column, /^ck_/, composite_ck_map) || column }
end

#columnsObject



23
24
25
# File 'lib/cassandra_model/composite_record_static.rb', line 23

def columns
  table_data.composite_columns ||= composite_columns.each { |column| define_attribute(column) }
end

#composite_ck_mapObject



35
36
37
38
39
40
41
# File 'lib/cassandra_model/composite_record_static.rb', line 35

def composite_ck_map
  unless table_data.composite_ck_map
    table_data.composite_ck_map = {}
    columns
  end
  table_data.composite_ck_map
end

#composite_defaultsObject



43
44
45
# File 'lib/cassandra_model/composite_record_static.rb', line 43

def composite_defaults
  table_data.internal_defaults ||= build_composite_map
end

#composite_pk_mapObject



27
28
29
30
31
32
33
# File 'lib/cassandra_model/composite_record_static.rb', line 27

def composite_pk_map
  unless table_data.composite_pk_map
    table_data.composite_pk_map = {}
    columns
  end
  table_data.composite_pk_map
end

#generate_composite_defaults(column_defaults, truth_table) ⇒ Object



47
48
49
# File 'lib/cassandra_model/composite_record_static.rb', line 47

def generate_composite_defaults(column_defaults, truth_table)
  table_config.composite_defaults = truth_table.map { |row| column_defaults.except(*row) }
end

#generate_composite_defaults_from_inquirer(inquirer) ⇒ Object



51
52
53
54
55
56
57
# File 'lib/cassandra_model/composite_record_static.rb', line 51

def generate_composite_defaults_from_inquirer(inquirer)
  table_config.composite_defaults = inquirer.composite_rows.map do |row|
    row.inject({}) do |memo, column|
      memo.merge!(column => inquirer.column_defaults[column])
    end
  end
end

#partition_keyObject



7
8
9
# File 'lib/cassandra_model/composite_record_static.rb', line 7

def partition_key
  table_data.composite_partition_key ||= internal_partition_key.map { |column| trimmed_column(column, /^rk_/, composite_pk_map) || column }
end

#primary_keyObject



15
16
17
18
19
20
21
# File 'lib/cassandra_model/composite_record_static.rb', line 15

def primary_key
  table_data.composite_primary_key ||= (internal_partition_key + internal_clustering_columns).map do |column|
    trimmed_column(column, /^rk_/, composite_pk_map) ||
        trimmed_column(column, /^ck_/, composite_ck_map) ||
        column
  end.uniq
end

#shard_keyObject



59
60
61
62
63
64
# File 'lib/cassandra_model/composite_record_static.rb', line 59

def shard_key
  table_data.composite_shard_key ||= begin
    column = super
    column =~ /^rk_/ ? composite_pk_map[column] : column
  end
end