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
-
#consistent_read ⇒ Object
Returns the value of attribute consistent_read.
-
#index ⇒ Object
writeonly
Sets the attribute index.
-
#limit(limit) ⇒ Object
Returns the value of attribute limit.
-
#query ⇒ Object
Returns the value of attribute query.
-
#source ⇒ Object
Returns the value of attribute source.
-
#start(start) ⇒ Object
Returns the value of attribute start.
-
#values ⇒ Object
Returns the value of attribute values.
Instance Method Summary collapse
-
#all ⇒ Object
Returns all the records matching the criteria.
- #consistent ⇒ Object
- #consistent_opts ⇒ Object
-
#each(&block) ⇒ Object
Allows you to use the results of a search as an enumerable over the results found.
-
#first ⇒ Object
Returns the first record matching the criteria.
-
#initialize(source) ⇒ Chain
constructor
Create a new criteria chain.
-
#where(args) ⇒ Object
The workhorse method of the criteria chain.
Constructor Details
#initialize(source) ⇒ Chain
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
#consistent_read ⇒ Object
Returns the value of attribute consistent_read.
9 10 11 |
# File 'lib/dynamoid/criteria/chain.rb', line 9 def consistent_read @consistent_read end |
#index=(value) ⇒ Object
Sets the attribute index
9 10 11 |
# File 'lib/dynamoid/criteria/chain.rb', line 9 def index=(value) @index = value end |
#limit(limit) ⇒ Object
Returns the value of attribute limit.
9 10 11 |
# File 'lib/dynamoid/criteria/chain.rb', line 9 def limit @limit end |
#query ⇒ Object
Returns the value of attribute query.
9 10 11 |
# File 'lib/dynamoid/criteria/chain.rb', line 9 def query @query end |
#source ⇒ Object
Returns the value of attribute source.
9 10 11 |
# File 'lib/dynamoid/criteria/chain.rb', line 9 def source @source end |
#start(start) ⇒ Object
Returns the value of attribute start.
9 10 11 |
# File 'lib/dynamoid/criteria/chain.rb', line 9 def start @start end |
#values ⇒ Object
Returns the value of attribute values.
9 10 11 |
# File 'lib/dynamoid/criteria/chain.rb', line 9 def values @values end |
Instance Method Details
#all ⇒ Object
Returns all the records matching the criteria.
45 46 47 |
# File 'lib/dynamoid/criteria/chain.rb', line 45 def all records end |
#consistent ⇒ Object
37 38 39 40 |
# File 'lib/dynamoid/criteria/chain.rb', line 37 def consistent @consistent_read = true self end |
#consistent_opts ⇒ Object
73 74 75 |
# File 'lib/dynamoid/criteria/chain.rb', line 73 def consistent_opts { :consistent_read => consistent_read } end |
#each(&block) ⇒ Object
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 |
#first ⇒ Object
Returns the first record matching the criteria.
52 53 54 |
# File 'lib/dynamoid/criteria/chain.rb', line 52 def first limit(1).first end |
#where(args) ⇒ Object
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 |