Module: MetaTags::ViewHelper

Defined in:
lib/meta_tags-rails/view_helper.rb

Overview

Contains methods to use in views and helpers.

Instance Method Summary collapse

Instance Method Details

#description(description) ⇒ String

Set the page description.

Examples:

description 'This is login page'

Parameters:

  • description (String)

    page description to be set in HEAD section of the HTML document. Please note, any HTML tags will be stripped from output string, and string will be truncated to 200 characters.

Returns:

  • (String)

    passed value.

See Also:



91
92
93
94
# File 'lib/meta_tags-rails/view_helper.rb', line 91

def description(description)
  set_meta_tags(description: description)
  description
end

#display_meta_tags(defaults = {}) ⇒ String

Set default meta tag values and display meta tags. This method should be used in layout file.

Examples:

<head>
  <%= display_meta_tags site: 'My website' %>
</head>

Parameters:

  • defaults (Hash) (defaults to: {})

    default meta tag values.

  • default (Hash)

    a customizable set of options

Returns:

  • (String)

    HTML meta tags to render in HEAD section of the HTML document.



176
177
178
# File 'lib/meta_tags-rails/view_helper.rb', line 176

def display_meta_tags(defaults = {})
  self.meta_tags.with_defaults(defaults) { Renderer.new(meta_tags).render(self) }
end

#display_title(defaults = {}) ⇒ Object

Returns full page title as a string without surrounding <title> tag.

The only case when you may need this helper is when you use pjax. This means that your layout file (with display_meta_tags helper) will not be rendered, so you have to pass default arguments like site title in here. You probably want to define helper with default options to minimize code duplication.

Examples:

<div data-page-container="true" title="<%= display_title title: 'My Page', site: 'PJAX Site' %>">

Parameters:

  • defaults (Hash) (defaults to: {})

    list of meta tags.

  • default (Hash)

    a customizable set of options



199
200
201
# File 'lib/meta_tags-rails/view_helper.rb', line 199

def display_title(defaults = {})
  @meta_tags.full_title(defaults)
end

#keywords(keywords) ⇒ String, Array

Set the page keywords.

Examples:

keywords 'keyword1, keyword2'
keywords %w(keyword1 keyword2)

Parameters:

  • keywords (String, Array)

    meta keywords to render in HEAD section of the HTML document.

Returns:

  • (String, Array)

    passed value.

See Also:



73
74
75
76
# File 'lib/meta_tags-rails/view_helper.rb', line 73

def keywords(keywords)
  set_meta_tags(keywords: keywords)
  keywords
end

#meta_tagsObject

Get meta tags for the page.



6
7
8
# File 'lib/meta_tags-rails/view_helper.rb', line 6

def meta_tags
  @meta_tags ||= MetaTagsCollection.new
end

#nofollow(nofollow = true) ⇒ Boolean, String

Set the nofollow meta tag

Examples:

nofollow true
nofollow 'googlebot'

Parameters:

  • nofollow (Boolean, String) (defaults to: true)

    a nofollow value.

Returns:

  • (Boolean, String)

    passed value.

See Also:



123
124
125
126
# File 'lib/meta_tags-rails/view_helper.rb', line 123

def nofollow(nofollow = true)
  set_meta_tags(nofollow: nofollow)
  nofollow
end

#noindex(noindex = true) ⇒ Boolean, String

Set the noindex meta tag

Examples:

noindex true
noindex 'googlebot'

Parameters:

  • noindex (Boolean, String) (defaults to: true)

    a noindex value.

Returns:

  • (Boolean, String)

    passed value.

See Also:



107
108
109
110
# File 'lib/meta_tags-rails/view_helper.rb', line 107

def noindex(noindex = true)
  set_meta_tags(noindex: noindex)
  noindex
end

#refresh(refresh) ⇒ Integer, String

Set the refresh meta tag

Examples:

refresh 5
refresh "5;url=http://www.example.com/"

Parameters:

  • refresh (Integer, String)

    a refresh value.

Returns:

  • (Integer, String)

    passed value.

See Also:



139
140
141
142
# File 'lib/meta_tags-rails/view_helper.rb', line 139

def refresh(refresh)
  set_meta_tags(refresh: refresh)
  refresh
end

#set_meta_tags(meta_tags = {}) ⇒ Object

Set meta tags for the page.

Method could be used several times, and all options passed will be merged. If you will set the same property several times, last one will take precedence.

Usually you will not call this method directly. Use #title, #keywords, #description for your daily tasks.

Examples:

set_meta_tags title: 'Login Page', description: 'Here you can login'
set_meta_tags keywords: 'authorization, login'

Parameters:

  • meta_tags (Hash) (defaults to: {})

    list of meta tags. See #display_meta_tags for allowed options.

See Also:



28
29
30
# File 'lib/meta_tags-rails/view_helper.rb', line 28

def set_meta_tags(meta_tags = {})
  self.meta_tags.update(meta_tags)
end

#title(title = nil, headline = '') ⇒ String

Set the page title and return it back.

This method is best suited for use in helpers. It sets the page title and returns it (or headline if specified).

Examples:

Set HTML title to “Please login”, return “Please login”

title 'Login Page'

Set HTML title to “Login Page”, return “Please login”

title 'Login Page', 'Please login'

Set title as array of strings

title title: ['part1', 'part2'] # => "part1 | part2"

Get current title

title

Parameters:

  • title (nil, String, Array) (defaults to: nil)

    page title. When passed as an Array, parts will be joined using configured separator value (see #display_meta_tags). When nil, current title will be returned.

  • headline (String) (defaults to: '')

    the value to return from method. Useful for using this method in views to set both page title and the content of heading tag.

Returns:

  • (String)

    returns title value or headline if passed.

See Also:



56
57
58
59
# File 'lib/meta_tags-rails/view_helper.rb', line 56

def title(title = nil, headline = '')
  set_meta_tags(title: title) unless title.nil?
  headline.blank? ? meta_tags[:title] : headline
end