Sha256: 81456325ec660095edc9c0a1bf3a711fb0d12c12fa875fee54116c1a01d530d1
Contents?: true
Size: 1.49 KB
Versions: 2
Compression:
Stored size: 1.49 KB
Contents
module CassandraObject class Scope module FinderMethods def find(ids) if ids.is_a?(Array) find_some(ids) else find_one(ids) end end def find_by_id(ids) find(ids) rescue CassandraObject::RecordNotFound nil end def find_in_batches(id, next_cursor = nil) obj = self.clone obj.is_all = true obj.next_cursor = next_cursor obj.where_ids(id).execute_paged end def find_all_in_batches(next_cursor = nil) obj = self.clone obj.is_all = true obj.next_cursor = next_cursor obj.execute end def first return limit(1).find_all_in_batches[:results].first if self.schema_type == :dynamic_attributes || self.schema_type == :schemaless limit(1).execute.first end private def find_one(id) if id.blank? raise CassandraObject::RecordNotFound, "Couldn't find #{self.name} with key #{id.inspect}" elsif self.schema_type == :dynamic_attributes record = where_ids(id).execute raise CassandraObject::RecordNotFound if record.empty? record elsif record = where_ids(id)[0] record else raise CassandraObject::RecordNotFound end end def find_some(ids) ids = ids.flatten return [] if ids.empty? ids = ids.compact.map(&:to_s).uniq where_ids(ids).execute end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
extendi-cassandra_object-1.0.7 | lib/cassandra_object/scope/finder_methods.rb |
extendi-cassandra_object-1.0.6 | lib/cassandra_object/scope/finder_methods.rb |