Class: Kadmin::Presenter

Inherits:
SimpleDelegator
  • Object
show all
Defined in:
lib/kadmin/presenter.rb,
lib/kadmin/presenter/test_case.rb

Overview

Base presenter class

Defined Under Namespace

Classes: NoViewContext, TestCase

Instance Method Summary collapse

Constructor Details

#initialize(object, view: nil) ⇒ Presenter

Returns a new instance of Presenter

Parameters:

  • object (Object)

    the object to present

  • view (ActiveView::Base)

    the view to present in; can be provided later on



6
7
8
9
# File 'lib/kadmin/presenter.rb', line 6

def initialize(object, view: nil)
  super(object)
  @view = view
end

Instance Method Details

#render(view: nil, **options) ⇒ Object

Renders the wrapped object into the given view

Parameters:

  • view (ActiveView::Base)

    optionally render in a different view

  • options (Hash)

    additional options passed to the render method

Returns:

  • (Object)

    rendered representation of the wrapped object, typically a string



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/kadmin/presenter.rb', line 15

def render(view: nil, **options)
  previous_view = @view
  rendered = nil

  begin
    @view = view unless view.nil?
    raise Kadmin::Presenter::NoViewContext if @view.nil?
    rendered = generate(**options)
  ensure
    @view = previous_view
  end

  return rendered
end