seo_optimizer 0.1.0 → 0.1.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 415bd41bed30c7e261ee469383cc1384e07fe41bcd1ac7e0da7b08811e3875ac
4
- data.tar.gz: d45bd5f93a75a9ba0758372c3d5cb26c1fd01be470097d494f614efe2e654163
3
+ metadata.gz: 4d77de0d5df420769f467e81c12eca1e6bc814eae796de10f506376b96d738b6
4
+ data.tar.gz: 40a42a9ef40f670f7fb2d25e35f5c7dea28ff3e855e8a37856f80dd1c94a222e
5
5
  SHA512:
6
- metadata.gz: e3ffb4b684021306c18991d6c35d6f024001f84f6f0b4225bf60b5fe91fcc6047c0ed168ae72ef229664ebf6c96bf9f5cb1bcd7a23eb2243ef93daf20e7fc986
7
- data.tar.gz: bea7e285cdf9c260b748867a27ee1c104107543fe7892f9ff34ebe6b74fd38c78aa29f8302d198e26f54b9c9f3ba6c1d758f92c23a7cd1ee3d49e33f89c74dcd
6
+ metadata.gz: b7c77c623bbe62d352e4e6e87998b7d596ecfbaedb75fca0b7ee07ccb394e5831da6db6089667417b225ad5c018ffd4d3a5f8600985f4a4f4362b70454347ab2
7
+ data.tar.gz: 78b8152930779f80e6b734d170823a614d6ef7c65a27d0c488a06453ecd4dd6e4067bb0e5af33fd99980418a1ddfab995e3e79d7a02786e9f868a2a2be1b4fed
data/README.md CHANGED
@@ -20,6 +20,28 @@ Or install it yourself as:
20
20
 
21
21
  ## Usage
22
22
 
23
+
24
+ #### Global generator
25
+
26
+ This command will add setup files of errors pages, sitemap.xml, robots.txt and meta tags.
27
+
28
+ ```bash
29
+ $ rails g seo_optimizer:fast_config
30
+ ```
31
+ ______________
32
+
33
+ #### Meta tags
34
+
35
+ There is a generator to setup meta tags
36
+
37
+ ```bash
38
+ $ rails g seo_optimizer:meta_tags
39
+ ```
40
+
41
+ This will generate meta tags config that you can customize in `config/meta.yml` and `app/views/layouts/application.html.erb`
42
+
43
+ ______________
44
+
23
45
  #### Sitemap.yml, robots.txt
24
46
 
25
47
  There is a generator and a task to create needed files that will be read by search engines robots.
@@ -57,6 +79,26 @@ Then you can check these urls:
57
79
  robots.txt file: http://localhost:3000/robots.txt
58
80
  sitemap.xml file: http://localhost:3000/sitemap.xml
59
81
 
82
+ ______________
83
+
84
+ #### Error pages (404, 500):
85
+
86
+ **1** - Generate error pages view, actions and routes.
87
+ ```bash
88
+ $ rails g seo_optimizer:errors_pages
89
+ ```
90
+
91
+ **2** - You can customize pages in `app/views/errors/`
92
+
93
+ **3** - Edit `config/environment/develoment.rb` if you want to test it in dev environment.
94
+
95
+ ⛔️ DO NOT COMMIT ⛔️
96
+
97
+ ```ruby
98
+ config.consider_all_requests_local = true
99
+ # to
100
+ config.consider_all_requests_local = false
101
+ ```
60
102
  _________________
61
103
 
62
104
  #### Model routes with slug:
@@ -124,26 +166,6 @@ end
124
166
 
125
167
  - Then don't forget to `$ rails sitemap:generate`.
126
168
 
127
- ______________
128
-
129
- #### Error pages (404, 500):
130
-
131
- **1** - Generate error pages view, actions and routes.
132
- ```bash
133
- $ rails g seo_optimizer:errors_pages
134
- ```
135
-
136
- **2** - You can customize pages in `app/views/errors/`
137
-
138
- **3** - Edit `config/environment/develoment.rb` if you want to test it in dev environment.
139
-
140
- ⛔️ DO NOT COMMIT ⛔️
141
-
142
- ```ruby
143
- config.consider_all_requests_local = true
144
- # to
145
- config.consider_all_requests_local = false
146
- ```
147
169
  _________________
148
170
 
149
171
  ## Development
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/generators/migration'
4
+
5
+ module SeoOptimizer
6
+ class FastConfigGenerator < Rails::Generators::Base
7
+ source_root File.expand_path('templates', __dir__)
8
+ desc 'Generates base setup file'
9
+
10
+ def add_meta_tags
11
+ generate 'seo_optimizer:meta_tags'
12
+ generate 'seo_optimizer:error_pages'
13
+ generate 'seo_optimizer:setups'
14
+ generate 'seo_optimizer:robots_files'
15
+ rake 'sitemap:generate'
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/generators/migration'
4
+
5
+ module SeoOptimizer
6
+ class MetaTagsGenerator < Rails::Generators::Base
7
+ source_root File.expand_path('templates', __dir__)
8
+ desc 'Generates meta tags'
9
+
10
+ def add_meta_tags
11
+ inject_into_file 'app/views/layouts/application.html.erb', after: '<head>' do
12
+ File.open("#{File.expand_path('templates', __dir__)}/meta_tags.erb").read
13
+ end
14
+ template 'meta_tags_helper.erb', File.join('app/helpers', 'meta_tags_helper.rb')
15
+ template 'default_meta.erb', File.join('config/initializers', 'default_meta.rb')
16
+ template 'meta_yml.erb', File.join('config', 'meta.yml')
17
+ end
18
+ end
19
+ end
@@ -0,0 +1 @@
1
+ DEFAULT_META = YAML.load_file(Rails.root.join("config/meta.yml"))
@@ -0,0 +1,19 @@
1
+
2
+ <title><%= meta_title %></title>
3
+ <meta name="description" content="<%= meta_description %>">
4
+
5
+ <!-- Facebook Open Graph data -->
6
+ <meta property="og:title" content="<%= meta_title %>" />
7
+ <meta property="og:type" content="website" />
8
+ <meta property="og:url" content="<%= request.original_url %>" />
9
+ <meta property="og:image" content="<%= meta_image %>" />
10
+ <meta property="og:description" content="<%= meta_description %>" />
11
+ <meta property="og:site_name" content="<%= meta_title %>" />
12
+
13
+ <!-- Twitter Card data -->
14
+ <meta name="twitter:card" content="summary_large_image">
15
+ <meta name="twitter:site" content="<%= DEFAULT_META["twitter_account"] %>">
16
+ <meta name="twitter:title" content="<%= meta_title %>">
17
+ <meta name="twitter:description" content="<%= meta_description %>">
18
+ <meta name="twitter:creator" content="<%= DEFAULT_META["twitter_account"] %>">
19
+ <meta name="twitter:image:src" content="<%= meta_image %>">
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MetaTagsHelper
4
+ def meta_title
5
+ content_for?(:meta_title) ? content_for(:meta_title) : DEFAULT_META["meta_title"]
6
+ end
7
+
8
+ def meta_description
9
+ content_for?(:meta_description) ? content_for(:meta_description) : DEFAULT_META["meta_description"]
10
+ end
11
+
12
+ def meta_image
13
+ meta_image = (content_for?(:meta_image) ? content_for(:meta_image) : DEFAULT_META["meta_image"])
14
+ # little twist to make it work equally with an asset or a url
15
+ meta_image.starts_with?("http") ? meta_image : image_url(meta_image)
16
+ end
17
+ end
@@ -0,0 +1,5 @@
1
+ meta_product_name: "Product Name"
2
+ meta_title: "Product name - Product tagline"
3
+ meta_description: "Relevant description"
4
+ meta_image: "cover.png" # should exist in `app/assets/images/`
5
+ twitter_account: "@product_twitter_account" # required for Twitter Cards
@@ -1,3 +1,3 @@
1
1
  module SeoOptimizer
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seo_optimizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ronan Louarn
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-01 00:00:00.000000000 Z
11
+ date: 2020-11-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sitemap_generator
@@ -47,6 +47,12 @@ files:
47
47
  - lib/generators/seo_optimizer/errors_pages/templates/404.erb
48
48
  - lib/generators/seo_optimizer/errors_pages/templates/500.erb
49
49
  - lib/generators/seo_optimizer/errors_pages/templates/errors_controller_template.erb
50
+ - lib/generators/seo_optimizer/fast_config/fast_config_generator.rb
51
+ - lib/generators/seo_optimizer/meta_tags/meta_tags_generator.rb
52
+ - lib/generators/seo_optimizer/meta_tags/templates/default_meta.erb
53
+ - lib/generators/seo_optimizer/meta_tags/templates/meta_tags.erb
54
+ - lib/generators/seo_optimizer/meta_tags/templates/meta_tags_helper.erb
55
+ - lib/generators/seo_optimizer/meta_tags/templates/meta_yml.erb
50
56
  - lib/generators/seo_optimizer/models/models_generator.rb
51
57
  - lib/generators/seo_optimizer/models/templates/model_template.erb
52
58
  - lib/generators/seo_optimizer/robots_files/robots_files_generator.rb