Class: Terrestrial::Adapters::MemoryAdapter::Query
- Inherits:
-
Object
- Object
- Terrestrial::Adapters::MemoryAdapter::Query
- Defined in:
- lib/terrestrial/adapters/memory_adapter.rb
Instance Attribute Summary collapse
-
#criteria ⇒ Object
readonly
Returns the value of attribute criteria.
-
#order_columns ⇒ Object
readonly
Returns the value of attribute order_columns.
Instance Method Summary collapse
-
#initialize(criteria: {}, order: [], reverse: false, &block) ⇒ Query
constructor
A new instance of Query.
- #order(columns) ⇒ Object
- #reverse ⇒ Object
- #reverse_order? ⇒ Boolean
- #where(new_criteria, &block) ⇒ Object
Constructor Details
#initialize(criteria: {}, order: [], reverse: false, &block) ⇒ Query
Returns a new instance of Query.
77 78 79 80 81 82 83 84 85 |
# File 'lib/terrestrial/adapters/memory_adapter.rb', line 77 def initialize(criteria: {}, order: [], reverse: false, &block) if block raise NotImplementedError.new("Block filtering not implemented") end @criteria = criteria @order_columns = order @reverse_order = reverse end |
Instance Attribute Details
#criteria ⇒ Object (readonly)
Returns the value of attribute criteria.
87 88 89 |
# File 'lib/terrestrial/adapters/memory_adapter.rb', line 87 def criteria @criteria end |
#order_columns ⇒ Object (readonly)
Returns the value of attribute order_columns.
87 88 89 |
# File 'lib/terrestrial/adapters/memory_adapter.rb', line 87 def order_columns @order_columns end |
Instance Method Details
#order(columns) ⇒ Object
98 99 100 101 102 103 |
# File 'lib/terrestrial/adapters/memory_adapter.rb', line 98 def order(columns) self.class.new( criteria: criteria, order: columns, ) end |
#reverse ⇒ Object
105 106 107 108 109 110 111 |
# File 'lib/terrestrial/adapters/memory_adapter.rb', line 105 def reverse self.class.new( criteria: criteria, order: order_columns, reverse: true, ) end |
#reverse_order? ⇒ Boolean
113 114 115 |
# File 'lib/terrestrial/adapters/memory_adapter.rb', line 113 def reverse_order? !!@reverse_order end |
#where(new_criteria, &block) ⇒ Object
89 90 91 92 93 94 95 96 |
# File 'lib/terrestrial/adapters/memory_adapter.rb', line 89 def where(new_criteria, &block) self.class.new( criteria: criteria.merge(new_criteria), order: order, reverse: reverse, &block ) end |