Sha256: a44e1f66eba50ccc707100fefc5d59f26e97efa439e83f565b1d309716c9878f

Contents?: true

Size: 923 Bytes

Versions: 1

Compression:

Stored size: 923 Bytes

Contents

# frozen_string_literal: true

module Archangel
  ##
  # Controller SEO concern
  #
  module SeoableConcern
    extend ActiveSupport::Concern

    included do
      before_action :apply_default_meta_tags, if: -> { request.get? },
                                              unless: -> { request.xhr? }
    end

    # Set meta tags
    #
    # @param meta_tags [Hash] list of meta tags
    def apply_meta_tags(meta_tags = {})
      set_meta_tags(meta_tags.reject { |_name, value| value.blank? })
    end

    protected

    def apply_default_meta_tags
      apply_meta_tags default_meta_tags
    end

    def default_meta_tags
      {
        reverse:     true,
        site:        current_site.name,
        canonical:   request.url,
        image_src:   current_site.logo.url,
        description: current_site.meta_description,
        keywords:    current_site.meta_keywords.to_s.split(",")
      }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
archangel-0.0.8 app/controllers/concerns/archangel/seoable_concern.rb