Sha256: 8f6cd22db573f9b6c4208f37cefabcd7ef93274e7cf2468b762e6713a9ed8f26

Contents?: true

Size: 817 Bytes

Versions: 1

Compression:

Stored size: 817 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 = {})
      meta = meta_tags.reject { |_name, value| value.blank? }

      set_meta_tags(meta)
    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
      }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

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