seo_optimizer 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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