class Dock::Cequel
Public Instance Methods
all(options = {})
click to toggle source
# File lib/dock/adapters/cequel.rb, line 16 def all(options = {}) construct_scope(options).to_a end
associations()
click to toggle source
# File lib/dock/adapters/cequel.rb, line 32 def associations() end
belongs_to()
click to toggle source
# File lib/dock/adapters/cequel.rb, line 48 def belongs_to() end
column_names()
click to toggle source
# File lib/dock/adapters/cequel.rb, line 38 def column_names model.columns.map { |column| column.name } end
count(options = {})
click to toggle source
Checked
# File lib/dock/adapters/cequel.rb, line 42 def count(options = {}) all(options).count end
create(attributes = {})
click to toggle source
# File lib/dock/adapters/cequel.rb, line 5 def create(attributes = {}) model.create(attributes) end
cyclic?()
click to toggle source
# File lib/dock/adapters/cequel.rb, line 60 def cyclic? false end
destroy(record)
click to toggle source
# File lib/dock/adapters/cequel.rb, line 29 def destroy(record) record.destroy end
embedded?()
click to toggle source
# File lib/dock/adapters/cequel.rb, line 57 def embedded? false end
encoding()
click to toggle source
# File lib/dock/adapters/cequel.rb, line 45 def encoding 'UTF-8' end
find(key_values)
click to toggle source
# File lib/dock/adapters/cequel.rb, line 8 def find(key_values) find!(key_values) rescue Cequel::Record::RecordNotFound nil end
find!(key_values)
click to toggle source
# File lib/dock/adapters/cequel.rb, line 13 def find!(key_values) model.find(*key_values) end
first(options = {})
click to toggle source
# File lib/dock/adapters/cequel.rb, line 19 def first(options = {}) construct_scope(options).first end
has_many()
click to toggle source
# File lib/dock/adapters/cequel.rb, line 51 def has_many() end
id()
click to toggle source
# File lib/dock/adapters/cequel.rb, line 22 def id 'id' end
model_name()
click to toggle source
# File lib/dock/adapters/cequel.rb, line 35 def model_name model.class.name end
properties()
click to toggle source
# File lib/dock/adapters/cequel.rb, line 66 def properties() end
scoped?()
click to toggle source
# File lib/dock/adapters/cequel.rb, line 54 def scoped? false end
supports_joins?()
click to toggle source
# File lib/dock/adapters/cequel.rb, line 63 def supports_joins? false end
update(search_key, find_by, update_key, by_value)
click to toggle source
# File lib/dock/adapters/cequel.rb, line 25 def update(search_key, find_by, update_key, by_value) entry = model.find(update_key).posts.find(find_by) entry.update_attributes!(update_key by_value) end
Private Instance Methods
apply_primary_key_scope(scope, conditions)
click to toggle source
# File lib/dock/adapters/cequel.rb, line 93 def apply_primary_key_scope(scope, conditions) conditions = conditions.dup conditions.assert_valid_keys(*model.key_column_names) model.key_column_names.each do |column_name| column_value = conditions.delete(column_name) break unless column_value scope = scope[column_value] end assert_conditions_empty!(conditions) scope end
apply_secondary_index_scope(scope, conditions)
click to toggle source
# File lib/dock/adapters/cequel.rb, line 108 def apply_secondary_index_scope(scope, conditions) return unless conditions.one? condition_column = model.reflect_on_column(conditions.keys.first) if condition_column.data_column? && condition_column.indexed? scope.where(*conditions.first) else end end
assert_conditions_empty!(conditions)
click to toggle source
# File lib/dock/adapters/cequel.rb, line 117 def assert_conditions_empty!(conditions) unless conditions.empty? fail ArgumentError, "Invalid columns for conditions: #{conditions.keys.join(', ')}" end end
construct_scope(options)
click to toggle source
# File lib/dock/adapters/cequel.rb, line 70 def construct_scope(options) conditions, _, limit, _ = extract_conditions!(options.deep_symbolize_keys) scope = model.all scope = apply_secondary_index_scope(scope, conditions) || apply_primary_key_scope(scope, conditions) scope = scope.limit(limit) if limit scope end
extract_conditions!(options)
click to toggle source
Calls superclass method
# File lib/dock/adapters/cequel.rb, line 80 def extract_conditions!(options) super.tap do |_, order, _, offset| if order.present? fail ArgumentError, "Cassandra does not support ordering of results by " \ "arbitrary columns" end if offset.present? fail ArgumentError, 'Cassandra does not support row offsets' end end end