Sha256: fd634b90eba56d9791daccfabccbcdef4b846f0fd50addee2b89b098e9e36305

Contents?: true

Size: 894 Bytes

Versions: 62

Compression:

Stored size: 894 Bytes

Contents

module Workarea
  class Metadata::ContentPage < Metadata

    # Provides a default value for use as the html page title using
    # the name of the page and its parent taxon if available.
    #
    # @example
    #   Sub-Category - Primary Taxon
    #
    # @return [String]
    #
    def title
      title = [model.name]
      taxon = model.taxon

      if taxon.present? && taxon.parent.present? && !taxon.parent.root?
        title << taxon.parent.name
      end

      title.join(' - ')
    end

    # Provides a default value for use as the html content meta
    # tag using an excerpt of the page's content blocks with a
    # length determined by the configurable max words.
    #
    # @return [String]
    #
    def description
      ExtractContentBlockText.new(content.blocks)
          .text
          .split(/\s+/)
          .first(max_words)
          .join(' ')
    end
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
workarea-core-3.4.13 app/queries/workarea/metadata/content_page.rb
workarea-core-3.4.12 app/queries/workarea/metadata/content_page.rb