Sha256: 7af3aaf0c3361794944ac51b0d468f2657982e8eb07c44825a6920022a72e703

Contents?: true

Size: 1.62 KB

Versions: 1

Compression:

Stored size: 1.62 KB

Contents

# frozen_string_literal: true

module MicrodataHelper
  def render_about_us_json_ld
    content_tag :script, type: 'application/ld+json' do
      render partial: 'shared/json_microdata/about_us', formats: [:json]
    end
  end

  def render_about_company_json_ld
    content_tag :script, type: 'application/ld+json' do
      render partial: 'shared/json_microdata/about_company', formats: [:json]
    end
  end

  def render_post_json_ld
    content_tag :script, type: 'application/ld+json' do
      render partial: 'shared/json_microdata/blog', formats: [:json]
    end
  end

  def render_breadcrubs_json_ld
    breadcrumbs = find_breadcrumbs

    content_tag :script, type: 'application/ld+json' do
      render partial: 'shared/json_microdata/breadcrumbs', formats: [:json],
             locals: { breadcrumbs: breadcrumbs }
    end
  end

  private

  def find_breadcrumbs
    return blog_breadcrumbs if @post

    return service_breadcrumbs if @structure.try(:service_page?)

    default_breadcrumbs
  end

  def blog_breadcrumbs
    default_breadcrumbs << { name: @post.title, item: post_url(@post) }
  end

  def service_breadcrumbs
    breadcrumbs = [{ name: 'Services', item: (request.base_url + services_path) }]

    @structure.parent_services.reverse.each do |parent|
      breadcrumbs << { name: parent.title, item: service_breadcrumb_url(parent) }
    end

    breadcrumbs << { name: @structure.title, item: service_breadcrumb_url(@structure) }
  end

  def default_breadcrumbs
    [{ name: @structure.title, item: entry_url(@structure) }]
  end

  def service_breadcrumb_url(service)
    request.base_url + service_path(service)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
translation_cms-0.1.5 app/helpers/microdata_helper.rb