Class: CassandraModel::DataSet
- Inherits:
-
Object
- Object
- CassandraModel::DataSet
- Includes:
- TypeGuessing
- Defined in:
- lib/cassandra_model/data_set.rb
Defined Under Namespace
Classes: ColumnType, TableRotation
Instance Attribute Summary collapse
-
#clustering_columns ⇒ Object
readonly
Returns the value of attribute clustering_columns.
-
#columns ⇒ Object
readonly
Returns the value of attribute columns.
-
#data_rotation ⇒ Object
readonly
Returns the value of attribute data_rotation.
Instance Method Summary collapse
- #change_type_of(column) ⇒ Object
- #counts(*columns) ⇒ Object
-
#initialize ⇒ DataSet
constructor
A new instance of DataSet.
- #is_defined_by(*columns) ⇒ Object
- #knows_about(*columns) ⇒ Object
- #rotates_storage_across(slices) ⇒ Object
Methods included from TypeGuessing
Constructor Details
#initialize ⇒ DataSet
Returns a new instance of DataSet.
7 8 9 10 11 |
# File 'lib/cassandra_model/data_set.rb', line 7 def initialize @columns = Hash.new { |hash, key| hash[key] = :text } @data_rotation = {} @clustering_columns = [] end |
Instance Attribute Details
#clustering_columns ⇒ Object (readonly)
Returns the value of attribute clustering_columns.
5 6 7 |
# File 'lib/cassandra_model/data_set.rb', line 5 def clustering_columns @clustering_columns end |
#columns ⇒ Object (readonly)
Returns the value of attribute columns.
5 6 7 |
# File 'lib/cassandra_model/data_set.rb', line 5 def columns @columns end |
#data_rotation ⇒ Object (readonly)
Returns the value of attribute data_rotation.
5 6 7 |
# File 'lib/cassandra_model/data_set.rb', line 5 def data_rotation @data_rotation end |
Instance Method Details
#change_type_of(column) ⇒ Object
40 41 42 43 |
# File 'lib/cassandra_model/data_set.rb', line 40 def change_type_of(column) raise "Cannot retype unknown column #{column}" unless columns.include?(column) ColumnType.new(column, self) end |
#counts(*columns) ⇒ Object
23 24 25 26 27 28 29 |
# File 'lib/cassandra_model/data_set.rb', line 23 def counts(*columns) if columns.empty? count_column(:count) else columns.map { |column| count_column(column) } end end |
#is_defined_by(*columns) ⇒ Object
35 36 37 38 |
# File 'lib/cassandra_model/data_set.rb', line 35 def is_defined_by(*columns) knows_about(*columns) @clustering_columns = columns end |
#knows_about(*columns) ⇒ Object
13 14 15 16 17 18 19 20 21 |
# File 'lib/cassandra_model/data_set.rb', line 13 def knows_about(*columns) columns.each do |column| if @guess_data_types guess_data_type(column) else self.columns[column] end end end |
#rotates_storage_across(slices) ⇒ Object
31 32 33 |
# File 'lib/cassandra_model/data_set.rb', line 31 def rotates_storage_across(slices) TableRotation.new(slices, self) end |