Class: ContentBlockTools::Presenters::BasePresenter

Inherits:
Object
  • Object
show all
Includes:
ActionView::Context, ActionView::Helpers::TagHelper
Defined in:
lib/content_block_tools/presenters/base_presenter.rb

Constant Summary collapse

BASE_TAG_TYPE =

The default HTML tag to wrap the presented response in - can be overridden in a subclass

:span
FIELD_PRESENTERS =

A lookup of presenters for particular fields - can be overridden in a subclass

{}.freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(content_block) ⇒ {ContentBlockTools::Presenters::BasePresenter}

Returns a new presenter object

Parameters:



28
29
30
# File 'lib/content_block_tools/presenters/base_presenter.rb', line 28

def initialize(content_block)
  @content_block = content_block
end

Class Method Details

.has_embedded_objects(*object_types) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/content_block_tools/presenters/base_presenter.rb', line 13

def self.has_embedded_objects(*object_types)
  @embedded_objects = object_types

  object_types.each do |object_type|
    define_method(object_type) do
      embedded_objects_of_type(object_type)
    end
  end
end

Instance Method Details

#renderstring

Returns a HTML representation of the content block wrapped in a base tag with a class and data attributes Calls the #content method, which can be overridden in a subclass

Returns:

  • (string)

    A HTML representation of the content block



37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/content_block_tools/presenters/base_presenter.rb', line 37

def render
  (
    base_tag,
    content,
    class: %W[content-embed content-embed__#{content_block.document_type}],
    data: {
      content_block: "",
      document_type: content_block.document_type,
      content_id: content_block.content_id,
      embed_code: content_block.embed_code,
    },
  )
end