meta-tags 2.0.0 → 2.1.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.
- checksums.yaml +5 -13
- data/.gitignore +1 -0
- data/.rspec +3 -0
- data/.ruby-version +1 -1
- data/.travis.yml +7 -13
- data/CHANGELOG.md +18 -0
- data/Gemfile +5 -0
- data/README.md +163 -71
- data/Rakefile +2 -2
- data/lib/meta_tags.rb +18 -0
- data/lib/meta_tags/configuration.rb +21 -0
- data/lib/meta_tags/meta_tags_collection.rb +5 -10
- data/lib/meta_tags/renderer.rb +114 -37
- data/lib/meta_tags/text_normalizer.rb +71 -6
- data/lib/meta_tags/version.rb +1 -1
- data/lib/meta_tags/view_helper.rb +12 -11
- data/meta-tags.gemspec +2 -1
- data/spec/configuration_spec.rb +14 -0
- data/spec/controller_helper_spec.rb +4 -4
- data/spec/spec_helper.rb +69 -13
- data/spec/text_normalizer/normalize_title_spec.rb +43 -0
- data/spec/text_normalizer/truncate_array_spec.rb +60 -0
- data/spec/view_helper/charset_spec.rb +16 -0
- data/spec/view_helper/custom_spec.rb +67 -0
- data/spec/view_helper/description_spec.rb +61 -0
- data/spec/view_helper/icon_spec.rb +42 -0
- data/spec/view_helper/keywords_spec.rb +58 -0
- data/spec/view_helper/links_spec.rb +125 -0
- data/spec/view_helper/module_spec.rb +41 -0
- data/spec/view_helper/noindex_spec.rb +107 -0
- data/spec/view_helper/open_graph_spec.rb +86 -0
- data/spec/view_helper/open_search_spec.rb +33 -0
- data/spec/view_helper/refresh_spec.rb +32 -0
- data/spec/view_helper/title_spec.rb +155 -0
- data/spec/view_helper/twitter_spec.rb +31 -0
- data/spec/view_helper_spec.rb +57 -0
- metadata +53 -21
- data/spec/meta_tags_spec.rb +0 -570
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe MetaTags::ViewHelper, 'displaying Open Search meta tags' do
|
4
|
+
subject { ActionView::Base.new }
|
5
|
+
|
6
|
+
it 'should display meta tags specified with :open_search' do
|
7
|
+
subject.set_meta_tags(open_search: {
|
8
|
+
title: 'Open Search Title',
|
9
|
+
href: '/open_search_path.xml'
|
10
|
+
})
|
11
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
12
|
+
expect(meta).to have_tag('link', with: {
|
13
|
+
href: '/open_search_path.xml',
|
14
|
+
rel: 'search',
|
15
|
+
title: 'Open Search Title',
|
16
|
+
type: 'application/opensearchdescription+xml',
|
17
|
+
})
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should not display meta tags without content' do
|
22
|
+
subject.set_meta_tags(open_search: {
|
23
|
+
title: '',
|
24
|
+
href: '',
|
25
|
+
})
|
26
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
27
|
+
expect(meta).to_not have_tag('link', with: {
|
28
|
+
rel: 'search',
|
29
|
+
type: 'application/opensearchdescription+xml',
|
30
|
+
})
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe MetaTags::ViewHelper, 'displaying refresh' do
|
4
|
+
subject { ActionView::Base.new }
|
5
|
+
|
6
|
+
it 'displays refresh when "refresh" is used' do
|
7
|
+
subject.refresh(5)
|
8
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
9
|
+
expect(meta).to have_tag('meta', with: { content: '5', 'http-equiv' => 'refresh' })
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'displays refresh when "set_meta_tags" used' do
|
14
|
+
subject.set_meta_tags(refresh: 5)
|
15
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
16
|
+
expect(meta).to have_tag('meta', with: { content: '5', 'http-equiv' => 'refresh' })
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should use custom refresh if given' do
|
21
|
+
subject.refresh("5;url=http://example.com/")
|
22
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
23
|
+
expect(meta).to have_tag('meta', with: { content: '5;url=http://example.com/', 'http-equiv' => "refresh" })
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should display nothing by default' do
|
28
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
29
|
+
expect(meta).to_not have_tag('meta', with: { 'http-equiv' => "refresh" })
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,155 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe MetaTags::ViewHelper do
|
4
|
+
subject { ActionView::Base.new }
|
5
|
+
|
6
|
+
context 'displaying title' do
|
7
|
+
it 'should not display title if blank' do
|
8
|
+
expect(subject.display_meta_tags).to eq('')
|
9
|
+
subject.title('')
|
10
|
+
expect(subject.display_meta_tags).to eq('')
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should use website name if title is empty' do
|
14
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
15
|
+
expect(meta).to eq('<title>someSite</title>')
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should display title when "title" used' do
|
20
|
+
subject.title('someTitle')
|
21
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
22
|
+
expect(meta).to eq('<title>someSite | someTitle</title>')
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'should display title only when "site" is empty' do
|
27
|
+
subject.title('someTitle')
|
28
|
+
expect(subject.display_meta_tags).to eq('<title>someTitle</title>')
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'should display title when "set_meta_tags" used' do
|
32
|
+
subject.set_meta_tags(title: 'someTitle')
|
33
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
34
|
+
expect(meta).to eq('<title>someSite | someTitle</title>')
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'should display custom title if given' do
|
39
|
+
subject.title('someTitle')
|
40
|
+
subject.display_meta_tags(site: 'someSite', title: 'defaultTitle').tap do |meta|
|
41
|
+
expect(meta).to eq('<title>someSite | someTitle</title>')
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'should use website before page by default' do
|
46
|
+
subject.display_meta_tags(site: 'someSite', title: 'someTitle').tap do |meta|
|
47
|
+
expect(meta).to eq('<title>someSite | someTitle</title>')
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'should only use markup in titles in the view' do
|
52
|
+
expect(subject.title('<b>someTitle</b>')).to eq('<b>someTitle</b>')
|
53
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
54
|
+
expect(meta).to eq('<title>someSite | someTitle</title>')
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
it 'should use page before website if :reverse' do
|
59
|
+
subject.display_meta_tags(site: 'someSite', title: 'someTitle', reverse: true).tap do |meta|
|
60
|
+
expect(meta).to eq('<title>someTitle | someSite</title>')
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'should be lowercase if :lowercase' do
|
65
|
+
subject.display_meta_tags(site: 'someSite', title: 'someTitle', lowercase: true).tap do |meta|
|
66
|
+
expect(meta).to eq('<title>someSite | sometitle</title>')
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'should use custom separator if :separator' do
|
71
|
+
subject.title('someTitle')
|
72
|
+
subject.display_meta_tags(site: 'someSite', separator: '-').tap do |meta|
|
73
|
+
expect(meta).to eq('<title>someSite - someTitle</title>')
|
74
|
+
end
|
75
|
+
subject.display_meta_tags(site: 'someSite', separator: ':').tap do |meta|
|
76
|
+
expect(meta).to eq('<title>someSite : someTitle</title>')
|
77
|
+
end
|
78
|
+
subject.display_meta_tags(site: 'someSite', separator: '&').tap do |meta|
|
79
|
+
expect(meta).to eq('<title>someSite &amp; someTitle</title>')
|
80
|
+
end
|
81
|
+
subject.display_meta_tags(site: 'someSite', separator: '&'.html_safe).tap do |meta|
|
82
|
+
expect(meta).to eq('<title>someSite & someTitle</title>')
|
83
|
+
end
|
84
|
+
subject.display_meta_tags(site: 'someSite: ', separator: false).tap do |meta|
|
85
|
+
expect(meta).to eq('<title>someSite: someTitle</title>')
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'should use custom prefix and suffix if available' do
|
90
|
+
subject.display_meta_tags(site: 'someSite', title: 'someTitle', prefix: ' -', suffix: '- ').tap do |meta|
|
91
|
+
expect(meta).to eq('<title>someSite -|- someTitle</title>')
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
it 'should collapse prefix if false' do
|
96
|
+
subject.display_meta_tags(site: 'someSite', title: 'someTitle', prefix: false).tap do |meta|
|
97
|
+
expect(meta).to eq('<title>someSite| someTitle</title>')
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
it 'should collapse suffix if false' do
|
102
|
+
subject.display_meta_tags(site: 'someSite', title: 'someTitle', suffix: false).tap do |meta|
|
103
|
+
expect(meta).to eq('<title>someSite |someTitle</title>')
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
it 'should use all custom options if available' do
|
108
|
+
subject.display_meta_tags({
|
109
|
+
site: 'someSite',
|
110
|
+
title: 'someTitle',
|
111
|
+
prefix: ' -',
|
112
|
+
suffix: '+ ',
|
113
|
+
separator: ':',
|
114
|
+
lowercase: true,
|
115
|
+
reverse: true,
|
116
|
+
}).tap do |meta|
|
117
|
+
expect(meta).to eq('<title>sometitle -:+ someSite</title>')
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
it 'should allow Arrays in title' do
|
122
|
+
subject.display_meta_tags(site: 'someSite', title: ['someTitle', 'anotherTitle']).tap do |meta|
|
123
|
+
expect(meta).to eq('<title>someSite | someTitle | anotherTitle</title>')
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
it 'should allow Arrays in title with :lowercase' do
|
128
|
+
subject.display_meta_tags(site: 'someSite', title: ['someTitle', 'anotherTitle'], lowercase: true).tap do |meta|
|
129
|
+
expect(meta).to eq('<title>someSite | sometitle | anothertitle</title>')
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
it 'should build title in reverse order if :reverse' do
|
134
|
+
subject.display_meta_tags({
|
135
|
+
site: 'someSite',
|
136
|
+
title: ['someTitle', 'anotherTitle'],
|
137
|
+
prefix: ' -',
|
138
|
+
suffix: '+ ',
|
139
|
+
separator: ':',
|
140
|
+
reverse: true,
|
141
|
+
}).tap do |meta|
|
142
|
+
expect(meta).to eq('<title>anotherTitle -:+ someTitle -:+ someSite</title>')
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
context '.display_title' do
|
148
|
+
it 'should display custom title if given' do
|
149
|
+
subject.title('someTitle')
|
150
|
+
subject.display_title(site: 'someSite', title: 'defaultTitle').tap do |meta|
|
151
|
+
expect(meta).to eq('someSite | someTitle')
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
155
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe MetaTags::ViewHelper, 'displaying Twitter meta tags' do
|
4
|
+
subject { ActionView::Base.new }
|
5
|
+
|
6
|
+
it 'should display meta tags specified with :twitter' do
|
7
|
+
subject.set_meta_tags(twitter: {
|
8
|
+
title: 'Twitter Share Title',
|
9
|
+
card: 'photo',
|
10
|
+
image: {
|
11
|
+
_: 'http://example.com/1.png',
|
12
|
+
width: 123,
|
13
|
+
height: 321,
|
14
|
+
}
|
15
|
+
})
|
16
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
17
|
+
expect(meta).to have_tag('meta', with: { content: "Twitter Share Title", name: "twitter:title" })
|
18
|
+
expect(meta).to have_tag('meta', with: { content: "photo", name: "twitter:card" })
|
19
|
+
expect(meta).to have_tag('meta', with: { content: "http://example.com/1.png", name: "twitter:image" })
|
20
|
+
expect(meta).to have_tag('meta', with: { content: "123", name: "twitter:image:width" })
|
21
|
+
expect(meta).to have_tag('meta', with: { content: "321", name: "twitter:image:height" })
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should display mirrored content" do
|
26
|
+
subject.set_meta_tags(title: 'someTitle')
|
27
|
+
subject.display_meta_tags(twitter: { title: :title }).tap do |meta|
|
28
|
+
expect(meta).to have_tag('meta', with: { content: "someTitle", name: "twitter:title" })
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe MetaTags::ViewHelper do
|
4
|
+
subject { ActionView::Base.new }
|
5
|
+
|
6
|
+
context 'returning values' do
|
7
|
+
it 'should return title' do
|
8
|
+
expect(subject.title('some-title')).to eq('some-title')
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should return headline if specified' do
|
12
|
+
expect(subject.title('some-title', 'some-headline')).to eq('some-headline')
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should return title' do
|
16
|
+
expect(subject.title('some-title')).to eq('some-title')
|
17
|
+
expect(subject.title).to eq('some-title')
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should return description' do
|
21
|
+
expect(subject.description('some-description')).to eq('some-description')
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should return keywords' do
|
25
|
+
expect(subject.keywords('some-keywords')).to eq('some-keywords')
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should return noindex' do
|
29
|
+
expect(subject.noindex('some-noindex')).to eq('some-noindex')
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'should return nofollow' do
|
33
|
+
expect(subject.noindex('some-nofollow')).to eq('some-nofollow')
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
context 'while handling string meta tag names' do
|
38
|
+
it 'should work with common parameters' do
|
39
|
+
subject.display_meta_tags('site' => 'someSite', 'title' => 'someTitle').tap do |meta|
|
40
|
+
expect(meta).to eq('<title>someSite | someTitle</title>')
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'should work with open graph parameters' do
|
45
|
+
subject.set_meta_tags('og' => {
|
46
|
+
'title' => 'facebook title',
|
47
|
+
'description' => 'facebook description'
|
48
|
+
})
|
49
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
50
|
+
expect(meta).to have_tag('meta', with: { content: "facebook title", property: "og:title" })
|
51
|
+
expect(meta).to have_tag('meta', with: { content: "facebook description", property: "og:description" })
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
it_behaves_like '.set_meta_tags'
|
57
|
+
end
|
metadata
CHANGED
@@ -1,83 +1,97 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: meta-tags
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmytro Shteflyuk
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-10-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionpack
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 3.0.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 3.0.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 3.3.0
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 3.3.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec-html-matchers
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
46
60
|
- !ruby/object:Gem::Version
|
47
61
|
version: '0'
|
48
62
|
type: :development
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
|
-
- -
|
66
|
+
- - ">="
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: yard
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
|
-
- -
|
73
|
+
- - ">="
|
60
74
|
- !ruby/object:Gem::Version
|
61
75
|
version: '0'
|
62
76
|
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
|
-
- -
|
80
|
+
- - ">="
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: bluecloth
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
|
-
- -
|
87
|
+
- - ">="
|
74
88
|
- !ruby/object:Gem::Version
|
75
89
|
version: '0'
|
76
90
|
type: :development
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
|
-
- -
|
94
|
+
- - ">="
|
81
95
|
- !ruby/object:Gem::Version
|
82
96
|
version: '0'
|
83
97
|
description: Search Engine Optimization (SEO) plugin for Ruby on Rails applications.
|
@@ -89,10 +103,11 @@ extra_rdoc_files:
|
|
89
103
|
- README.md
|
90
104
|
- CHANGELOG.md
|
91
105
|
files:
|
92
|
-
- .gitignore
|
93
|
-
- .
|
94
|
-
- .ruby-
|
95
|
-
- .
|
106
|
+
- ".gitignore"
|
107
|
+
- ".rspec"
|
108
|
+
- ".ruby-gemset"
|
109
|
+
- ".ruby-version"
|
110
|
+
- ".travis.yml"
|
96
111
|
- CHANGELOG.md
|
97
112
|
- Gemfile
|
98
113
|
- MIT-LICENSE
|
@@ -100,6 +115,7 @@ files:
|
|
100
115
|
- Rakefile
|
101
116
|
- lib/meta-tags.rb
|
102
117
|
- lib/meta_tags.rb
|
118
|
+
- lib/meta_tags/configuration.rb
|
103
119
|
- lib/meta_tags/content_tag.rb
|
104
120
|
- lib/meta_tags/controller_helper.rb
|
105
121
|
- lib/meta_tags/meta_tags_collection.rb
|
@@ -109,30 +125,46 @@ files:
|
|
109
125
|
- lib/meta_tags/version.rb
|
110
126
|
- lib/meta_tags/view_helper.rb
|
111
127
|
- meta-tags.gemspec
|
128
|
+
- spec/configuration_spec.rb
|
112
129
|
- spec/controller_helper_spec.rb
|
113
|
-
- spec/meta_tags_spec.rb
|
114
130
|
- spec/spec_helper.rb
|
131
|
+
- spec/text_normalizer/normalize_title_spec.rb
|
132
|
+
- spec/text_normalizer/truncate_array_spec.rb
|
133
|
+
- spec/view_helper/charset_spec.rb
|
134
|
+
- spec/view_helper/custom_spec.rb
|
135
|
+
- spec/view_helper/description_spec.rb
|
136
|
+
- spec/view_helper/icon_spec.rb
|
137
|
+
- spec/view_helper/keywords_spec.rb
|
138
|
+
- spec/view_helper/links_spec.rb
|
139
|
+
- spec/view_helper/module_spec.rb
|
140
|
+
- spec/view_helper/noindex_spec.rb
|
141
|
+
- spec/view_helper/open_graph_spec.rb
|
142
|
+
- spec/view_helper/open_search_spec.rb
|
143
|
+
- spec/view_helper/refresh_spec.rb
|
144
|
+
- spec/view_helper/title_spec.rb
|
145
|
+
- spec/view_helper/twitter_spec.rb
|
146
|
+
- spec/view_helper_spec.rb
|
115
147
|
homepage: http://github.com/kpumuk/meta-tags
|
116
148
|
licenses: []
|
117
149
|
metadata: {}
|
118
150
|
post_install_message:
|
119
151
|
rdoc_options:
|
120
|
-
- --charset=UTF-8
|
152
|
+
- "--charset=UTF-8"
|
121
153
|
require_paths:
|
122
154
|
- lib
|
123
155
|
required_ruby_version: !ruby/object:Gem::Requirement
|
124
156
|
requirements:
|
125
|
-
- -
|
157
|
+
- - ">="
|
126
158
|
- !ruby/object:Gem::Version
|
127
159
|
version: '0'
|
128
160
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
129
161
|
requirements:
|
130
|
-
- -
|
162
|
+
- - ">="
|
131
163
|
- !ruby/object:Gem::Version
|
132
164
|
version: '0'
|
133
165
|
requirements: []
|
134
166
|
rubyforge_project:
|
135
|
-
rubygems_version: 2.
|
167
|
+
rubygems_version: 2.4.8
|
136
168
|
signing_key:
|
137
169
|
specification_version: 4
|
138
170
|
summary: Collection of SEO helpers for Ruby on Rails.
|