Class: Might::FilterParameters

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Comparable, Enumerable
Defined in:
lib/might/filter_parameters.rb

Constant Summary collapse

FilterError =
Class.new(KeyError)

Instance Method Summary collapse

Constructor Details

#initialize(parameters = nil) ⇒ FilterParameters

Returns a new instance of FilterParameters.

Parameters:



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]



72
73
74
# File 'lib/might/filter_parameters.rb', line 72

def +(other)
  self.class.new(parameters.merge(other.parameters))
end

#-(other) ⇒ Object

param other [Might::FilterParameters]



67
68
69
# File 'lib/might/filter_parameters.rb', line 67

def -(other)
  self.class.new(parameters - other.parameters)
end

#<=>(other) ⇒ Object



85
86
87
# File 'lib/might/filter_parameters.rb', line 85

def <=>(other)
  parameters <=> other.parameters
end

#[](name) ⇒ Might::FilterParameter?

Find filter by name

Parameters:

  • name (String)

Returns:



34
35
36
# File 'lib/might/filter_parameters.rb', line 34

def [](name)
  parameters.detect { |filter| filter.name == name }
end

#add(value) ⇒ Object Also known as: <<

param value [Might::FilterParameter]



56
57
58
# File 'lib/might/filter_parameters.rb', line 56

def add(value)
  self.class.new(parameters.add(value))
end

#delete(name) ⇒ Might::FilterParameter?

Delete filter by name

Parameters:

  • name (String)

Returns:



79
80
81
82
83
# File 'lib/might/filter_parameters.rb', line 79

def delete(name)
  filter_parameter = self[name]
  parameters.delete(filter_parameter) if filter_parameter
  filter_parameter
end

#fetch(name) {|name| ... } ⇒ Might::FilterParameter

Find filter by name or raise error

Parameters:

  • name (String)

Yield Parameters:

  • name (String)

    block value will be returned if no ‘FilterParameter` found with specified name

Returns:

Raises:

  • FilterError



45
46
47
48
49
50
51
52
53
# File 'lib/might/filter_parameters.rb', line 45

def fetch(name)
  if (filter = self[name])
    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



62
63
64
# File 'lib/might/filter_parameters.rb', line 62

def map(&block)
  self.class.new(parameters.map(&block))
end