class SleeperRb::Utilities::ArrayProxy
A wrapper for arrays of various SleeperRb::Resources
that implements a light ActiveRecord-inspired syntax for filtering the underlying collection.
Valid operators for use in where
are: gt, gte, lt, lte, not.
Constants
- VALID_OPERATORS
Public Instance Methods
where(options = {})
click to toggle source
# File lib/sleeper_rb/utilities/array_proxy.rb, line 23 def where(options = {}) filtered = __getobj__.dup options.each do |field, value| value = { eq: value } unless value.is_a?(Hash) raise ArgumentError, "Invalid operator, must be one of: #{valid_operators}" unless valid_keys?(value) value.each do |operator, comparison| filtered = filtered.select { |object| VALID_OPERATORS[operator].call(object.send(field), comparison) } end end self.class.new(filtered) end