class PasswordRequired::PasswordRequest::HiddenInputs

Attributes

namespaces[R]

Public Class Methods

new(params, namespaces: []) click to toggle source
# File lib/password_required/password_request/hidden_inputs.rb, line 8
def initialize(params, namespaces: [])
  @params = params
  @namespaces = namespaces
end

Public Instance Methods

to_s() click to toggle source
# File lib/password_required/password_request/hidden_inputs.rb, line 13
def to_s
  @params.reduce('') do |input_html, key_value_pair|
    input_html + input_from(*key_value_pair)
  end
end

Private Instance Methods

devise_input(key, value) click to toggle source
# File lib/password_required/password_request/hidden_inputs.rb, line 29
def devise_input(key, value)
  key += '[]' if value.is_a? Array
  Array(value).map { |i| hidden_field_tag key, i }.join('')
end
input_from(key, value) click to toggle source
# File lib/password_required/password_request/hidden_inputs.rb, line 21
def input_from(key, value)
  if value.is_a? Hash
    self.class.new(value, namespaces: namespaces | [key]).to_s
  else
    devise_input namespaced(key), value
  end
end
namespaced(key) click to toggle source
# File lib/password_required/password_request/hidden_inputs.rb, line 34
def namespaced(key)
  first, *rest = *(namespaces | [key])
  "#{first}#{rest.reduce('') { |a, e| a + "[#{e}]" }}"
end