module Pulitzer::ContentElementHelper

Public Instance Methods

cms_content_present?(element) click to toggle source
# File lib/pulitzer/content_element_helper.rb, line 4
def cms_content_present?(element)
  element.present? && element.has_content?
end
render_body(element, options = {}) click to toggle source
# File lib/pulitzer/content_element_helper.rb, line 62
def render_body(element, options = {})
  content_tag(:span, element.body.html_safe, options) if element.body
end
render_button(element,options = {}) click to toggle source
# File lib/pulitzer/content_element_helper.rb, line 54
def render_button(element,options = {})
  content_tag(:button, element.title, options.merge('data-pulitzer-action' => element.content, class: element.style&.css_class_name))
end
render_clickable_element(element, options = {}) click to toggle source
# 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 = {}) click to toggle source
# 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 = {}) click to toggle source
# File lib/pulitzer/content_element_helper.rb, line 66
def render_cms_html(element, options = {})
  content_tag(:span, element.html, options) if element.html
end
render_cms_image_path(element,options = {}) click to toggle source
# 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) click to toggle source
# 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 ={}) click to toggle source
# 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 = {}) click to toggle source
# 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 = {}) click to toggle source
# File lib/pulitzer/content_element_helper.rb, line 34
def render_img_srcset(element,options = {})
  content_tag(:img, nil, options.merge(srcset: element.image_url(:cms)))
end
render_picture_source(element,options = {}) click to toggle source
# File lib/pulitzer/content_element_helper.rb, line 30
def render_picture_source(element,options = {})
  content_tag(:source, nil, options.merge(srcset: element.image_url(:cms)))
end
render_video_element(element, options = {}) click to toggle source
# File lib/pulitzer/content_element_helper.rb, line 58
def render_video_element(element, options = {})
  content_tag(:iframe, nil, options.merge(src: element.video_link)) if element.video_link
end