Class: Wallaby::PartialRenderer

Inherits:
Object
  • Object
show all
Defined in:
lib/services/wallaby/partial_renderer.rb

Overview

Partial renderer

Class Method Summary collapse

Class Method Details

.render(view, options = {}, locals = {}, action_name = nil, &block) ⇒ String

Render form partial

Parameters:

  • view (ActionView)

    view

  • options (String) (defaults to: {})

    partial name

  • locals (Hash) (defaults to: {})

Returns:

  • (String)

    HTML



10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/services/wallaby/partial_renderer.rb', line 10

def render(view, options = {}, locals = {}, action_name = nil, &block)
  decorated = locals[:object]
  field_name = locals[:field_name].to_s
  action_name ||= Utils.to_partial_name view.params[:action]

  partial_arguments_check decorated, field_name

  locals[:metadata] =
    decorated.public_send :"#{action_name}_metadata_of", field_name
  locals[:value] = decorated.public_send field_name

  view.render(options, locals, &block) \
    || view.render('string', locals, &block)
end

.render_form(view, options = {}, locals = {}, &block) ⇒ String

Render form partial

Parameters:

  • view (ActionView)

    view

  • options (String) (defaults to: {})

    partial name

  • locals (Hash) (defaults to: {})

Returns:

  • (String)

    HTML



30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/services/wallaby/partial_renderer.rb', line 30

def render_form(view, options = {}, locals = {}, &block)
  form = locals[:form]
  field_name = locals[:field_name].to_s

  form_arguments_check form, field_name

  decorated = locals[:object] = form.object
  locals[:metadata] = decorated. locals[:field_name]
  locals[:value] = decorated.public_send locals[:field_name]

  view.render(options, locals, &block) \
    || view.render('string', locals, &block)
end