meta-tags 1.4.1 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.md +7 -0
- data/README.md +45 -22
- data/lib/meta_tags/version.rb +1 -1
- data/lib/meta_tags/view_helper.rb +31 -5
- data/spec/meta_tags_spec.rb +51 -0
- metadata +5 -5
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -105,6 +105,41 @@ Further reading:
|
|
105
105
|
* [About rel="canonical"](http://www.google.com/support/webmasters/bin/answer.py?hl=en&answer=139394)
|
106
106
|
* [Canonicalization](http://www.google.com/support/webmasters/bin/answer.py?hl=en&answer=139066)
|
107
107
|
|
108
|
+
### Pagination links
|
109
|
+
|
110
|
+
Previous and next links indicate indicate the relationship between individual
|
111
|
+
URLs. Using these attributes is a strong hint to Google that you want us to
|
112
|
+
treat these pages as a logical sequence.
|
113
|
+
|
114
|
+
set_meta_tags :prev => "http://yoursite.com/url?page=1"
|
115
|
+
# <link rel="prev" href="http://yoursite.com/url?page=1" />
|
116
|
+
set_meta_tags :next => "http://yoursite.com/url?page=3"
|
117
|
+
# <link rel="next" href="http://yoursite.com/url?page=3" />
|
118
|
+
|
119
|
+
Further reading:
|
120
|
+
|
121
|
+
* [Pagination](http://support.google.com/webmasters/bin/answer.py?hl=en&answer=1663744)
|
122
|
+
* [Pagination with rel="next" and rel="prev"](http://googlewebmastercentral.blogspot.ca/2011/09/pagination-with-relnext-and-relprev.html)
|
123
|
+
|
124
|
+
### Refresh interval and redirect URL
|
125
|
+
|
126
|
+
Meta refresh is a method of instructing a web browser to automatically
|
127
|
+
refresh the current web page or frame after a given time interval. It is also
|
128
|
+
possible to instruct the browser to fetch a different URL when the page is
|
129
|
+
refreshed, by including the alternative URL in the content parameter. By
|
130
|
+
setting the refresh time interval to zero (or a very low value), this allows
|
131
|
+
meta refresh to be used as a method of URL redirection.
|
132
|
+
|
133
|
+
set_meta_tags :refresh => 5
|
134
|
+
# <meta content="5" http-equiv="refresh" />
|
135
|
+
set_meta_tags :refresh => '5;url=http://example.com'
|
136
|
+
# <meta content="5;url=http://example.com" http-equiv="refresh" />
|
137
|
+
|
138
|
+
Further reading:
|
139
|
+
|
140
|
+
* [Meta refresh](http://en.wikipedia.org/wiki/Meta_refresh)
|
141
|
+
* [What is the Meta Refresh Tag](http://webdesign.about.com/od/metataglibraries/a/aa080300a.htm)
|
142
|
+
|
108
143
|
### Hashes
|
109
144
|
|
110
145
|
Any namespace can be built just passing any symbol name and a Hash. For example:
|
@@ -238,6 +273,9 @@ To set meta tags you can use following methods:
|
|
238
273
|
<% title 'Member Login' %>
|
239
274
|
<% description 'Member login page.' %>
|
240
275
|
<% keywords 'Member login page.' %>
|
276
|
+
<% nofollow %>
|
277
|
+
<% noindex %>
|
278
|
+
<% refresh 3 %>
|
241
279
|
|
242
280
|
Also there is `set_meta_tags` method exists:
|
243
281
|
|
@@ -270,8 +308,11 @@ Use these options to customize the title format:
|
|
270
308
|
* `:noindex` — add noindex meta tag; when true, 'robots' will be used, otherwise the string will be used;
|
271
309
|
* `:nofollow` — add nofollow meta tag; when true, 'robots' will be used, otherwise the string will be used;
|
272
310
|
* `:canonical` — add canonical link tag;
|
273
|
-
* `:
|
274
|
-
* `:
|
311
|
+
* `:prev` — add prev link tag;
|
312
|
+
* `:prev` — add next link tag;
|
313
|
+
* `:og` — add Open Graph tags (Hash);
|
314
|
+
* `:twitter` — add Twitter tags (Hash);
|
315
|
+
* `:refresh` — refresh interval and optionally url to redirect to.
|
275
316
|
|
276
317
|
And here are a few examples to give you ideas.
|
277
318
|
|
@@ -331,24 +372,6 @@ And in your pjax templates:
|
|
331
372
|
<!-- HTML goes here -->
|
332
373
|
<% end %>
|
333
374
|
|
334
|
-
##
|
335
|
-
|
336
|
-
There are several plugins influenced me to create this one:
|
337
|
-
|
338
|
-
* [Headliner](https://github.com/mokolabs/headliner)
|
339
|
-
* [meta\_on_rals](https://github.com/ashchan/meta_on_rails)
|
340
|
-
|
341
|
-
## Credits
|
375
|
+
## Author
|
342
376
|
|
343
|
-
|
344
|
-
* [Morgan Roderick](https://github.com/mroderick) (contributor)
|
345
|
-
* [Jesse Clark](https://github.com/jesseclark) (contributor)
|
346
|
-
* Sergio Cambra (contributor)
|
347
|
-
* Kristoffer Renholm (contributor)
|
348
|
-
* [Jürg Lehni](https://github.com/lehni) (contributor)
|
349
|
-
* [Tom Coleman](https://github.com/tmeasday) (contributor)
|
350
|
-
* [Guille Lopez](https://github.com/guillelopez) (contributor)
|
351
|
-
* [Holger Frohloff](https://github.com/jazzgumpy) (contributor)
|
352
|
-
* [Jakub Wojtysiak](https://github.com/schiza) (contributor)
|
353
|
-
* [Matthew Callis](https://github.com/MatthewCallis) (contributor)
|
354
|
-
* [Andre Luiz Carvalho](https://github.com/alcarvalho) (contributor)
|
377
|
+
[Dmytro Shteflyuk](https://github.com/kpumuk), [http://kpumuk.info](http://kpumuk.info/)
|
data/lib/meta_tags/version.rb
CHANGED
@@ -105,7 +105,7 @@ module MetaTags
|
|
105
105
|
#
|
106
106
|
# @see #display_meta_tags
|
107
107
|
#
|
108
|
-
def noindex(noindex)
|
108
|
+
def noindex(noindex = true)
|
109
109
|
set_meta_tags(:noindex => noindex)
|
110
110
|
noindex
|
111
111
|
end
|
@@ -121,11 +121,27 @@ module MetaTags
|
|
121
121
|
#
|
122
122
|
# @see #display_meta_tags
|
123
123
|
#
|
124
|
-
def nofollow(nofollow)
|
124
|
+
def nofollow(nofollow = true)
|
125
125
|
set_meta_tags(:nofollow => nofollow)
|
126
126
|
nofollow
|
127
127
|
end
|
128
128
|
|
129
|
+
# Set the refresh meta tag
|
130
|
+
#
|
131
|
+
# @param [Integer, String] refresh a refresh value.
|
132
|
+
# @return [Integer, String] passed value.
|
133
|
+
#
|
134
|
+
# @example
|
135
|
+
# refresh 5
|
136
|
+
# refresh "5;url=http://www.example.com/"
|
137
|
+
#
|
138
|
+
# @see #display_meta_tags
|
139
|
+
#
|
140
|
+
def refresh(refresh)
|
141
|
+
set_meta_tags(:refresh => refresh)
|
142
|
+
refresh
|
143
|
+
end
|
144
|
+
|
129
145
|
# Set default meta tag values and display meta tags. This method
|
130
146
|
# should be used in layout file.
|
131
147
|
#
|
@@ -142,6 +158,9 @@ module MetaTags
|
|
142
158
|
# @option default [Boolean, String] :noindex (false) add noindex meta tag; when true, 'robots' will be used, otherwise the string will be used;
|
143
159
|
# @option default [Boolean, String] :nofollow (false) add nofollow meta tag; when true, 'robots' will be used, otherwise the string will be used;
|
144
160
|
# @option default [String] :canonical (nil) add canonical link tag.
|
161
|
+
# @option default [String] :prev (nil) add prev link tag;
|
162
|
+
# @option default [String] :next (nil) add next link tag.
|
163
|
+
# @option default [String, Integer] :refresh (nil) meta refresh tag;
|
145
164
|
# @option default [Hash] :open_graph ({}) add Open Graph meta tags.
|
146
165
|
# @return [String] HTML meta tags to render in HEAD section of the
|
147
166
|
# HTML document.
|
@@ -182,6 +201,11 @@ module MetaTags
|
|
182
201
|
meta_tags.delete(:noindex)
|
183
202
|
meta_tags.delete(:nofollow)
|
184
203
|
|
204
|
+
# refresh
|
205
|
+
if refresh = meta_tags.delete(:refresh)
|
206
|
+
result << tag(:meta, 'http-equiv' => 'refresh', :content => refresh.to_s) unless refresh.blank?
|
207
|
+
end
|
208
|
+
|
185
209
|
# hashes
|
186
210
|
meta_tags.each do |property, data|
|
187
211
|
if data.is_a?(Hash)
|
@@ -190,9 +214,11 @@ module MetaTags
|
|
190
214
|
end
|
191
215
|
end
|
192
216
|
|
193
|
-
# canonical
|
194
|
-
|
195
|
-
|
217
|
+
# canonical, prev and next
|
218
|
+
[ :canonical, :prev, :next ].each do |tag_name|
|
219
|
+
next unless href = meta_tags.delete(tag_name)
|
220
|
+
result << tag(:link, :rel => tag_name, :href => href)
|
221
|
+
end
|
196
222
|
|
197
223
|
# user defined
|
198
224
|
meta_tags.each do |name, data|
|
data/spec/meta_tags_spec.rb
CHANGED
@@ -248,6 +248,27 @@ describe MetaTags::ViewHelper do
|
|
248
248
|
end
|
249
249
|
end
|
250
250
|
|
251
|
+
context 'displaying refresh' do
|
252
|
+
it 'displays refresh when "refresh" is used' do
|
253
|
+
subject.refresh(5)
|
254
|
+
subject.display_meta_tags(:site => 'someSite').should include('<meta content="5" http-equiv="refresh" />')
|
255
|
+
end
|
256
|
+
|
257
|
+
it 'displays refresh when "set_meta_tags" used' do
|
258
|
+
subject.set_meta_tags(:refresh => 5)
|
259
|
+
subject.display_meta_tags(:site => 'someSite').should include('<meta content="5" http-equiv="refresh" />')
|
260
|
+
end
|
261
|
+
|
262
|
+
it 'should use custom refresh if given' do
|
263
|
+
subject.refresh("5;url=http://example.com/")
|
264
|
+
subject.display_meta_tags(:site => 'someSite').should include(%Q{<meta content="5;url=http://example.com/" http-equiv="refresh" />})
|
265
|
+
end
|
266
|
+
|
267
|
+
it 'should display nothing by default' do
|
268
|
+
subject.display_meta_tags(:site => 'someSite').should_not include('http-equiv="refresh"')
|
269
|
+
end
|
270
|
+
end
|
271
|
+
|
251
272
|
context 'displaying noindex' do
|
252
273
|
it 'should display noindex when "noindex" used' do
|
253
274
|
subject.noindex(true)
|
@@ -339,6 +360,36 @@ describe MetaTags::ViewHelper do
|
|
339
360
|
end
|
340
361
|
end
|
341
362
|
|
363
|
+
context 'displaying prev url' do
|
364
|
+
it 'should not display prev url by default' do
|
365
|
+
subject.display_meta_tags(:site => 'someSite').should_not include('<link href="http://example.com/base/url" rel="prev" />')
|
366
|
+
end
|
367
|
+
|
368
|
+
it 'should display prev url when "set_meta_tags" used' do
|
369
|
+
subject.set_meta_tags(:prev => 'http://example.com/base/url')
|
370
|
+
subject.display_meta_tags(:site => 'someSite').should include('<link href="http://example.com/base/url" rel="prev" />')
|
371
|
+
end
|
372
|
+
|
373
|
+
it 'should display default prev url' do
|
374
|
+
subject.display_meta_tags(:site => 'someSite', :prev => 'http://example.com/base/url').should include('<link href="http://example.com/base/url" rel="prev" />')
|
375
|
+
end
|
376
|
+
end
|
377
|
+
|
378
|
+
context 'displaying next url' do
|
379
|
+
it 'should not display next url by default' do
|
380
|
+
subject.display_meta_tags(:site => 'someSite').should_not include('<link href="http://example.com/base/url" rel="next" />')
|
381
|
+
end
|
382
|
+
|
383
|
+
it 'should display next url when "set_meta_tags" used' do
|
384
|
+
subject.set_meta_tags(:next => 'http://example.com/base/url')
|
385
|
+
subject.display_meta_tags(:site => 'someSite').should include('<link href="http://example.com/base/url" rel="next" />')
|
386
|
+
end
|
387
|
+
|
388
|
+
it 'should display default next url' do
|
389
|
+
subject.display_meta_tags(:site => 'someSite', :next => 'http://example.com/base/url').should include('<link href="http://example.com/base/url" rel="next" />')
|
390
|
+
end
|
391
|
+
end
|
392
|
+
|
342
393
|
context 'displaying Open Graph meta tags' do
|
343
394
|
it 'should display meta tags specified with :open_graph' do
|
344
395
|
subject.set_meta_tags(:open_graph => {
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: meta-tags
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 1.
|
8
|
+
- 5
|
9
|
+
- 0
|
10
|
+
version: 1.5.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Dmytro Shteflyuk
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2013-
|
18
|
+
date: 2013-05-07 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|