class Statics::Collection
Attributes
records[R]
Public Class Methods
new(records)
click to toggle source
@param records [Array<Statics::Model>]
# File lib/statics/collection.rb, line 12 def initialize(records) @records = records end
Public Instance Methods
each(&block)
click to toggle source
@return [Statics::Collection]
# File lib/statics/collection.rb, line 17 def each(&block) self.class.new(records.each(&block)) end
find_by(conditions)
click to toggle source
@param conditions [Hash] @return [Statics::Model]
# File lib/statics/collection.rb, line 45 def find_by(conditions) find { |record| filter?(record, conditions) } end
keys()
click to toggle source
@return [Array<Symbol>]
# File lib/statics/collection.rb, line 50 def keys pluck(:key) end
pluck(*attributes)
click to toggle source
@param attributes [Array<Symbol>] @return [Array<Object>]
# File lib/statics/collection.rb, line 56 def pluck(*attributes) map { |record| record.attributes.slice(*attributes).values } .tap { |result| result.flatten! if attributes.size == 1 } end
reject(&block)
click to toggle source
@return [Statics::Collection]
# File lib/statics/collection.rb, line 27 def reject(&block) self.class.new(records.reject(&block)) end
select(&block)
click to toggle source
@return [Statics::Collection]
# File lib/statics/collection.rb, line 22 def select(&block) self.class.new(records.select(&block)) end
where(conditions)
click to toggle source
@param conditions [Hash] @return [Statics::Collection]
# File lib/statics/collection.rb, line 33 def where(conditions) select { |record| filter?(record, conditions) } end
where_not(conditions)
click to toggle source
@param conditions [Hash] @return [Statics::Collection]
# File lib/statics/collection.rb, line 39 def where_not(conditions) reject { |record| filter?(record, conditions) } end
Private Instance Methods
filter?(record, conditions)
click to toggle source
@param record [Static::Model] @param conditions [Hash] @return [true, false]
# File lib/statics/collection.rb, line 68 def filter?(record, conditions) conditions.all? do |attribute, value| case value when Array value.include?(record.send(attribute)) else record.send(attribute) == value end end end