module Quandl::Cassandra::Base::Scoping

Public Instance Methods

all() click to toggle source
# File lib/quandl/cassandra/base/scoping.rb, line 76
def all
  execute_returning_collection
end
count() click to toggle source
# File lib/quandl/cassandra/base/scoping.rb, line 80
def count
  select("COUNT(*)").execute.first.try(:[], 'count').to_i
end
cql_limit() click to toggle source
# File lib/quandl/cassandra/base/scoping.rb, line 134
def cql_limit
  "LIMIT #{limit}" if limit.present?
end
cql_order() click to toggle source
# File lib/quandl/cassandra/base/scoping.rb, line 130
def cql_order
  "ORDER BY #{order}" if order.present?
end
cql_select() click to toggle source
# File lib/quandl/cassandra/base/scoping.rb, line 124
def cql_select
  columns = Array(select).join(',') if select.present?
  columns = '*' if columns.blank?
  columns
end
cql_statement_type() click to toggle source
# File lib/quandl/cassandra/base/scoping.rb, line 100
def cql_statement_type
  case statement_type
  when :insert then "INSERT INTO"
  when :delete then "DELETE FROM"
  else
    "SELECT #{cql_select} FROM"
  end
end
cql_where() click to toggle source
# File lib/quandl/cassandra/base/scoping.rb, line 109
def cql_where
  attrs = attributes.clone
  attrs = sanitize_attributes(attrs) if parent.table_exists?
  attrs = attrs.collect{|key, value| cql_where_attribute(key, value) }.join(' AND ')
  cql = attrs.present? ? "WHERE #{attrs}" : nil
end
cql_where_attribute(key, value) click to toggle source
# File lib/quandl/cassandra/base/scoping.rb, line 116
def cql_where_attribute(key, value)
  if value.is_a?(Array)
    "#{key} IN (#{value.join(',')})"
  else
    "#{key} = #{value}"
  end
end
delete_all() click to toggle source
# File lib/quandl/cassandra/base/scoping.rb, line 88
def delete_all
  self.statement_type = :delete
  execute
end
each() { |record| ... } click to toggle source
# File lib/quandl/cassandra/base/scoping.rb, line 32
def each(&block)
  all.each do |record|
    if block_given?
      block.call(record)
    else
      yield record
    end
  end
end
execute() click to toggle source
# File lib/quandl/cassandra/base/scoping.rb, line 138
def execute
  @execute ||= parent.execute(to_cql)
end
execute_async() click to toggle source
# File lib/quandl/cassandra/base/scoping.rb, line 142
def execute_async
  @execute_async ||= parent.execute(to_cql)
end
execute_returning_collection() click to toggle source
# File lib/quandl/cassandra/base/scoping.rb, line 150
def execute_returning_collection
  execute.collect{|r| parent.new_from_query_result(r) }
end
execute_returning_record() click to toggle source
# File lib/quandl/cassandra/base/scoping.rb, line 154
def execute_returning_record
  parent.new_from_query_result( execute.first )
end
exists?() click to toggle source
# File lib/quandl/cassandra/base/scoping.rb, line 42
def exists?
  columns = primary_key.collect{|pk| attributes.keys.include?(pk) ? pk : nil }.compact
  select(*columns).execute.present?
end
find(*args) click to toggle source
# File lib/quandl/cassandra/base/scoping.rb, line 66
def find(*args)
  primary_key = parent.bind_primary_key(*args)
  return nil if primary_key.blank?
  where(primary_key).first
end
first() click to toggle source
# File lib/quandl/cassandra/base/scoping.rb, line 72
def first
  limit(1).execute_returning_record
end
insert() click to toggle source
# File lib/quandl/cassandra/base/scoping.rb, line 93
def insert
  self.statement_type = :insert
  self
end
parent() click to toggle source
# File lib/quandl/cassandra/base/scoping.rb, line 146
def parent
  self.class.parent
end
pluck(*args) click to toggle source
# File lib/quandl/cassandra/base/scoping.rb, line 51
def pluck(*args)
  r = select(*args).values
  r = r.flatten if args.count <= 1
  r
end
select=(*names) click to toggle source
# File lib/quandl/cassandra/base/scoping.rb, line 57
def select=(*names)
  self.statement_type = :select
  write_scope_attribute(:select, names)
end
to_cql() click to toggle source
# File lib/quandl/cassandra/base/scoping.rb, line 84
def to_cql
  [cql_statement_type, table_name, cql_where, cql_order, cql_limit].compact.join(' ')
end
to_h() click to toggle source
# File lib/quandl/cassandra/base/scoping.rb, line 47
def to_h
  execute
end
values() click to toggle source
# File lib/quandl/cassandra/base/scoping.rb, line 62
def values
  to_a.collect(&:values)
end