hancock_cms_seo 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/.travis.yml +4 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +86 -0
  9. data/Rakefile +1 -0
  10. data/app/assets/javascripts/hancock/rails_admin/plugins/seo.coffee +4 -0
  11. data/app/assets/javascripts/hancock/rails_admin/plugins/seo/custom/ui.coffee +0 -0
  12. data/app/assets/stylesheets/hancock/rails_admin/plugins/seo.sass +3 -0
  13. data/app/assets/stylesheets/hancock/rails_admin/plugins/seo/custom/theming.sass +0 -0
  14. data/app/assets/stylesheets/hancock/rails_admin/plugins/seo/footer_nav_links.sass +16 -0
  15. data/app/controllers/concerns/hancock/seo/x_frame_options.rb +42 -0
  16. data/app/helpers/hancock/seo/seo_helper.rb +60 -0
  17. data/app/models/concerns/hancock/seo/decorators/seo.rb +60 -0
  18. data/app/models/concerns/hancock/seo/decorators/sitemap_data.rb +35 -0
  19. data/app/models/concerns/hancock/seo/seoable.rb +71 -0
  20. data/app/models/concerns/hancock/seo/sitemap_data_field.rb +37 -0
  21. data/app/models/concerns/hancock/seo/sitemapable.rb +7 -0
  22. data/app/models/hancock/seo/seo.rb +16 -0
  23. data/app/models/hancock/seo/sitemap_data.rb +16 -0
  24. data/app/views/blocks/_seo_block.html.slim +25 -0
  25. data/app/views/blocks/_seo_block_with_obj.html.slim +18 -0
  26. data/app/views/hancock/seo/blocks/_ga.html.slim +8 -0
  27. data/app/views/hancock/seo/blocks/_ym.html.slim +31 -0
  28. data/app/views/shared/_meta.html.slim +28 -0
  29. data/app/views/shared/_obj_with_seo.html.slim +38 -0
  30. data/app/views/shared/_og.html.slim +4 -0
  31. data/bin/console +14 -0
  32. data/bin/setup +7 -0
  33. data/config/initializers/hancock_seo.rb +7 -0
  34. data/config/locales/ru.hancock.seo.yml +37 -0
  35. data/hancock_cms_seo.gemspec +40 -0
  36. data/lib/generators/hancock/seo/config/config_generator.rb +13 -0
  37. data/lib/generators/hancock/seo/config/templates/hancock_seo.erb +10 -0
  38. data/lib/generators/hancock/seo/migrations/migrations_generator.rb +18 -0
  39. data/lib/generators/hancock/seo/migrations/templates/migration_seos.rb +48 -0
  40. data/lib/generators/hancock/seo/models/decorators_generator.rb +24 -0
  41. data/lib/generators/hancock/seo/models/seo_generator.rb +39 -0
  42. data/lib/generators/hancock/seo/models/sitemap_data_generator.rb +39 -0
  43. data/lib/generators/hancock/seo/models/templates/seo.erb +57 -0
  44. data/lib/generators/hancock/seo/models/templates/sitemap_data.erb +31 -0
  45. data/lib/generators/hancock/seo/sitemap/sitemap_generator.rb +27 -0
  46. data/lib/generators/hancock/seo/sitemap/templates/sitemap.erb +31 -0
  47. data/lib/hancock/seo/admin.rb +24 -0
  48. data/lib/hancock/seo/admin/seo.rb +69 -0
  49. data/lib/hancock/seo/admin/sitemap_data.rb +47 -0
  50. data/lib/hancock/seo/configuration.rb +29 -0
  51. data/lib/hancock/seo/engine.rb +44 -0
  52. data/lib/hancock/seo/models/active_record/seo.rb +14 -0
  53. data/lib/hancock/seo/models/active_record/sitemap_data.rb +11 -0
  54. data/lib/hancock/seo/models/mongoid/seo.rb +25 -0
  55. data/lib/hancock/seo/models/mongoid/sitemap_data.rb +24 -0
  56. data/lib/hancock/seo/models/seo.rb +114 -0
  57. data/lib/hancock/seo/models/sitemap_data.rb +79 -0
  58. data/lib/hancock/seo/version.rb +5 -0
  59. data/lib/hancock_cms_seo.rb +43 -0
  60. data/release.sh +6 -0
  61. metadata +193 -0
@@ -0,0 +1,14 @@
1
+ module Hancock::Seo
2
+ module Models
3
+ module ActiveRecord
4
+ module Seo
5
+ extend ActiveSupport::Concern
6
+ included do
7
+ if Hancock::Seo.config.localize
8
+ translates :h1, :title, :keywords, :description, :og_title, :author
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,11 @@
1
+ module Hancock::Seo
2
+ module Models
3
+ module ActiveRecord
4
+ module SitemapData
5
+ extend ActiveSupport::Concern
6
+ included do
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,25 @@
1
+ module Hancock::Seo
2
+ module Models
3
+ module Mongoid
4
+ module Seo
5
+ extend ActiveSupport::Concern
6
+ included do
7
+ index({seoable_id: 1, seoable_type: 1}, {background: true})
8
+ index({enabled: 1}, {background: true})
9
+
10
+
11
+ # field :name, type: String, localize: Hancock::Seo.config.localize
12
+ field :h1, type: String, localize: Hancock::Seo.config.localize
13
+
14
+ field :title, type: String, localize: Hancock::Seo.config.localize
15
+ field :author, type: String, localize: Hancock::Seo.config.localize
16
+ field :keywords, type: String, localize: Hancock::Seo.config.localize
17
+ field :description, type: String, localize: Hancock::Seo.config.localize
18
+ field :robots, type: String, localize: Hancock::Seo.config.localize
19
+
20
+ field :og_title, type: String, localize: Hancock::Seo.config.localize
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,24 @@
1
+ module Hancock::Seo
2
+ module Models
3
+ module Mongoid
4
+ module SitemapData
5
+ extend ActiveSupport::Concern
6
+
7
+ included do
8
+ index({sitemap_data_field_id: 1, sitemap_data_field_type: 1}, {background: true})
9
+ index({enabled: 1, sitemap_show: 1}, {background: true})
10
+
11
+ field :sitemap_show, type: Boolean, default: true
12
+ field :sitemap_lastmod, type: DateTime
13
+ field :sitemap_changefreq, type: String, default: 'daily'
14
+ field :sitemap_priority, type: Float
15
+
16
+ scope :sitemap_show, -> { where(sitemap_show: true) }
17
+ scope :for_sitemap, -> { sitemap_show }
18
+ scope :show_in_sitemap, -> { sitemap_show }
19
+ end
20
+
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,114 @@
1
+ module Hancock::Seo
2
+ module Models
3
+ module Seo
4
+ extend ActiveSupport::Concern
5
+ include Hancock::Model
6
+ include Hancock::Enableable
7
+ if Hancock::Seo.config.gallery_support
8
+ include Hancock::Gallery::Paperclipable
9
+ end
10
+
11
+ if Hancock::Gallery.config.cache_support
12
+ include Hancock::Cache::Cacheable
13
+ end
14
+
15
+ include Hancock::Seo.orm_specific('Seo')
16
+
17
+ included do
18
+
19
+ if Hancock.rails4?
20
+ belongs_to :seoable, polymorphic: true, touch: true
21
+ else
22
+ belongs_to :seoable, polymorphic: true, optional: true, touch: true
23
+ end
24
+
25
+ def self.goto_hancock
26
+ self.where(seoable_type: /^Enjoy/).all.map { |s|
27
+ unless s.seoable.blank?
28
+ s.seoable_type = s.seoable_type.sub("Enjoy", "Hancock")
29
+ s.seoable_type = "Hancock::Pages::Page" if s.seoable_type == "Hancock::Page"
30
+ s.seoable_type = "Hancock::Catalog::Category" if s.seoable_type == "Hancock::Catalog::ItemCategory"
31
+ s.seoable_type = "Hancock::News::Category" if s.seoable_type == "Hancock::News::NewsCategory"
32
+ end
33
+ s.save
34
+ }
35
+ end
36
+
37
+ if Hancock::Seo.config.gallery_support
38
+ set_default_auto_crop_params_for(:og_image)
39
+ hancock_cms_attached_file(:og_image)
40
+ end
41
+
42
+ before_create do
43
+ set_default_seo
44
+ end
45
+
46
+ before_save do
47
+ self.seoable and self.seoable.touch
48
+ end
49
+
50
+
51
+ # def self.admin_can_default_actions
52
+ # [:show, :read, :edit, :update].freeze
53
+ # end
54
+ # def self.manager_can_default_actions
55
+ # [:show, :read, :edit, :update].freeze
56
+ # end
57
+ def self.admin_cannot_actions
58
+ [:new, :create].freeze
59
+ end
60
+ def self.manager_cannot_actions
61
+ [:new, :create].freeze
62
+ end
63
+
64
+ def self.manager_can_add_actions
65
+ ret = [:robots_txt_for_model]
66
+ # ret += [:multiple_file_upload, :sort_embedded] if Hancock::Seo.mongoid?
67
+ ret << :model_settings if Hancock::Seo.config.model_settings_support
68
+ # ret << :model_accesses if Hancock::Seo.config.user_abilities_support
69
+ ret += [:comments, :model_comments] if Hancock::Seo.config.ra_comments_support
70
+ ret.freeze
71
+ end
72
+ def self.rails_admin_add_visible_actions
73
+ ret = [:robots_txt_for_model]
74
+ # ret += [:multiple_file_upload, :sort_embedded] if Hancock::Seo.mongoid?
75
+ ret << :model_settings if Hancock::Seo.config.model_settings_support
76
+ ret << :model_accesses if Hancock::Seo.config.user_abilities_support
77
+ ret += [:comments, :model_comments] if Hancock::Seo.config.ra_comments_support
78
+ ret.freeze
79
+ end
80
+
81
+ def self.clear_empty_objects
82
+ Hancock::Seo::Seo.where(:id.in => with_empty_objects).delete_all
83
+ end
84
+
85
+ def self.with_empty_objects
86
+ Hancock::Seo::Seo.all.select { |s|
87
+ !s.seoable.nil? rescue true
88
+ }.map(&:id)
89
+ end
90
+
91
+ end
92
+
93
+ def set_default_seo
94
+ _obj = self.seoable
95
+ if _obj and _obj.set_default_seo?
96
+ self.h1 = _obj.default_seo_h1 if self.h1.blank?
97
+ self.title = _obj.default_seo_title if self.title.blank?
98
+ self.keywords = _obj.default_seo_keywords if self.keywords.blank?
99
+ self.description = _obj.default_seo_description if self.description.blank?
100
+ self.title = _obj.default_seo_og_title if self.title.blank?
101
+ end
102
+ end
103
+
104
+ def og_image_styles
105
+ {thumb: "160x120>", standard: "800x600>"}
106
+ end
107
+
108
+ def og_image_jcrop_options
109
+ {}
110
+ end
111
+
112
+ end
113
+ end
114
+ end
@@ -0,0 +1,79 @@
1
+ module Hancock::Seo
2
+ module Models
3
+ module SitemapData
4
+ extend ActiveSupport::Concern
5
+ include Hancock::Model
6
+ include Hancock::Enableable
7
+
8
+ include Hancock::Seo.orm_specific('SitemapData')
9
+
10
+ SITEMAP_CHANGEFREQ_ARRAY = %w(always hourly daily weekly monthly yearly never).freeze
11
+
12
+ included do
13
+
14
+ if Hancock.rails4?
15
+ belongs_to :sitemap_data_field, polymorphic: true, touch: true
16
+ else
17
+ belongs_to :sitemap_data_field, polymorphic: true, optional: true, touch: true
18
+ end
19
+
20
+ def self.rails_admin_name
21
+ self.name.gsub("::", "~").underscore
22
+ end
23
+
24
+ def self.goto_hancock
25
+ self.where(sitemap_data_field_type: /^Enjoy/).all.map { |s|
26
+ unless s.sitemap_data_field.blank?
27
+ s.sitemap_data_field_type = s.sitemap_data_field_type.sub("Enjoy", "Hancock");
28
+ s.sitemap_data_field_type = "Hancock::Pages::Page" if s.sitemap_data_field_type == "Hancock::Page"
29
+ s.sitemap_data_field_type = "Hancock::Catalog::Category" if s.sitemap_data_field_type == "Hancock::Catalog::ItemCategory"
30
+ s.sitemap_data_field_type = "Hancock::News::Category" if s.sitemap_data_field_type == "Hancock::News::NewsCategory"
31
+ end
32
+ s.save
33
+ }
34
+ end
35
+
36
+ # def self.admin_can_default_actions
37
+ # [:show, :read, :edit, :update].freeze
38
+ # end
39
+ # def self.manager_can_default_actions
40
+ # [:show, :read, :edit, :update].freeze
41
+ # end
42
+ def self.admin_cannot_add_actions
43
+ [:new, :create].freeze
44
+ end
45
+ def self.manager_cannot_add_actions
46
+ [:new, :create].freeze
47
+ end
48
+
49
+ def self.manager_can_add_actions
50
+ ret = [:sitemap_for_model]
51
+ # ret += [:multiple_file_upload, :sort_embedded] if Hancock::Seo.mongoid?
52
+ ret << :model_settings if Hancock::Seo.config.model_settings_support
53
+ # ret << :model_accesses if Hancock::Seo.config.user_abilities_support
54
+ ret += [:comments, :model_comments] if Hancock::Seo.config.ra_comments_support
55
+ ret.freeze
56
+ end
57
+ def self.rails_admin_add_visible_actions
58
+ ret = [:sitemap_for_model]
59
+ # ret += [:multiple_file_upload, :sort_embedded] if Hancock::Seo.mongoid?
60
+ ret << :model_settings if Hancock::Seo.config.model_settings_support
61
+ ret << :model_accesses if Hancock::Seo.config.user_abilities_support
62
+ ret += [:comments, :model_comments] if Hancock::Seo.config.ra_comments_support
63
+ ret.freeze
64
+ end
65
+
66
+ def self.clear_empty_objects
67
+ Hancock::Seo::SitemapData.where(:id.in => with_empty_objects).delete_all
68
+ end
69
+
70
+ def self.with_empty_objects
71
+ Hancock::Seo::SitemapData.all.select { |s|
72
+ !s.sitemap_data_field.nil? rescue true
73
+ }.map(&:id)
74
+ end
75
+
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,5 @@
1
+ module Hancock
2
+ module Seo
3
+ VERSION = "1.0.2".freeze
4
+ end
5
+ end
@@ -0,0 +1,43 @@
1
+ require "hancock/seo/version"
2
+
3
+ require 'sitemap_generator'
4
+ require 'rails_admin_sitemap'
5
+ require 'rails_admin_robots_txt'
6
+
7
+ require 'hancock/seo/configuration'
8
+ require 'hancock/seo/engine'
9
+
10
+
11
+ module Hancock::Seo
12
+ include Hancock::Plugin
13
+
14
+ class << self
15
+ def clear_empty_objects
16
+ [Hancock::Seo::Seo, Hancock::Seo::SitemapData].map { |model|
17
+ model.clear_empty_objects
18
+ }
19
+ end
20
+ end
21
+
22
+ autoload :Admin, 'hancock/seo/admin'
23
+ module Admin
24
+ autoload :SitemapData, 'hancock/seo/admin/sitemap_data'
25
+ autoload :Seo, 'hancock/seo/admin/seo'
26
+ end
27
+
28
+ module Models
29
+ autoload :SitemapData, 'hancock/seo/models/sitemap_data'
30
+ autoload :Seo, 'hancock/seo/models/seo'
31
+
32
+ module Mongoid
33
+ autoload :SitemapData, 'hancock/seo/models/mongoid/sitemap_data'
34
+ autoload :Seo, 'hancock/seo/models/mongoid/seo'
35
+ end
36
+
37
+ module ActiveRecord
38
+ autoload :SitemapData, 'hancock/seo/models/active_record/sitemap_data'
39
+ autoload :Seo, 'hancock/seo/models/active_record/seo'
40
+ end
41
+ end
42
+
43
+ end
data/release.sh ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/bash
2
+ bundle update
3
+ git add --all .
4
+ git commit -am "${*:1}"
5
+ git push -u origin master
6
+ rake release
metadata ADDED
@@ -0,0 +1,193 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hancock_cms_seo
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Alexander Kiseliev
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-04-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.10'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.10'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: hancock_cms
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 1.0.2
48
+ - - "<"
49
+ - !ruby/object:Gem::Version
50
+ version: 2.1.x
51
+ type: :runtime
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: 1.0.2
58
+ - - "<"
59
+ - !ruby/object:Gem::Version
60
+ version: 2.1.x
61
+ - !ruby/object:Gem::Dependency
62
+ name: sitemap_generator
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: 5.3.1
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: 5.3.1
75
+ - !ruby/object:Gem::Dependency
76
+ name: rails_admin_sitemap
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: 0.3.0
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: 0.3.0
89
+ - !ruby/object:Gem::Dependency
90
+ name: rails_admin_robots_txt
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: 0.1.0
96
+ type: :runtime
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: 0.1.0
103
+ description: 'hancock_cms_seo '
104
+ email:
105
+ - dev@redrocks.pro
106
+ executables: []
107
+ extensions: []
108
+ extra_rdoc_files: []
109
+ files:
110
+ - ".gitignore"
111
+ - ".ruby-gemset"
112
+ - ".ruby-version"
113
+ - ".travis.yml"
114
+ - Gemfile
115
+ - LICENSE.txt
116
+ - README.md
117
+ - Rakefile
118
+ - app/assets/javascripts/hancock/rails_admin/plugins/seo.coffee
119
+ - app/assets/javascripts/hancock/rails_admin/plugins/seo/custom/ui.coffee
120
+ - app/assets/stylesheets/hancock/rails_admin/plugins/seo.sass
121
+ - app/assets/stylesheets/hancock/rails_admin/plugins/seo/custom/theming.sass
122
+ - app/assets/stylesheets/hancock/rails_admin/plugins/seo/footer_nav_links.sass
123
+ - app/controllers/concerns/hancock/seo/x_frame_options.rb
124
+ - app/helpers/hancock/seo/seo_helper.rb
125
+ - app/models/concerns/hancock/seo/decorators/seo.rb
126
+ - app/models/concerns/hancock/seo/decorators/sitemap_data.rb
127
+ - app/models/concerns/hancock/seo/seoable.rb
128
+ - app/models/concerns/hancock/seo/sitemap_data_field.rb
129
+ - app/models/concerns/hancock/seo/sitemapable.rb
130
+ - app/models/hancock/seo/seo.rb
131
+ - app/models/hancock/seo/sitemap_data.rb
132
+ - app/views/blocks/_seo_block.html.slim
133
+ - app/views/blocks/_seo_block_with_obj.html.slim
134
+ - app/views/hancock/seo/blocks/_ga.html.slim
135
+ - app/views/hancock/seo/blocks/_ym.html.slim
136
+ - app/views/shared/_meta.html.slim
137
+ - app/views/shared/_obj_with_seo.html.slim
138
+ - app/views/shared/_og.html.slim
139
+ - bin/console
140
+ - bin/setup
141
+ - config/initializers/hancock_seo.rb
142
+ - config/locales/ru.hancock.seo.yml
143
+ - hancock_cms_seo.gemspec
144
+ - lib/generators/hancock/seo/config/config_generator.rb
145
+ - lib/generators/hancock/seo/config/templates/hancock_seo.erb
146
+ - lib/generators/hancock/seo/migrations/migrations_generator.rb
147
+ - lib/generators/hancock/seo/migrations/templates/migration_seos.rb
148
+ - lib/generators/hancock/seo/models/decorators_generator.rb
149
+ - lib/generators/hancock/seo/models/seo_generator.rb
150
+ - lib/generators/hancock/seo/models/sitemap_data_generator.rb
151
+ - lib/generators/hancock/seo/models/templates/seo.erb
152
+ - lib/generators/hancock/seo/models/templates/sitemap_data.erb
153
+ - lib/generators/hancock/seo/sitemap/sitemap_generator.rb
154
+ - lib/generators/hancock/seo/sitemap/templates/sitemap.erb
155
+ - lib/hancock/seo/admin.rb
156
+ - lib/hancock/seo/admin/seo.rb
157
+ - lib/hancock/seo/admin/sitemap_data.rb
158
+ - lib/hancock/seo/configuration.rb
159
+ - lib/hancock/seo/engine.rb
160
+ - lib/hancock/seo/models/active_record/seo.rb
161
+ - lib/hancock/seo/models/active_record/sitemap_data.rb
162
+ - lib/hancock/seo/models/mongoid/seo.rb
163
+ - lib/hancock/seo/models/mongoid/sitemap_data.rb
164
+ - lib/hancock/seo/models/seo.rb
165
+ - lib/hancock/seo/models/sitemap_data.rb
166
+ - lib/hancock/seo/version.rb
167
+ - lib/hancock_cms_seo.rb
168
+ - release.sh
169
+ homepage: https://github.com/red-rocks/hancock_cms_seo
170
+ licenses:
171
+ - MIT
172
+ metadata: {}
173
+ post_install_message:
174
+ rdoc_options: []
175
+ require_paths:
176
+ - lib
177
+ required_ruby_version: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ required_rubygems_version: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
187
+ requirements: []
188
+ rubyforge_project:
189
+ rubygems_version: 2.5.1
190
+ signing_key:
191
+ specification_version: 4
192
+ summary: hancock_cms_seo
193
+ test_files: []