Sha256: 21bbce9171841ce225d46f87a2af1e852dbe719579bd195f8bb8986451973616

Contents?: true

Size: 927 Bytes

Versions: 23

Compression:

Stored size: 927 Bytes

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 all
        to_a
      end

      def first
        limit(1).to_a.first
      end

      private
        def find_one(id)
          if id.blank?
            raise CassandraObject::RecordNotFound, "Couldn't find #{self.name} with key #{id.inspect}"
          elsif record = where('KEY' => id).first
            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("KEY" => ids).to_a
        end
    end
  end
end

Version data entries

23 entries across 23 versions & 2 rubygems

Version Path
gotime-cassandra_object-4.11.5 lib/cassandra_object/scope/finder_methods.rb
gotime-cassandra_object-4.11.4 lib/cassandra_object/scope/finder_methods.rb
gotime-cassandra_object-4.11.3 lib/cassandra_object/scope/finder_methods.rb
gotime-cassandra_object-4.11.2 lib/cassandra_object/scope/finder_methods.rb
gotime-cassandra_object-4.11.1 lib/cassandra_object/scope/finder_methods.rb
gotime-cassandra_object-4.11.0 lib/cassandra_object/scope/finder_methods.rb
gotime-cassandra_object-4.10.5 lib/cassandra_object/scope/finder_methods.rb
gotime-cassandra_object-4.10.4 lib/cassandra_object/scope/finder_methods.rb
gotime-cassandra_object-4.10.3 lib/cassandra_object/scope/finder_methods.rb
gotime-cassandra_object-4.10.2 lib/cassandra_object/scope/finder_methods.rb
gotime-cassandra_object-4.10.1 lib/cassandra_object/scope/finder_methods.rb
cassandra_object_rails-0.0.1 lib/cassandra_object/scope/finder_methods.rb
gotime-cassandra_object-4.10.0 lib/cassandra_object/scope/finder_methods.rb
gotime-cassandra_object-4.9.2 lib/cassandra_object/scope/finder_methods.rb
gotime-cassandra_object-4.9.1 lib/cassandra_object/scope/finder_methods.rb
gotime-cassandra_object-4.9.0 lib/cassandra_object/scope/finder_methods.rb
gotime-cassandra_object-4.8.1 lib/cassandra_object/scope/finder_methods.rb
gotime-cassandra_object-4.8.0 lib/cassandra_object/scope/finder_methods.rb
gotime-cassandra_object-4.7.3 lib/cassandra_object/scope/finder_methods.rb
gotime-cassandra_object-4.7.2 lib/cassandra_object/scope/finder_methods.rb