fi_seo 0.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 +7 -0
- data/.gitignore +15 -0
- data/.rspec +3 -0
- data/.ruby-version +1 -0
- data/.travis.yml +6 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +10 -0
- data/Gemfile.lock +93 -0
- data/LICENSE.txt +21 -0
- data/README.md +309 -0
- data/Rakefile +6 -0
- data/app/controller/sitemap_controller.rb +58 -0
- data/app/views/acts_as_seoable/_view_helper.html.arb +31 -0
- data/app/views/google_analytics/_acts_as_seoable.html.erb +9 -0
- data/app/views/sitemap/sitemap.xml.erb +1 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/config/routes.rb +7 -0
- data/fi_seo.gemspec +29 -0
- data/lib/acts_as_seoable/dynamic_seo.rb +6 -0
- data/lib/acts_as_seoable/engine.rb +6 -0
- data/lib/acts_as_seoable/google_analytic_seo.rb +5 -0
- data/lib/acts_as_seoable/helpers/sitemap_helper.rb +32 -0
- data/lib/acts_as_seoable/helpers/static_helper.rb +94 -0
- data/lib/acts_as_seoable/sitemap_seo.rb +10 -0
- data/lib/acts_as_seoable/static_seo.rb +5 -0
- data/lib/acts_as_seoable/version.rb +3 -0
- data/lib/fi_seo.rb +205 -0
- data/lib/generators/acts_as_seoable/admin/admin_generator.rb +17 -0
- data/lib/generators/acts_as_seoable/admin/templates/admin.rb +250 -0
- data/lib/generators/acts_as_seoable/admin_view_helper/admin_view_helper_generator.rb +17 -0
- data/lib/generators/acts_as_seoable/admin_view_helper/templates/_view_helper.html.arb +31 -0
- data/lib/generators/acts_as_seoable/install/install_generator.rb +13 -0
- data/lib/generators/acts_as_seoable/install/templates/initializer.rb +20 -0
- data/lib/generators/acts_as_seoable/migrate/migrate_generator.rb +22 -0
- data/lib/generators/acts_as_seoable/migrate/templates/migration.rb +65 -0
- data/screenshots/dynamic-pages-seoable.png +0 -0
- data/screenshots/static-pages-seoable-details.png +0 -0
- data/screenshots/static-pages-seoable-frontend.png +0 -0
- data/screenshots/static-pages-seoable.png +0 -0
- metadata +140 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
require 'rails/generators'
|
|
2
|
+
|
|
3
|
+
module ActsAsSeoable
|
|
4
|
+
module Generators
|
|
5
|
+
class AdminViewHelperGenerator < Rails::Generators::Base
|
|
6
|
+
source_root File.expand_path('templates', __dir__)
|
|
7
|
+
|
|
8
|
+
def generate_config_file
|
|
9
|
+
if Gem.loaded_specs.has_key?('activeadmin')
|
|
10
|
+
template '_view_helper.html.arb', 'app/views/acts_as_seoable/_view_helper.html.arb'
|
|
11
|
+
else
|
|
12
|
+
raise StandardError, 'Could not generate activeadmin helper page without activeadmin installed.'
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
if defined?(seoable)
|
|
2
|
+
unless seoable.nil?
|
|
3
|
+
if action.to_s == 'show' && seoable.present? && seoable.dynamic_seo.present?
|
|
4
|
+
panel 'Dynamic SEO Information' do
|
|
5
|
+
attributes_table_for seoable.dynamic_seo do
|
|
6
|
+
row 'Title' do
|
|
7
|
+
seoable.dynamic_seo.title
|
|
8
|
+
end
|
|
9
|
+
row 'Description' do
|
|
10
|
+
seoable.dynamic_seo.description
|
|
11
|
+
end
|
|
12
|
+
row 'Keywords' do
|
|
13
|
+
seoable.dynamic_seo.keywords
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
elsif action.to_s == 'edit' && seoable.object.dynamic_seo.present?
|
|
18
|
+
seoable.inputs 'Dynamic SEO Information', for: [:dynamic_seo, seoable.object.dynamic_seo] do |dynamic_seo|
|
|
19
|
+
dynamic_seo.input :title
|
|
20
|
+
dynamic_seo.input :description
|
|
21
|
+
dynamic_seo.input :keywords
|
|
22
|
+
end
|
|
23
|
+
elsif action.to_s == 'new'
|
|
24
|
+
seoable.inputs 'Dynamic SEO Information', for: [:dynamic_seo, seoable.object.dynamic_seo || DynamicSeo.new] do |dynamic_seo|
|
|
25
|
+
dynamic_seo.input :title
|
|
26
|
+
dynamic_seo.input :description
|
|
27
|
+
dynamic_seo.input :keywords
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
require 'rails/generators'
|
|
2
|
+
|
|
3
|
+
module ActsAsSeoable
|
|
4
|
+
module Generators
|
|
5
|
+
class InstallGenerator < ::Rails::Generators::Base
|
|
6
|
+
source_root File.expand_path('../templates', __FILE__)
|
|
7
|
+
|
|
8
|
+
def copy_initializer_file
|
|
9
|
+
copy_file 'initializer.rb', 'config/initializers/acts_as_seoable.rb'
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
FiSeo.configure do |config|
|
|
4
|
+
# config.default_facebook_title = ''
|
|
5
|
+
# config.default_facebook_url = ''
|
|
6
|
+
# config.default_facebook_type = ''
|
|
7
|
+
# config.default_facebook_image = ''
|
|
8
|
+
# config.default_facebook_description = ''
|
|
9
|
+
#
|
|
10
|
+
# config.default_twitter_title = ''
|
|
11
|
+
# config.default_twitter_card = ''
|
|
12
|
+
# config.default_twitter_site = ''
|
|
13
|
+
# config.default_twitter_image = ''
|
|
14
|
+
# config.default_twitter_description = ''
|
|
15
|
+
#
|
|
16
|
+
# config.default_canonical_url = ''
|
|
17
|
+
#
|
|
18
|
+
# config.sitemap_host_url = 'www.domain.com'
|
|
19
|
+
# config.sitemap_enable = true
|
|
20
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
|
|
2
|
+
require 'rails/generators'
|
|
3
|
+
require 'rails/generators/migration'
|
|
4
|
+
|
|
5
|
+
module ActsAsSeoable
|
|
6
|
+
module Generators
|
|
7
|
+
class MigrateGenerator < ::Rails::Generators::Base
|
|
8
|
+
include Rails::Generators::Migration
|
|
9
|
+
source_root File.expand_path('../templates', __FILE__)
|
|
10
|
+
|
|
11
|
+
def self.next_migration_number(path)
|
|
12
|
+
next_migration_number = current_migration_number(path) + 1
|
|
13
|
+
ActiveRecord::Migration.next_migration_number(next_migration_number)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def copy_migrations
|
|
17
|
+
migration_template 'migration.rb',
|
|
18
|
+
'db/migrate/create_seo_tables.rb'
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
class CreateSeoTables < ActiveRecord::Migration[5.2]
|
|
2
|
+
def self.up
|
|
3
|
+
create_table :dynamic_seos do |t|
|
|
4
|
+
t.string :seoable_type, null: false
|
|
5
|
+
t.integer :seoable_id, null: false
|
|
6
|
+
t.string :title, null: false, default: ''
|
|
7
|
+
t.text :description, null: false, default: ''
|
|
8
|
+
t.text :keywords, null: false, default: ''
|
|
9
|
+
|
|
10
|
+
t.timestamps
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
create_table :static_seos do |t|
|
|
14
|
+
t.string :seoable_controller, null: false
|
|
15
|
+
t.string :seoable_action, null: false
|
|
16
|
+
t.string :title, null: false, default: ''
|
|
17
|
+
t.text :description, null: false, default: ''
|
|
18
|
+
t.text :keywords, null: false, default: ''
|
|
19
|
+
t.boolean :status, null: false, default: false
|
|
20
|
+
t.string :facebook_title, null: false, default: ''
|
|
21
|
+
t.string :facebook_url, null: false, default: ''
|
|
22
|
+
t.string :facebook_type, null: false, default: ''
|
|
23
|
+
t.string :facebook_image, null: false, default: ''
|
|
24
|
+
t.string :facebook_description, null: false, default: ''
|
|
25
|
+
t.string :twitter_title, null: false, default: ''
|
|
26
|
+
t.string :twitter_card, null: false, default: ''
|
|
27
|
+
t.string :twitter_site, null: false, default: ''
|
|
28
|
+
t.string :twitter_image, null: false, default: ''
|
|
29
|
+
t.string :twitter_description, null: false, default: ''
|
|
30
|
+
|
|
31
|
+
t.timestamps
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
create_table :sitemap_seos do |t|
|
|
35
|
+
t.string :sitemap_controller, null: false
|
|
36
|
+
t.string :sitemap_action, null: false
|
|
37
|
+
t.boolean :status, null: false
|
|
38
|
+
t.decimal :priority, null: false, default: 1
|
|
39
|
+
t.integer :period, null: false, default: 0
|
|
40
|
+
t.boolean :static, null: false, default: false
|
|
41
|
+
|
|
42
|
+
t.timestamps
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
create_table :google_analytic_seos do |t|
|
|
46
|
+
t.string :title, null: false
|
|
47
|
+
t.string :content, null: false, default: ''
|
|
48
|
+
|
|
49
|
+
t.timestamps
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
GoogleAnalyticSeo.create(title: 'analytic id', content: '')
|
|
53
|
+
|
|
54
|
+
add_index :dynamic_seos, %i[seoable_type seoable_id], unique: true
|
|
55
|
+
add_index :static_seos, %i[seoable_controller seoable_action], unique: true
|
|
56
|
+
add_index :sitemap_seos, %i[sitemap_controller sitemap_action], unique: true
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def self.down
|
|
60
|
+
drop_table :dynamic_seos
|
|
61
|
+
drop_table :static_seos
|
|
62
|
+
drop_table :sitemap_seos
|
|
63
|
+
drop_table :google_analytic_seos
|
|
64
|
+
end
|
|
65
|
+
end
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
metadata
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: fi_seo
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Banura Randika
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: exe
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2020-05-19 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: activerecord
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '5.0'
|
|
20
|
+
- - ">="
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: 5.0.0.1
|
|
23
|
+
type: :runtime
|
|
24
|
+
prerelease: false
|
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
26
|
+
requirements:
|
|
27
|
+
- - "~>"
|
|
28
|
+
- !ruby/object:Gem::Version
|
|
29
|
+
version: '5.0'
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: 5.0.0.1
|
|
33
|
+
- !ruby/object:Gem::Dependency
|
|
34
|
+
name: meta-tags
|
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '2.13'
|
|
40
|
+
type: :runtime
|
|
41
|
+
prerelease: false
|
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '2.13'
|
|
47
|
+
- !ruby/object:Gem::Dependency
|
|
48
|
+
name: xml-sitemap
|
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - "~>"
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '1.3'
|
|
54
|
+
- - ">="
|
|
55
|
+
- !ruby/object:Gem::Version
|
|
56
|
+
version: 1.3.3
|
|
57
|
+
type: :runtime
|
|
58
|
+
prerelease: false
|
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
60
|
+
requirements:
|
|
61
|
+
- - "~>"
|
|
62
|
+
- !ruby/object:Gem::Version
|
|
63
|
+
version: '1.3'
|
|
64
|
+
- - ">="
|
|
65
|
+
- !ruby/object:Gem::Version
|
|
66
|
+
version: 1.3.3
|
|
67
|
+
description: |-
|
|
68
|
+
This gem provides a easier solution to search engine optimization(SEO) in a ruby project. This will give you the seo capabilities to your static pages anddynamic pages alike with few lines of code.
|
|
69
|
+
Also site maps are essential to the SEO of your web application. So this gem gives that capabilities with a feature to integrate google analytics.
|
|
70
|
+
email:
|
|
71
|
+
- info@fidenz.com
|
|
72
|
+
- tech@fidenz.com
|
|
73
|
+
- banura.r@fidenz.com
|
|
74
|
+
executables: []
|
|
75
|
+
extensions: []
|
|
76
|
+
extra_rdoc_files: []
|
|
77
|
+
files:
|
|
78
|
+
- ".gitignore"
|
|
79
|
+
- ".rspec"
|
|
80
|
+
- ".ruby-version"
|
|
81
|
+
- ".travis.yml"
|
|
82
|
+
- CODE_OF_CONDUCT.md
|
|
83
|
+
- Gemfile
|
|
84
|
+
- Gemfile.lock
|
|
85
|
+
- LICENSE.txt
|
|
86
|
+
- README.md
|
|
87
|
+
- Rakefile
|
|
88
|
+
- app/controller/sitemap_controller.rb
|
|
89
|
+
- app/views/acts_as_seoable/_view_helper.html.arb
|
|
90
|
+
- app/views/google_analytics/_acts_as_seoable.html.erb
|
|
91
|
+
- app/views/sitemap/sitemap.xml.erb
|
|
92
|
+
- bin/console
|
|
93
|
+
- bin/setup
|
|
94
|
+
- config/routes.rb
|
|
95
|
+
- fi_seo.gemspec
|
|
96
|
+
- lib/acts_as_seoable/dynamic_seo.rb
|
|
97
|
+
- lib/acts_as_seoable/engine.rb
|
|
98
|
+
- lib/acts_as_seoable/google_analytic_seo.rb
|
|
99
|
+
- lib/acts_as_seoable/helpers/sitemap_helper.rb
|
|
100
|
+
- lib/acts_as_seoable/helpers/static_helper.rb
|
|
101
|
+
- lib/acts_as_seoable/sitemap_seo.rb
|
|
102
|
+
- lib/acts_as_seoable/static_seo.rb
|
|
103
|
+
- lib/acts_as_seoable/version.rb
|
|
104
|
+
- lib/fi_seo.rb
|
|
105
|
+
- lib/generators/acts_as_seoable/admin/admin_generator.rb
|
|
106
|
+
- lib/generators/acts_as_seoable/admin/templates/admin.rb
|
|
107
|
+
- lib/generators/acts_as_seoable/admin_view_helper/admin_view_helper_generator.rb
|
|
108
|
+
- lib/generators/acts_as_seoable/admin_view_helper/templates/_view_helper.html.arb
|
|
109
|
+
- lib/generators/acts_as_seoable/install/install_generator.rb
|
|
110
|
+
- lib/generators/acts_as_seoable/install/templates/initializer.rb
|
|
111
|
+
- lib/generators/acts_as_seoable/migrate/migrate_generator.rb
|
|
112
|
+
- lib/generators/acts_as_seoable/migrate/templates/migration.rb
|
|
113
|
+
- screenshots/dynamic-pages-seoable.png
|
|
114
|
+
- screenshots/static-pages-seoable-details.png
|
|
115
|
+
- screenshots/static-pages-seoable-frontend.png
|
|
116
|
+
- screenshots/static-pages-seoable.png
|
|
117
|
+
homepage: https://github.com/fidenz-developer/fi-seo.git
|
|
118
|
+
licenses:
|
|
119
|
+
- MIT
|
|
120
|
+
metadata: {}
|
|
121
|
+
post_install_message:
|
|
122
|
+
rdoc_options: []
|
|
123
|
+
require_paths:
|
|
124
|
+
- lib
|
|
125
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
126
|
+
requirements:
|
|
127
|
+
- - ">="
|
|
128
|
+
- !ruby/object:Gem::Version
|
|
129
|
+
version: 2.3.0
|
|
130
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
131
|
+
requirements:
|
|
132
|
+
- - ">="
|
|
133
|
+
- !ruby/object:Gem::Version
|
|
134
|
+
version: '0'
|
|
135
|
+
requirements: []
|
|
136
|
+
rubygems_version: 3.0.3
|
|
137
|
+
signing_key:
|
|
138
|
+
specification_version: 4
|
|
139
|
+
summary: Flexible SEO solution for rails projects
|
|
140
|
+
test_files: []
|