Class: Terrestrial::Adapters::MemoryAdapter::Query

Inherits:
Object
  • Object
show all
Defined in:
lib/terrestrial/adapters/memory_adapter.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#criteriaObject (readonly)

Returns the value of attribute criteria.



87
88
89
# File 'lib/terrestrial/adapters/memory_adapter.rb', line 87

def criteria
  @criteria
end

#order_columnsObject (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

#reverseObject



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

Returns:

  • (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