Module: ActionView::Helpers::FormHelper
- Defined in:
- lib/mead_captcha/form_helper.rb
Instance Method Summary collapse
-
#mead_honeypot(form_tag, object_name, name = nil, options = {}, &block) ⇒ Object
Creates a honeypot on forms that will be appropriately namespaced.
-
#mead_obfuscate(input_type, object_name, method, options = {}, &block) ⇒ Object
Creates an obfuscation on forms that will be appropriately namespaced.
Instance Method Details
#mead_honeypot(form_tag, object_name, name = nil, options = {}, &block) ⇒ Object
Creates a honeypot on forms that will be appropriately namespaced.
Returns a FormHelper tag of type form_tag
that will be namespaced via the object_name
and that will use the hash of options
. Allows you to declare a name
, or if nil grabs a pseudo-random name. Also allows you to pass in a hash of options
that will be passed to the form_tag
. Takes a form_tag
as a string or symbol, the object_name
as a string or symbol, a name
as a string or symbol, a hash of options
that will be passed to the form_tag
, and an optional block
.
If you pass in a block
you will have access to the pre-made tag and the pseudo-randomly created name.
Examples
mead_honeypot(:text_field, :user)
# => <input type="text" name="user[honeypot]" id=user_honeypot">
mead_honeypot(:text_field, :user) do |honeypot, name|
label(:user, name)
honeypot
# => <label for="name">
# <input type="text" name="user[name]" id="user_name">
28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/mead_captcha/form_helper.rb', line 28 def mead_honeypot(form_tag, object_name, name = nil, = {}, &block) defaults = {value: nil}.merge(mead_input_attributes).merge() name ||= mead_field_name form_tag = :text_field unless [:text_field, :text_area].include?(form_tag) html = tag_class(form_tag).new(object_name, name, self, defaults).render if block_given? capture(html, name, &block) else html end end |
#mead_obfuscate(input_type, object_name, method, options = {}, &block) ⇒ Object
Creates an obfuscation on forms that will be appropriately namespaced.
Returns an input tag of type input_type
that will get the method
value from the object_name
that is passed in. Can alternatively be provided with a block
that will give the user access to a pre-made input tag, the obfuscated name, and the name of the method
that was passed in.
Examples
mead_obfuscate(:checkbox, :user, :active)
# => <input type="checkbox" name="user[foo]" id="user_foo">
mead_obfuscate(:checkbox, :user, :active) do |html, obfus_name, real_name|
label(:user, obfus_name, real_name)
html
# => <label for="user_foo">Active</label>
# <input type="hidden" value="0" name="user[foo]" id="user_foo">
# <input type="checkbox" value="1" name="user[foo]" id="user_foo">
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/mead_captcha/form_helper.rb', line 60 def mead_obfuscate(input_type, object_name, method, = {}, &block) real_name = method.to_s = mead_obfuscate_field(real_name) .merge!({ obfuscated_name: , type: input_type.to_s }) html = Tags::ObfuscatedTag.new(object_name, real_name, self, ).render if block_given? capture(html, , real_name.titleize, &block) else html end end |