Module: MetaTags::ViewHelper

Defined in:
lib/meta_tags/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:



93
94
95
96
# File 'lib/meta_tags/view_helper.rb', line 93

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.



180
181
182
# File 'lib/meta_tags/view_helper.rb', line 180

def display_meta_tags(defaults = {})
  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



205
206
207
# File 'lib/meta_tags/view_helper.rb', line 205

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:



75
76
77
78
# File 'lib/meta_tags/view_helper.rb', line 75

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

#meta_tagsObject

Get meta tags for the page.



8
9
10
# File 'lib/meta_tags/view_helper.rb', line 8

def meta_tags
  @meta_tags ||= MetaTagsCollection.new
end

#nofollow(nofollow = true) ⇒ Boolean, ...

Set the nofollow meta tag

Examples:

nofollow true
nofollow 'googlebot'

Parameters:

  • nofollow (Boolean, String, Array<String>) (defaults to: true)

    a nofollow value.

Returns:

  • (Boolean, String, Array<String>)

    passed value.

See Also:



125
126
127
128
# File 'lib/meta_tags/view_helper.rb', line 125

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

#noindex(noindex = true) ⇒ Boolean, ...

Set the noindex meta tag

Examples:

noindex true
noindex 'googlebot'

Parameters:

  • noindex (Boolean, String, Array<String>) (defaults to: true)

    a noindex value.

Returns:

  • (Boolean, String, Array<String>)

    passed value.

See Also:



109
110
111
112
# File 'lib/meta_tags/view_helper.rb', line 109

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:



141
142
143
144
# File 'lib/meta_tags/view_helper.rb', line 141

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:



30
31
32
# File 'lib/meta_tags/view_helper.rb', line 30

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:



58
59
60
61
# File 'lib/meta_tags/view_helper.rb', line 58

def title(title = nil, headline = "")
  set_meta_tags(title: title) unless title.nil?
  headline.presence || meta_tags[:title]
end