Sha256: 70f419716ccb0c9ac1db71a466fe75a313ec8f25448d70ef54c618f80a48f516

Contents?: true

Size: 1.37 KB

Versions: 2

Compression:

Stored size: 1.37 KB

Contents

# Contains methods to use in controllers.
#
# You can define several instance variables to set meta tags:
#   @page_title = 'Member Login'
#   @page_description = 'Member login page.'
#   @page_keywords = 'Site, Login, Members'
#
# Also you can use +set_meta_tags+ method, that have the same parameters
# as <tt>MetaTags.set_meta_tags</tt>.
module MetaTags
  module ControllerHelper
    def self.included(base)
      base.send :include, InstanceMethods
      base.class_eval do
        alias_method_chain :render, :meta_tags
      end
    end

    module InstanceMethods
      protected

        # Processes the <tt>@page_title</tt>, <tt>@page_keywords</tt>, and
        # <tt>@page_description</tt> instance variables and calls +render+.
        def render_with_meta_tags(options = nil, extra_options = {}, &block)
          meta_tags = {}
          meta_tags[:title] = @page_title if @page_title
          meta_tags[:keywords] = @page_keywords if @page_keywords
          meta_tags[:description] = @page_description if @page_description
          set_meta_tags(meta_tags)

          render_without_meta_tags(options, extra_options, &block)
        end
      
        # Set meta tags for the page.
        #
        # See <tt>MetaTags.set_meta_tags</tt> for details.
        def set_meta_tags(meta_tags)
          @meta_tags ||= {}
          @meta_tags.merge!(meta_tags || {})
        end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
meta-tags-1.1.1 lib/meta_tags/controller_helper.rb
meta-tags-1.1.0 lib/meta_tags/controller_helper.rb