Class: Tengine::Core::Driver::Finder
- Inherits:
-
Object
- Object
- Tengine::Core::Driver::Finder
- Defined in:
- lib/tengine/core/driver/finder.rb
Constant Summary collapse
- ATTRIBUTE_NAMES =
[ :name, :version, :enabled, :enabled_on_activation ].freeze
Instance Method Summary collapse
- #attributes ⇒ Object
-
#initialize(attrs = {}) ⇒ Finder
constructor
A new instance of Finder.
- #paginate(page) ⇒ Object
- #scope(criteria) ⇒ Object
Constructor Details
#initialize(attrs = {}) ⇒ Finder
Returns a new instance of Finder.
15 16 17 18 19 20 |
# File 'lib/tengine/core/driver/finder.rb', line 15 def initialize(attrs = {}) attrs ||= {} attrs.each do |attr, v| send("#{attr}=", v) unless v.blank? end end |
Instance Method Details
#attributes ⇒ Object
22 23 24 |
# File 'lib/tengine/core/driver/finder.rb', line 22 def attributes ATTRIBUTE_NAMES.inject({}){|d, name| d[name] = send(name); d} end |
#paginate(page) ⇒ Object
26 27 28 |
# File 'lib/tengine/core/driver/finder.rb', line 26 def paginate(page) scope(Tengine::Core::Driver).page(page) end |
#scope(criteria) ⇒ Object
30 31 32 33 34 35 36 37 38 39 |
# File 'lib/tengine/core/driver/finder.rb', line 30 def scope(criteria) result = criteria result = result.where(name: name) if name result = result.where(version: version) if version result = result.where(enabled: enabled) if enabled result = result.where(enabled_on_activation: enabled_on_activation) if enabled_on_activation # ソート result = result.asc(:_id, :name) result end |