class AdminIt::ValueFilter

Attributes

values[R]

Public Class Methods

new() click to toggle source
# File lib/admin_it/filters/value_filter.rb, line 6
def initialize
  @values = []
end

Public Instance Methods

all_values(collection = nil, &block) click to toggle source
# File lib/admin_it/filters/value_filter.rb, line 27
def all_values(collection = nil, &block)
  collection ||= []
  enum = Enumerator.new do |yielder|
    values = collection.map { |e| self.class.field.read(e) }
    values.uniq.each do |value|
      yileder << {
        value: value, count: values.count { |v| v == value }
      }
    end
  end
  block_given? ? enum.each(&block) : enum
end
apply(collection) click to toggle source
# File lib/admin_it/filters/value_filter.rb, line 44
def apply(collection)
  return collection if @values.empty?
  collection.select do |entity|
    @values.include?(self.class.field.read(entity))
  end
end
value(val) click to toggle source
# File lib/admin_it/filters/value_filter.rb, line 40
def value(val)
  create_argument(val)
end