Class: ActionView::Helpers::FormBuilder

Inherits:
Object
  • Object
show all
Includes:
Spamtrap::FormBuilderMutation
Defined in:
lib/spamtrap/helper.rb

Constant Summary

Constants included from Spamtrap::FormBuilderMutation

Spamtrap::FormBuilderMutation::MUTABLE_FIELDS

Constants included from Spamtrap::Crypto

Spamtrap::Crypto::CIPHER, Spamtrap::Crypto::KEY_LEN, Spamtrap::Crypto::NONCE_LEN, Spamtrap::Crypto::TAG_LEN

Instance Method Summary collapse

Methods included from Spamtrap::FormBuilderMutation

#fields_for, #initialize

Instance Method Details

#spamtrap(parameter = 'spamtrap', options = {}) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/spamtrap/helper.rb', line 40

def spamtrap(parameter = 'spamtrap', options = {})
  mutate = options.key?(:mutate) ? options.delete(:mutate) : Spamtrap.mutate
  nonce  = options.key?(:nonce)  ? options.delete(:nonce)  : Spamtrap.nonce
  options.reverse_merge!(class: 'spamtrap')

  if mutate
    @spamtrap_salt = SecureRandom.bytes(Spamtrap::Crypto::NONCE_LEN)
    salt_field = @template.hidden_field_tag(
      :spamtrap_mutation_salt, @spamtrap_salt.unpack1('H*')
    )
  end

  @template.text_area_tag(parameter, nil, options) +
    (nonce ? spamtrap_nonce_fields : ''.html_safe) +
    (salt_field || ''.html_safe)
end