Class: Might::FilterParameters
- Inherits:
-
Object
- Object
- Might::FilterParameters
- Extended by:
- Forwardable
- Includes:
- Comparable, Enumerable
- Defined in:
- lib/might/filter_parameters.rb
Constant Summary collapse
- FilterError =
Class.new(KeyError)
Instance Method Summary collapse
-
#+(other) ⇒ Object
param other [Might::FilterParameters].
-
#-(other) ⇒ Object
param other [Might::FilterParameters].
- #<=>(other) ⇒ Object
-
#[](name, predicate = nil) ⇒ Might::FilterParameter?
Find filter by name.
-
#add(value) ⇒ Object
(also: #<<)
param value [Might::FilterParameter].
-
#delete(name, predicate = nil) ⇒ Might::FilterParameter?
Delete filter by name and predicate.
-
#fetch(name, predicate = nil) {|name| ... } ⇒ Might::FilterParameter
Find filter by name or raise error.
-
#initialize(parameters = nil) ⇒ FilterParameters
constructor
A new instance of FilterParameters.
-
#initialize_clone(orig) ⇒ Object
Clone internal set.
-
#initialize_dup(orig) ⇒ Object
Dup internal set.
- #map(&block) ⇒ Object
Constructor Details
#initialize(parameters = nil) ⇒ FilterParameters
Returns a new instance of FilterParameters.
14 15 16 |
# File 'lib/might/filter_parameters.rb', line 14 def initialize(parameters = nil) @parameters = Set.new(parameters) end |
Instance Method Details
#+(other) ⇒ Object
param other [Might::FilterParameters]
76 77 78 |
# File 'lib/might/filter_parameters.rb', line 76 def +(other) self.class.new(parameters.merge(other.parameters)) end |
#-(other) ⇒ Object
param other [Might::FilterParameters]
71 72 73 |
# File 'lib/might/filter_parameters.rb', line 71 def -(other) self.class.new(parameters - other.parameters) end |
#<=>(other) ⇒ Object
90 91 92 |
# File 'lib/might/filter_parameters.rb', line 90 def <=>(other) parameters <=> other.parameters end |
#[](name, predicate = nil) ⇒ Might::FilterParameter?
Find filter by name
35 36 37 38 39 |
# File 'lib/might/filter_parameters.rb', line 35 def [](name, predicate = nil) parameters.detect do |filter| filter.name == name && (predicate.nil? || filter.predicate == predicate) end end |
#add(value) ⇒ Object Also known as: <<
param value [Might::FilterParameter]
60 61 62 |
# File 'lib/might/filter_parameters.rb', line 60 def add(value) self.class.new(parameters.add(value)) end |
#delete(name, predicate = nil) ⇒ Might::FilterParameter?
Delete filter by name and predicate
84 85 86 87 88 |
# File 'lib/might/filter_parameters.rb', line 84 def delete(name, predicate = nil) filter_parameter = self[name, predicate] parameters.delete(filter_parameter) if filter_parameter filter_parameter end |
#fetch(name, predicate = nil) {|name| ... } ⇒ Might::FilterParameter
Find filter by name or raise error
49 50 51 52 53 54 55 56 57 |
# File 'lib/might/filter_parameters.rb', line 49 def fetch(name, predicate = nil) if (filter = self[name, predicate]) filter elsif block_given? yield(name) else fail FilterError, "filter not found: #{name.inspect}" end end |
#initialize_clone(orig) ⇒ Object
Clone internal set.
25 26 27 28 |
# File 'lib/might/filter_parameters.rb', line 25 def initialize_clone(orig) super @parameters = orig.parameters.clone end |
#initialize_dup(orig) ⇒ Object
Dup internal set.
19 20 21 22 |
# File 'lib/might/filter_parameters.rb', line 19 def initialize_dup(orig) super @parameters = orig.parameters.dup end |
#map(&block) ⇒ Object
66 67 68 |
# File 'lib/might/filter_parameters.rb', line 66 def map(&block) self.class.new(parameters.map(&block)) end |