Class: Dynamoid::Criteria::Chain
- Inherits:
-
Object
- Object
- Dynamoid::Criteria::Chain
- Includes:
- Enumerable
- Defined in:
- lib/dynamoid/criteria/chain.rb
Overview
The criteria chain is equivalent to an ActiveRecord relation (and realistically I should change the name from chain to relation). It is a chainable object that builds up a query and eventually executes it either on an index or by a full table scan.
Instance Attribute Summary (collapse)
-
- (Object) consistent_read
Returns the value of attribute consistent_read.
-
- (Object) limit(limit)
Returns the value of attribute limit.
-
- (Object) query
Returns the value of attribute query.
-
- (Object) source
Returns the value of attribute source.
-
- (Object) start(start)
Returns the value of attribute start.
-
- (Object) values
Returns the value of attribute values.
Instance Method Summary (collapse)
-
- (Object) all
Returns all the records matching the criteria.
- - (Object) consistent
- - (Object) consistent_opts
-
- (Object) each(&block)
Allows you to use the results of a search as an enumerable over the results found.
-
- (Object) first
Returns the first record matching the criteria.
-
- (Chain) initialize(source)
constructor
Create a new criteria chain.
-
- (Object) where(args)
The workhorse method of the criteria chain.
Constructor Details
- (Chain) initialize(source)
Create a new criteria chain.
15 16 17 18 19 |
# File 'lib/dynamoid/criteria/chain.rb', line 15 def initialize(source) @query = {} @source = source @consistent_read = false end |
Instance Attribute Details
- (Object) consistent_read
Returns the value of attribute consistent_read
9 10 11 |
# File 'lib/dynamoid/criteria/chain.rb', line 9 def consistent_read @consistent_read end |
- (Object) limit(limit)
Returns the value of attribute limit
9 10 11 12 |
# File 'lib/dynamoid/criteria/chain.rb', line 9 def limit(limit) @limit = limit records end |
- (Object) query
Returns the value of attribute query
9 10 11 |
# File 'lib/dynamoid/criteria/chain.rb', line 9 def query @query end |
- (Object) source
Returns the value of attribute source
9 10 11 |
# File 'lib/dynamoid/criteria/chain.rb', line 9 def source @source end |
- (Object) start(start)
Returns the value of attribute start
9 10 11 12 |
# File 'lib/dynamoid/criteria/chain.rb', line 9 def start(start) @start = start self end |
- (Object) values
Returns the value of attribute values
9 10 11 |
# File 'lib/dynamoid/criteria/chain.rb', line 9 def values @values end |
Instance Method Details
- (Object) all
Returns all the records matching the criteria.
45 46 47 |
# File 'lib/dynamoid/criteria/chain.rb', line 45 def all records end |
- (Object) consistent
37 38 39 40 |
# File 'lib/dynamoid/criteria/chain.rb', line 37 def consistent @consistent_read = true self end |
- (Object) consistent_opts
73 74 75 |
# File 'lib/dynamoid/criteria/chain.rb', line 73 def consistent_opts { :consistent_read => consistent_read } end |
- (Object) each(&block)
Allows you to use the results of a search as an enumerable over the results found.
69 70 71 |
# File 'lib/dynamoid/criteria/chain.rb', line 69 def each(&block) records.each(&block) end |
- (Object) first
Returns the first record matching the criteria.
52 53 54 |
# File 'lib/dynamoid/criteria/chain.rb', line 52 def first limit(1).first end |
- (Object) where(args)
The workhorse method of the criteria chain. Each key in the passed in hash will become another criteria that the ultimate query must match. A key can either be a symbol or a string, and should be an attribute name or an attribute name with a range operator.
32 33 34 35 |
# File 'lib/dynamoid/criteria/chain.rb', line 32 def where(args) args.each {|k, v| query[k] = v} self end |