Class: AdminIt::ValueFilter
- Inherits:
-
FieldFilter
- Object
- Filter
- FieldFilter
- AdminIt::ValueFilter
- Defined in:
- lib/admin_it/filters/value_filter.rb
Instance Attribute Summary collapse
-
#values ⇒ Object
readonly
Returns the value of attribute values.
Instance Method Summary collapse
- #all_values(collection = nil, &block) ⇒ Object
- #apply(collection) ⇒ Object
-
#initialize ⇒ ValueFilter
constructor
A new instance of ValueFilter.
- #value(val) ⇒ Object
Constructor Details
#initialize ⇒ ValueFilter
Returns a new instance of ValueFilter.
5 6 7 |
# File 'lib/admin_it/filters/value_filter.rb', line 5 def initialize @values = [] end |
Instance Attribute Details
#values ⇒ Object (readonly)
Returns the value of attribute values.
3 4 5 |
# File 'lib/admin_it/filters/value_filter.rb', line 3 def values @values end |
Instance Method Details
#all_values(collection = nil, &block) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/admin_it/filters/value_filter.rb', line 26 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) ⇒ Object
43 44 45 46 47 48 |
# File 'lib/admin_it/filters/value_filter.rb', line 43 def apply(collection) return collection if @values.empty? collection.select do |entity| @values.include?(self.class.field.read(entity)) end end |
#value(val) ⇒ Object
39 40 41 |
# File 'lib/admin_it/filters/value_filter.rb', line 39 def value(val) create_argument(val) end |