meta_tags-rails 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +7 -0
  3. data/.rspec +3 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +21 -0
  7. data/CHANGELOG.md +135 -0
  8. data/Gemfile +13 -0
  9. data/MIT-LICENSE +22 -0
  10. data/README.md +627 -0
  11. data/Rakefile +28 -0
  12. data/lib/meta_tags-rails.rb +37 -0
  13. data/lib/meta_tags-rails/configuration.rb +21 -0
  14. data/lib/meta_tags-rails/content_tag.rb +14 -0
  15. data/lib/meta_tags-rails/controller_helper.rb +44 -0
  16. data/lib/meta_tags-rails/meta_tags_collection.rb +176 -0
  17. data/lib/meta_tags-rails/renderer.rb +253 -0
  18. data/lib/meta_tags-rails/tag.rb +25 -0
  19. data/lib/meta_tags-rails/text_normalizer.rb +148 -0
  20. data/lib/meta_tags-rails/version.rb +4 -0
  21. data/lib/meta_tags-rails/view_helper.rb +205 -0
  22. data/meta-tags.gemspec +30 -0
  23. data/spec/configuration_spec.rb +14 -0
  24. data/spec/controller_helper_spec.rb +42 -0
  25. data/spec/spec_helper.rb +84 -0
  26. data/spec/text_normalizer/normalize_title_spec.rb +43 -0
  27. data/spec/text_normalizer/truncate_array_spec.rb +60 -0
  28. data/spec/view_helper/charset_spec.rb +16 -0
  29. data/spec/view_helper/custom_spec.rb +67 -0
  30. data/spec/view_helper/description_spec.rb +61 -0
  31. data/spec/view_helper/icon_spec.rb +42 -0
  32. data/spec/view_helper/keywords_spec.rb +58 -0
  33. data/spec/view_helper/links_spec.rb +125 -0
  34. data/spec/view_helper/module_spec.rb +41 -0
  35. data/spec/view_helper/noindex_spec.rb +107 -0
  36. data/spec/view_helper/open_graph_spec.rb +86 -0
  37. data/spec/view_helper/open_search_spec.rb +33 -0
  38. data/spec/view_helper/refresh_spec.rb +32 -0
  39. data/spec/view_helper/title_spec.rb +155 -0
  40. data/spec/view_helper/twitter_spec.rb +31 -0
  41. data/spec/view_helper_spec.rb +57 -0
  42. metadata +172 -0
@@ -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 ADDED
@@ -0,0 +1,172 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: meta_tags-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Dmytro Shteflyuk
8
+ - Yves Siegrist
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2016-08-03 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: actionpack
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: 3.0.0
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: 3.0.0
28
+ - !ruby/object:Gem::Dependency
29
+ name: rake
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: rspec
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: 3.3.0
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: 3.3.0
56
+ - !ruby/object:Gem::Dependency
57
+ name: rspec-html-matchers
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: yard
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ - !ruby/object:Gem::Dependency
85
+ name: bluecloth
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ description: Search Engine Optimization (SEO) plugin for Ruby on Rails applications.
99
+ email:
100
+ - Elektron1c97@gmail.com
101
+ executables: []
102
+ extensions: []
103
+ extra_rdoc_files:
104
+ - README.md
105
+ - CHANGELOG.md
106
+ files:
107
+ - ".gitignore"
108
+ - ".rspec"
109
+ - ".ruby-gemset"
110
+ - ".ruby-version"
111
+ - ".travis.yml"
112
+ - CHANGELOG.md
113
+ - Gemfile
114
+ - MIT-LICENSE
115
+ - README.md
116
+ - Rakefile
117
+ - lib/meta_tags-rails.rb
118
+ - lib/meta_tags-rails/configuration.rb
119
+ - lib/meta_tags-rails/content_tag.rb
120
+ - lib/meta_tags-rails/controller_helper.rb
121
+ - lib/meta_tags-rails/meta_tags_collection.rb
122
+ - lib/meta_tags-rails/renderer.rb
123
+ - lib/meta_tags-rails/tag.rb
124
+ - lib/meta_tags-rails/text_normalizer.rb
125
+ - lib/meta_tags-rails/version.rb
126
+ - lib/meta_tags-rails/view_helper.rb
127
+ - meta-tags.gemspec
128
+ - spec/configuration_spec.rb
129
+ - spec/controller_helper_spec.rb
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
147
+ homepage: http://github.com/Elektron1c97/meta_tags-rails
148
+ licenses:
149
+ - MIT
150
+ metadata: {}
151
+ post_install_message:
152
+ rdoc_options:
153
+ - "--charset=UTF-8"
154
+ require_paths:
155
+ - lib
156
+ required_ruby_version: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ">="
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
161
+ required_rubygems_version: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ requirements: []
167
+ rubyforge_project:
168
+ rubygems_version: 2.4.5
169
+ signing_key:
170
+ specification_version: 4
171
+ summary: Collection of SEO helpers for Ruby on Rails.
172
+ test_files: []