class ActionParamsPermitter::Builders::Main

Provides context for building permitters

Parameters: state - initial state for builder

Attributes

state[R]

Public Class Methods

new(state) click to toggle source
# File lib/action_params_permitter/builders/main.rb, line 15
def initialize(state)
  @state = state
end

Public Instance Methods

attribute(name) click to toggle source

Adds intention for attribute permitting

Parameters: name - name of the permitting attribute

Returns: new state

# File lib/action_params_permitter/builders/main.rb, line 43
def attribute(name)
  state << name
  state
end
attributes(*names) click to toggle source

Adds intention for attributes permitting. Works exactly as a ‘attribute` but accepts array of attributes

Parameters: names - names of the permitting attributes

Returns: new state

# File lib/action_params_permitter/builders/main.rb, line 59
def attributes(*names)
  names.each { |name| attribute(name) }
  state
end
resource(name, options = {}, &block) click to toggle source

Adds intention for resource permitting

Parameters: name - name of the permitting resource options - hash with options. Available are:

required - true/false. Required may be only top level resource and only one.

Returns: new state

# File lib/action_params_permitter/builders/main.rb, line 30
def resource(name, options = {}, &block)
  Builders::Resource.new(name, state).call(&block)
end

Private Instance Methods

top_level_builder?() click to toggle source
# File lib/action_params_permitter/builders/main.rb, line 66
def top_level_builder?
  state.is_a?(Hash)
end