Sha256: 3abc3c9dcc479e6607387095b832922b29b13ada220921c85c481439f8fee615

Contents?: true

Size: 945 Bytes

Versions: 5

Compression:

Stored size: 945 Bytes

Contents

# frozen_string_literal: true

require 'dato/utils/meta_tags/base'

module Dato
  module Utils
    module MetaTags
      class Title < Base
        def build
          return unless item_title

          [
            content_tag('title', item_title_with_suffix),
            og_tag('og:title', item_title),
            card_tag('twitter:title', item_title)
          ]
        end

        def title_field
          item && item.item_type.title_field
        end

        def item_title
          @item_title ||= seo_field_with_fallback(
            :title,
            title_field && item.send(title_field.api_key)
          )
        end

        def suffix
          (site.global_seo && site.global_seo.title_suffix) || ''
        end

        def item_title_with_suffix
          if (item_title + suffix).size <= 60
            item_title + suffix
          else
            item_title
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
dato-0.6.15 lib/dato/utils/meta_tags/title.rb
dato-0.6.14 lib/dato/utils/meta_tags/title.rb
dato-0.6.12 lib/dato/utils/meta_tags/title.rb
dato-0.6.11 lib/dato/utils/meta_tags/title.rb
dato-0.6.10 lib/dato/utils/meta_tags/title.rb