Module: Despecable::ActionController

Defined in:
lib/despecable/action_controller.rb

Instance Method Summary collapse

Instance Method Details

#despec(*args, strict: false, &blk) ⇒ Object



3
4
5
6
7
8
9
10
11
# File 'lib/despecable/action_controller.rb', line 3

def despec(*args, strict: false, &blk)
  output_params = params.dup
  parsed = despecable_me(output_params).doit(*args, &blk)
  despecable_me.strict(request.query_parameters.keys + request.request_parameters.keys) if strict
  parsed.each do |key, val|
    output_params[key] = val
  end
  return output_params
end

#despec!(*args, strict: false, &blk) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/despecable/action_controller.rb', line 13

def despec!(*args, strict: false, &blk)
  parsed = despecable_me(params).doit(*args, &blk)
  despecable_me.strict(request.query_parameters.keys + request.request_parameters.keys) if strict
  parsed.each do |key, val|
    params[key] = val
  end
  return params
end

#despecable_me(params = {}) ⇒ Object

A cached instance of Despecable::Me will keep track of all despec calls in a given request / action. This allows despec to be called multiple times (e.g. in before_actions) and keep track of all spec’d params



25
26
27
# File 'lib/despecable/action_controller.rb', line 25

def despecable_me(params = {})
  @despecable_me ||= Despecable::Me.new(params)
end