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