module Forme::Template::Helper
This is the module used to add the Forme
integration to ERB
.
Public Instance Methods
form(obj=nil, attr={}, opts={}, &block)
click to toggle source
Create a Form
object tied to the current output buffer, using the standard ERB
hidden tags.
# File lib/forme/template.rb 59 def form(obj=nil, attr={}, opts={}, &block) 60 if obj.is_a?(Hash) 61 attribs = obj 62 options = attr = attr.dup 63 else 64 attribs = attr 65 options = opts = opts.dup 66 end 67 68 _forme_form_options(obj, attribs, options) 69 _forme_form(obj, attr, opts, &block) 70 end
Private Instance Methods
_forme_form(obj, attr, opts) { |erb_form| ... }
click to toggle source
# File lib/forme/template.rb 74 def _forme_form(obj, attr, opts, &block) 75 if block && opts[:emit] != false 76 erb_form = buffer = offset = nil 77 form_block = proc do 78 wrapped_form = erb_form.instance_variable_get(:@form) 79 buffer = wrapped_form.to_s 80 offset = buffer.length 81 erb_form.emit(buffer[0, buffer.length]) 82 yield erb_form 83 offset = buffer.length 84 end 85 86 f, attr, form_block = _forme_wrapped_form_class.form_args(obj, attr, opts, &form_block) 87 erb_form = _forme_form_class.new(f, self) 88 erb_form.form(attr, &form_block) 89 erb_form.emit(buffer[offset, buffer.length]) 90 else 91 _forme_wrapped_form_class.form(obj, attr, opts, &block) 92 end 93 end
_forme_form_class()
click to toggle source
The class to use for forms
# File lib/forme/template.rb 100 def _forme_form_class 101 Form 102 end
_forme_form_options(obj, attr, opts)
click to toggle source
The options to use for forms. Any changes should mutate this hash to set options. Does nothing by default.
# File lib/forme/template.rb 106 def _forme_form_options(obj, attr, opts) 107 end
_forme_wrapped_form_class()
click to toggle source
# File lib/forme/template.rb 95 def _forme_wrapped_form_class 96 ::Forme::Form 97 end