Class: CassandraModel::DataSet
- Inherits:
-
Object
- Object
- CassandraModel::DataSet
show all
- Includes:
- TypeGuessing
- Defined in:
- lib/cassandra_model/data_set.rb
Defined Under Namespace
Classes: ColumnType, TableRotation
Instance Attribute Summary collapse
Instance Method Summary
collapse
#guess_data_types!
Constructor Details
Returns a new instance of DataSet.
7
8
9
10
11
12
|
# File 'lib/cassandra_model/data_set.rb', line 7
def initialize
@columns = Hash.new { |hash, key| hash[key] = :text }
@data_rotation = {}
@clustering_columns = []
@clustering_order = {}
end
|
Instance Attribute Details
#clustering_order ⇒ Object
Returns the value of attribute clustering_order.
5
6
7
|
# File 'lib/cassandra_model/data_set.rb', line 5
def clustering_order
@clustering_order
end
|
#columns ⇒ Object
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
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
41
42
43
44
|
# File 'lib/cassandra_model/data_set.rb', line 41
def change_type_of(column)
raise "Cannot retype unknown column #{column}" unless columns.include?(column)
ColumnType.new(column, self)
end
|
#clustering_columns ⇒ Object
52
53
54
|
# File 'lib/cassandra_model/data_set.rb', line 52
def clustering_columns
@clustering_columns ||= []
end
|
#counts(*columns) ⇒ Object
24
25
26
27
28
29
30
|
# File 'lib/cassandra_model/data_set.rb', line 24
def counts(*columns)
if columns.empty?
count_column(:count)
else
columns.map { |column| count_column(column) }
end
end
|
#is_defined_by(*columns) ⇒ Object
36
37
38
39
|
# File 'lib/cassandra_model/data_set.rb', line 36
def is_defined_by(*columns)
knows_about(*columns)
clustering_columns.concat(columns)
end
|
#knows_about(*columns) ⇒ Object
14
15
16
17
18
19
20
21
22
|
# File 'lib/cassandra_model/data_set.rb', line 14
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
32
33
34
|
# File 'lib/cassandra_model/data_set.rb', line 32
def rotates_storage_across(slices)
TableRotation.new(slices, self)
end
|
#sorts(sorting) ⇒ Object
46
47
48
49
50
|
# File 'lib/cassandra_model/data_set.rb', line 46
def sorts(sorting)
unknown_column = sorting.keys.find { |column, _| !columns.include?(column) }
raise "Cannot sort unknown column #{unknown_column}" if unknown_column
clustering_order.merge!(sorting)
end
|