Class: ContentBlockTools::Presenters::BlockPresenters::Contact::AddressPresenter

Inherits:
BasePresenter
  • Object
show all
Includes:
BlockLevelContactItem
Defined in:
lib/content_block_tools/presenters/block_presenters/contact/address_presenter.rb

Constant Summary

Constants included from BlockLevelContactItem

BlockLevelContactItem::BASE_TAG_TYPE

Constants inherited from BasePresenter

BasePresenter::BASE_TAG_TYPE

Instance Attribute Summary

Attributes inherited from BasePresenter

#item

Instance Method Summary collapse

Methods included from BlockLevelContactItem

#initialize

Methods inherited from BasePresenter

#initialize

Instance Method Details

#class_for_field_name(field_name) ⇒ Object



32
33
34
35
36
37
38
39
40
# File 'lib/content_block_tools/presenters/block_presenters/contact/address_presenter.rb', line 32

def class_for_field_name(field_name)
  {
    street_address: "street-address",
    locality: "locality",
    region: "region",
    postal_code: "postal-code",
    country: "country-name",
  }[field_name]
end

#renderObject



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/content_block_tools/presenters/block_presenters/contact/address_presenter.rb', line 10

def render
  wrapper do
    (:p, class: "adr") do
      %i[street_address locality region postal_code country].map { |field|
        next if item[field].blank?

        (:span, item[field], { class: class_for_field_name(field) })
      }.compact_blank.join(",<br/>").html_safe
    end
  end
end

#wrapper(&block) ⇒ Object



22
23
24
25
26
27
28
29
30
# File 'lib/content_block_tools/presenters/block_presenters/contact/address_presenter.rb', line 22

def wrapper(&block)
  if @rendering_context == :field_names
    (:div, class: "contact") do
      yield block
    end
  else
    yield block
  end
end