Module: Pulitzer::ContentElementHelper

Defined in:
lib/pulitzer/content_element_helper.rb

Instance Method Summary collapse

Instance Method Details

#cms_content_present?(element) ⇒ Boolean

Returns:

  • (Boolean)


4
5
6
# File 'lib/pulitzer/content_element_helper.rb', line 4

def cms_content_present?(element)
  element.present? && element.has_content?
end

#render_body(element, options = {}) ⇒ Object



62
63
64
# File 'lib/pulitzer/content_element_helper.rb', line 62

def render_body(element, options = {})
  (:span, element.body.html_safe, options) if element.body
end

#render_button(element, options = {}) ⇒ Object



54
55
56
# File 'lib/pulitzer/content_element_helper.rb', line 54

def render_button(element,options = {})
  (:button, element.title, options.merge('data-pulitzer-action' => element.content, class: element.style.css_class_name))
end

#render_clickable_element(element, options = {}) ⇒ Object



42
43
44
45
46
47
48
# File 'lib/pulitzer/content_element_helper.rb', line 42

def render_clickable_element(element, options = {})
  if element.custom_type?
    render_button(element, options)
  else
    render_link(element, options)
  end
end

#render_cms_element(element, options = {}) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/pulitzer/content_element_helper.rb', line 8

def render_cms_element(element,options = {})
  if element.image_type?
    render_image_element(element,options)
  elsif element.video_type?
    render_video_element(element,options)
  elsif element.clickable_type?
    render_clickable_element(element,options)
  else
    render_body(element,options)
  end
end

#render_cms_html(element, options = {}) ⇒ Object



66
67
68
# File 'lib/pulitzer/content_element_helper.rb', line 66

def render_cms_html(element, options = {})
  (:span, element.html, options) if element.html
end

#render_cms_image_path(element, options = {}) ⇒ Object



38
39
40
# File 'lib/pulitzer/content_element_helper.rb', line 38

def render_cms_image_path(element,options = {})
  element.image_url(:cms)
end

#render_cms_section(version, section_name) ⇒ Object



74
75
76
77
78
79
80
81
82
# File 'lib/pulitzer/content_element_helper.rb', line 74

def render_cms_section(version, section_name)
  section = version.section(section_name)
  fail SectionMissingError.new("Version #{version.inspect} is missing a section called '#{section_name}' but it's trying to render it.") unless section
  section.partials.collect do |partial|
    if partial.has_display?
      render partial: partial.full_view_path, locals: {partial: partial}
    end
  end.join.html_safe
end

#render_cms_url(element, options = {}) ⇒ Object



70
71
72
# File 'lib/pulitzer/content_element_helper.rb', line 70

def render_cms_url(element, options ={})
   element.body.html_safe if element.html
end

#render_image_element(element, options = {}) ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'lib/pulitzer/content_element_helper.rb', line 20

def render_image_element(element,options = {})
  if element.image?
    pulitzer_options = {'data-pulitzer-element' => element.id}
    if options.is_a? Hash
      pulitzer_options.merge!(options)
    end
    image_tag element.image_url(:cms), pulitzer_options
  end
end

#render_img_srcset(element, options = {}) ⇒ Object



34
35
36
# File 'lib/pulitzer/content_element_helper.rb', line 34

def render_img_srcset(element,options = {})
  (:img, nil, options.merge(srcset: element.image_url(:cms)))
end


50
51
52
# File 'lib/pulitzer/content_element_helper.rb', line 50

def render_link(element,options = {})
  (:a, element.title, options.merge(href: element.content, class: element.style.css_class_name))
end

#render_picture_source(element, options = {}) ⇒ Object



30
31
32
# File 'lib/pulitzer/content_element_helper.rb', line 30

def render_picture_source(element,options = {})
  (:source, nil, options.merge(srcset: element.image_url(:cms)))
end

#render_video_element(element, options = {}) ⇒ Object



58
59
60
# File 'lib/pulitzer/content_element_helper.rb', line 58

def render_video_element(element, options = {})
  (:iframe, nil, options.merge(src: element.video_link)) if element.video_link
end