Class: Trestle::Form::Renderer

Inherits:
Object
  • Object
show all
Includes:
ActionView::Context, ActionView::Helpers::CaptureHelper, Hook::Helpers
Defined in:
lib/trestle/form/renderer.rb

Constant Summary collapse

WHITELISTED_HELPERS =

Whitelisted helpers will concatenate their result to the output buffer when called.

[:row, :col, :render, :tab, :table, :divider, :h1, :h2, :h3, :h4, :h5, :h6, :card, :panel, :well]
RAW_BLOCK_HELPERS =

Raw block helpers will pass their block argument directly to the method without wrapping it in a new output buffer.

[:table, :toolbar]

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Hook::Helpers

#hook, #hook?

Constructor Details

#initialize(template, form = nil) ⇒ Renderer

Returns a new instance of Renderer.



28
29
30
31
# File 'lib/trestle/form/renderer.rb', line 28

def initialize(template, form=nil)
  @template = template
  @form = form || @template.form
end

Class Method Details

.ruby2_keywordsObject



7
8
# File 'lib/trestle/form/renderer.rb', line 7

def self.ruby2_keywords(*)
end

Instance Method Details

#fields_for(*args, &block) ⇒ Object



37
38
39
40
41
42
43
44
# File 'lib/trestle/form/renderer.rb', line 37

def fields_for(*args, &block)
  result = @form.fields_for(*args) do |f|
    renderer = self.class.new(@template, f)
    renderer.render_form(f, &block)
  end

  concat(result)
end

#render_form(*args, &block) ⇒ Object



33
34
35
# File 'lib/trestle/form/renderer.rb', line 33

def render_form(*args, &block)
  capture { instance_exec(*args, &block).to_s }
end

#respond_to_missing?(name, include_all = false) ⇒ Boolean

Returns:

  • (Boolean)


64
65
66
67
68
# File 'lib/trestle/form/renderer.rb', line 64

def respond_to_missing?(name, include_all=false)
  @form.respond_to?(name, include_all) ||
    @template.respond_to?(name, include_all) ||
    super
end