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