Sha256: efa150e939e33590b62d23ad6ee08935da049efb246de10642fe0d9a29540a33
Contents?: true
Size: 1.15 KB
Versions: 1
Compression:
Stored size: 1.15 KB
Contents
require 'cassandra_object/scope/batches' require 'cassandra_object/scope/finder_methods' require 'cassandra_object/scope/query_methods' module CassandraObject class Scope include Batches, FinderMethods, QueryMethods attr_accessor :klass attr_accessor :limit_value, :select_values, :where_values def initialize(klass) @klass = klass @limit_value = nil @select_values = [] @where_values = [] end private def scoping previous, klass.current_scope = klass.current_scope, self yield ensure klass.current_scope = previous end def method_missing(method_name, *args, &block) if klass.respond_to?(method_name) scoping { klass.send(method_name, *args, &block) } elsif Array.method_defined?(method_name) to_a.send(method_name, *args, &block) else super end end def instantiate_from_cql(cql_string) results = [] klass.adapter.select(cql_string) do |key, attributes| results << klass.instantiate(key, attributes) end results.compact! results end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
gotime-cassandra_object-4.11.6 | lib/cassandra_object/scope.rb |