Sha256: 96575911d4ce766dac7adb9946587cbbb123192750ab84dc3d14491e92efc548

Contents?: true

Size: 1.12 KB

Versions: 3

Compression:

Stored size: 1.12 KB

Contents

# frozen_string_literal: true

module PagesCore
  module OpenGraphTagsHelper
    def open_graph_properties
      @open_graph_properties ||= {}
    end

    # Outputs Open Graph tags for Facebook.
    def open_graph_tags
      properties = default_open_graph_properties.merge(open_graph_properties)
      safe_join(
        properties
          .compact
          .map do |name, content|
          tag.meta(property: "og:#{name}", content: content)
        end,
        "\n"
      )
    end

    private

    def default_open_graph_title
      if @page.try(:open_graph_title?)
        @page.open_graph_title
      else
        document_title
      end
    end

    def default_open_graph_description
      if @page.try(:open_graph_description?)
        @page.open_graph_description
      elsif meta_description?
        meta_description
      end
    end

    def default_open_graph_properties
      { type: "website",
        site_name: PagesCore.config(:site_name),
        title: default_open_graph_title,
        image: (meta_image if meta_image?),
        description: default_open_graph_description,
        url: request.url }
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pages_core-3.12.7 app/helpers/pages_core/open_graph_tags_helper.rb
pages_core-3.12.6 app/helpers/pages_core/open_graph_tags_helper.rb
pages_core-3.12.5 app/helpers/pages_core/open_graph_tags_helper.rb