Module: CassandraModel::DataModelling

Defined in:
lib/cassandra_model/data_modelling.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(base) ⇒ Object



4
5
6
# File 'lib/cassandra_model/data_modelling.rb', line 4

def self.extended(base)
  base.send(:include, CompositeRecord)
end

Instance Method Details

#model_data {|inquirer, data_set| ... } ⇒ Object

Yields:

  • (inquirer, data_set)


12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/cassandra_model/data_modelling.rb', line 12

def model_data
  inquirer = DataInquirer.new
  data_set = DataSet.new
  yield inquirer, data_set

  self.table = if table_sliced?(data_set)
                 rotating_table(data_set, inquirer)
               else
                 meta_table(table_prefix, inquirer, data_set)
               end

  generate_composite_defaults_from_inquirer(inquirer)
  columns
end

#serialized_column(column, serializer) ⇒ Object



27
28
29
30
31
# File 'lib/cassandra_model/data_modelling.rb', line 27

def serialized_column(column, serializer)
  serialized_column = :"#{column}_data"
  deferred_column column, on_load: ->(attributes) { serializer.load(attributes[serialized_column]) if attributes[serialized_column] },
                  on_save: ->(attributes, value) { attributes[serialized_column] = (serializer.dump(value) if value) }
end

#table_properties=(value) ⇒ Object



8
9
10
# File 'lib/cassandra_model/data_modelling.rb', line 8

def table_properties=(value)
  @table_properties = value
end