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