Class: ViewSpec::ParamSet

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/view_spec/param_set.rb

Instance Method Summary collapse

Constructor Details

#initializeParamSet

Returns a new instance of ParamSet.



7
8
9
# File 'lib/view_spec/param_set.rb', line 7

def initialize
  @params = ActiveSupport::OrderedOptions.new.merge!({})
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/view_spec/param_set.rb', line 30

def method_missing(name, ...)
  if @params.key?(name)
    @params.fetch(name).value
  else
    super
  end
end

Instance Method Details

#add(name, cast_type = nil, value: nil, **options) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/view_spec/param_set.rb', line 11

def add(name, cast_type = nil, value: nil, **options)
  if name.is_a?(Hash)
    name.each { add(_1, value: _2) }
  else
    @params[name.to_sym] = Param.new(name, cast_type, value:, **options)
  end
  @params
end

#respond_to_missing?(name, include_private = false) ⇒ Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/view_spec/param_set.rb', line 26

def respond_to_missing?(name, include_private = false)
  @params.key?(name)
end

#to_hObject Also known as: to_hash



20
21
22
# File 'lib/view_spec/param_set.rb', line 20

def to_h
  @params.transform_values { _1.value }
end