Class: CassandraModel::TableDefinition
- Inherits:
-
Object
- Object
- CassandraModel::TableDefinition
- Defined in:
- lib/cassandra_model/table_definition.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Class Method Summary collapse
Instance Method Summary collapse
- #==(rhs) ⇒ Object
-
#initialize(options) ⇒ TableDefinition
constructor
A new instance of TableDefinition.
- #name_in_cassandra ⇒ Object
- #table_id ⇒ Object
- #to_cql(options = {}) ⇒ Object
Constructor Details
#initialize(options) ⇒ TableDefinition
22 23 24 25 26 27 |
# File 'lib/cassandra_model/table_definition.rb', line 22 def initialize() @partition_key = [:partition_key].keys @clustering_columns = [:clustering_columns].keys @name = [:name] @columns = [:partition_key].merge([:clustering_columns].merge([:remaining_columns])) end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
3 4 5 |
# File 'lib/cassandra_model/table_definition.rb', line 3 def name @name end |
Class Method Details
.from_data_model(table_name, inquirer, data_set) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/cassandra_model/table_definition.rb', line 5 def self.from_data_model(table_name, inquirer, data_set) partition_key = inquirer_partition_key(inquirer) if inquirer.shard_column if inquirer.shard_column.is_a?(Hash) column_name, type = inquirer.shard_column.first partition_key.merge!(:"rk_#{column_name}" => type) else partition_key.merge!(:"rk_#{inquirer.shard_column}" => :int) end end clustering_columns = table_set_clustering_columns(data_set) remaining_columns = table_set_remaining_columns(data_set) new(name: table_name, partition_key: partition_key, clustering_columns: clustering_columns, remaining_columns: remaining_columns) end |
Instance Method Details
#==(rhs) ⇒ Object
45 46 47 |
# File 'lib/cassandra_model/table_definition.rb', line 45 def ==(rhs) to_cql == rhs.to_cql end |
#name_in_cassandra ⇒ Object
41 42 43 |
# File 'lib/cassandra_model/table_definition.rb', line 41 def name_in_cassandra "#{name}_#{table_id}" end |
#table_id ⇒ Object
37 38 39 |
# File 'lib/cassandra_model/table_definition.rb', line 37 def table_id Digest::MD5.hexdigest(columns) end |
#to_cql(options = {}) ⇒ Object
29 30 31 32 33 34 35 |
# File 'lib/cassandra_model/table_definition.rb', line 29 def to_cql( = {}) table_name = [:no_id] ? name : name_in_cassandra exists = if [:check_exists] 'IF NOT EXISTS ' end "CREATE TABLE #{exists}#{table_name} (#{columns}, PRIMARY KEY #{primary_key})" end |