seorel 0.3.0 → 0.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9be1f063d4b6922248d3215633a98028d3f7cce1
4
- data.tar.gz: 1494c970b2bc4ad181e78eab57928bd30694c9c7
3
+ metadata.gz: 1c479f1d7dfaa791665b2a20d1a5ef1c2baa7f63
4
+ data.tar.gz: 2380c00e8e501060c1d35f989032d55e3bd6d381
5
5
  SHA512:
6
- metadata.gz: ea6d3f1b88a10a0597364535d69a3507a00ee8366e2b6a44e7e8f2ad8b657ef52318e3edd630edbb04b1d0ba0679d6d66b416ecdde772d29b1c54050f58b3221
7
- data.tar.gz: 9619a225614c03a932bf1ac28d9f70fa9e85165b5790d74747a74d78b18e7c946299664174f673d68d646e779ba544fd7e9e41516c619c8b62dfad192bdcb8ec
6
+ metadata.gz: f4dbcdcfb0364e06169211ca40126399386aba10ad4b873d8d9eacf781a1d3c11c64a23ee20116afe81200bd2c4bbc130f92b4a055a08fa7c212b93e8ce1ca82
7
+ data.tar.gz: d4aee49ecda37866939270ad873c169f44c94eeebfabe20abbf97614d5f4b5856f5a42b22f6a21d17183a91d3be53c3f2145611724e11b18bbe84fb56ed13133
data/README.md CHANGED
@@ -41,6 +41,8 @@ Seorel.configure do |config|
41
41
  # config.default_prepend_description = nil
42
42
  # config.default_append_description = nil
43
43
 
44
+ config.default_keywords = 'RUBY ON RAILS,SEO,METATAGS'
45
+
44
46
  config.default_image = 'http://www.example.com/share_image.png'
45
47
 
46
48
  # config.store_seorel_if = :empty # Available values :empty | :changed
@@ -1,5 +1,5 @@
1
1
  require 'rails/generators'
2
- require "rails/generators/active_record"
2
+ require 'rails/generators/active_record'
3
3
 
4
4
  module Seorel
5
5
  # This generator adds a migration and aa configuration initializer
@@ -9,13 +9,21 @@ module Seorel
9
9
 
10
10
  class_option :'skip-migration', type: :boolean, desc: "Don't generate a migration for the seorel table"
11
11
  class_option :'skip-initializer', type: :boolean, desc: "Don't generate an initializer"
12
+ class_option :globalize, type: :boolean, desc: "Don't generate an initializer"
12
13
 
13
14
  source_root File.expand_path('../templates', __FILE__)
14
15
 
15
16
  # Copies the migration template to db/migrate.
16
- def copy_files
17
+ def create_main_migration
17
18
  return if options['skip-migration']
18
- migration_template 'migration.rb', 'db/migrate/create_seorel_seorels.rb'
19
+ migration_template 'migration.rb', 'db/migrate/create_seorel.rb'
20
+ end
21
+
22
+ def create_globalize_migration
23
+ if options['globalize']
24
+ migration_template 'globalize_migration.rb',
25
+ 'db/migrate/create_seorel_translations.rb'
26
+ end
19
27
  end
20
28
 
21
29
  def create_initializer
@@ -23,7 +31,7 @@ module Seorel
23
31
  copy_file 'initializer.rb', 'config/initializers/seorel.rb'
24
32
  end
25
33
 
26
- def cpoy_sample_locale
34
+ def create_locale_file
27
35
  copy_file 'seorel.en.yml', 'config/locales/seorel.en.yml'
28
36
  end
29
37
  end
@@ -0,0 +1,13 @@
1
+ class CreateSeorelTranslations < ActiveRecord::Migration
2
+ def up
3
+ Seorel::Seorel.create_translation_table!({
4
+ title: :string,
5
+ description: :string,
6
+ image: :string
7
+ }, migrate_data: true)
8
+ end
9
+
10
+ def down
11
+ Seorel::Seorel.drop_translation_table!
12
+ end
13
+ end
@@ -1,21 +1,49 @@
1
- # encoding: utf-8
1
+ # Decomment this line if you want to use Globalize to magage seo translations
2
+ # require 'seorel/globalize'
3
+
4
+ # Seorel configurations:
2
5
  Seorel.configure do |config|
6
+ ###
7
+ # Title meta tag configurations:
8
+ #
3
9
  # config.default_prepend_title = nil
4
10
  # config.default_title = nil
5
11
  # config.default_append_title = nil
12
+
13
+ ###
14
+ # Description meta tag configurations:
6
15
  #
7
16
  # config.default_prepend_description = nil
8
17
  # config.default_description = nil
9
18
  # config.default_append_description = nil
19
+
20
+ ###
21
+ # Configure a default meta keywords:
22
+ #
23
+ # config.default_keywords = 'Ruby on Rails,Seorel,SEO'
24
+
25
+ ###
26
+ # Configure a default share image:
10
27
  #
11
28
  # config.default_image = nil
29
+
30
+ ###
31
+ # Choose when to save seorel meta tags:
32
+ # - `:empty` Store values only if title o description are empty
33
+ # - `:changed` Store values on every record save
12
34
  #
13
35
  # config.store_seorel_if = :empty # Available values :empty | :changed
14
36
 
37
+ ###
38
+ # Add custom Open Graph meta tags:
39
+ #
15
40
  # config.default_og_metas = {
16
41
  # type: 'website'
17
42
  # }
18
43
 
44
+ ###
45
+ # Add custom Twitter card meta tags:
46
+ #
19
47
  # config.default_twitter_metas = {
20
48
  # card: 'summary_large_image'
21
49
  # }
@@ -1,4 +1,4 @@
1
- class CreateSeorelSeorels < ActiveRecord::Migration
1
+ class CreateSeorel < ActiveRecord::Migration[4.2]
2
2
  def self.up
3
3
  create_table :seorel_seorels do |t|
4
4
  t.string :title
@@ -9,7 +9,7 @@ class CreateSeorelSeorels < ActiveRecord::Migration
9
9
  t.timestamps
10
10
  end
11
11
 
12
- add_index :seorel_seorels, [:seorelable_id, :seorelable_type]
12
+ add_index :seorel_seorels, %i[seorelable_id seorelable_type]
13
13
  end
14
14
 
15
15
  def self.down
data/lib/seorel.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Seorel
2
4
  end
3
5
 
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
1
2
  # encoding: utf-8
3
+
2
4
  require 'active_support/configurable'
3
5
 
4
6
  module Seorel
@@ -11,6 +13,7 @@ module Seorel
11
13
  config_accessor :default_prepend_description
12
14
  config_accessor :default_description
13
15
  config_accessor :default_append_description
16
+ config_accessor :default_keywords
14
17
  config_accessor :default_image
15
18
  config_accessor :store_seorel_if
16
19
  config_accessor :default_og_metas
@@ -21,17 +24,19 @@ module Seorel
21
24
  end
22
25
 
23
26
  # define param_name writer (copied from AS::Configurable)
24
- writer, line = 'def param_name=(value); config.param_name = value; end', __LINE__
27
+ writer = 'def param_name=(value); config.param_name = value; end'
28
+ line = __LINE__
25
29
  singleton_class.class_eval writer, __FILE__, line
26
30
  class_eval writer, __FILE__, line
27
31
 
28
32
  def initialize_defaults
29
33
  self.default_prepend_title = nil
30
34
  self.default_title = nil
31
- self.default_append_title = nil
35
+ self.default_append_title = nil
32
36
  self.default_prepend_description = nil
33
37
  self.default_description = nil
34
- self.default_append_description = nil
38
+ self.default_append_description = nil
39
+ self.default_keywords = {}
35
40
  self.default_image = nil
36
41
  self.store_seorel_if = :empty
37
42
  self.default_og_metas = {}
@@ -41,16 +46,14 @@ module Seorel
41
46
 
42
47
  # Global settings for Seorel
43
48
  def self.config
44
- @config ||= ::Seorel::Configuration.new.tap do |conf|
45
- conf.initialize_defaults
46
- end
49
+ @config ||= ::Seorel::Configuration.new.tap(&:initialize_defaults)
47
50
  end
48
51
 
49
52
  # Configures global settings for Seorel
50
53
  # Seorel.configure do |config|
51
54
  # config.default_default_title = 'Default website title'
52
55
  # end
53
- def self.configure(&block)
56
+ def self.configure
54
57
  yield(config)
55
58
  end
56
59
 
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
1
2
  # encoding: utf-8
3
+
2
4
  module Seorel
3
5
  module Controller
4
6
  module ClassMethods
5
7
  def add_seorel_meta(values = {})
6
- class_name = self.name
8
+ class_name = name
7
9
 
8
10
  before_filter options do |controller|
9
11
  controller.send :add_meta, values
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
1
2
  # encoding: utf-8
3
+
2
4
  module Seorel
3
5
  module Controller
4
6
  module InstanceMethods
@@ -8,7 +10,7 @@ module Seorel
8
10
  elsif obj.respond_to? :seorel
9
11
  add_seorel_model obj
10
12
  else
11
- raise "Seorel `add_seorel_meta` invalid argument"
13
+ raise 'Seorel `add_seorel_meta` invalid argument'
12
14
  end
13
15
  end
14
16
 
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
1
2
  # encoding: utf-8
3
+
2
4
  require 'active_support/configurable'
3
5
 
4
6
  module Seorel
@@ -16,20 +18,24 @@ module Seorel
16
18
 
17
19
  def title
18
20
  [
19
- self.lookup_prepend_title,
20
- self.base_title,
21
- self.lookup_append_title
21
+ lookup_prepend_title,
22
+ base_title,
23
+ lookup_append_title
22
24
  ].compact.join.html_safe
23
25
  end
24
26
 
25
27
  def description
26
28
  [
27
- self.lookup_prepend_description,
28
- self.base_description,
29
- self.lookup_append_description
29
+ lookup_prepend_description,
30
+ base_description,
31
+ lookup_append_description
30
32
  ].compact.join.html_safe
31
33
  end
32
34
 
35
+ def keywords
36
+ default_options.default_keywords
37
+ end
38
+
33
39
  def image
34
40
  config.image || default_options.default_image
35
41
  end
@@ -44,63 +50,63 @@ module Seorel
44
50
 
45
51
  protected
46
52
 
47
- attr_reader :controller
53
+ attr_reader :controller
48
54
 
49
- def base_title
50
- (config.title || self.lookup_title).html_safe
51
- end
55
+ def base_title
56
+ (config.title || lookup_title).html_safe
57
+ end
52
58
 
53
- def base_description
54
- (config.description || self.lookup_description).html_safe
55
- end
59
+ def base_description
60
+ (config.description || lookup_description).html_safe
61
+ end
56
62
 
57
- def default_options
58
- ::Seorel.config
59
- end
63
+ def default_options
64
+ ::Seorel.config
65
+ end
60
66
 
61
- def lookup_i18n(key, default = nil)
62
- I18n.t i18n_path(key), default: (default || '')
63
- end
67
+ def lookup_i18n(key, default = nil)
68
+ I18n.t i18n_path(key), default: (default || '')
69
+ end
64
70
 
65
- def lookup_prepend_title
66
- lookup_i18n :prepend_title, default_options.default_prepend_title
67
- end
71
+ def lookup_prepend_title
72
+ lookup_i18n :prepend_title, default_options.default_prepend_title
73
+ end
68
74
 
69
- def lookup_title
70
- lookup_i18n :title, default_options.default_title
71
- end
75
+ def lookup_title
76
+ lookup_i18n :title, default_options.default_title
77
+ end
72
78
 
73
- def lookup_append_title
74
- lookup_i18n :append_title, default_options.default_append_title
75
- end
79
+ def lookup_append_title
80
+ lookup_i18n :append_title, default_options.default_append_title
81
+ end
76
82
 
77
- def lookup_prepend_description
78
- lookup_i18n :prepend_description, default_options.default_prepend_description
79
- end
83
+ def lookup_prepend_description
84
+ lookup_i18n :prepend_description, default_options.default_prepend_description
85
+ end
80
86
 
81
- def lookup_description
82
- lookup_i18n :description, default_options.default_description
83
- end
87
+ def lookup_description
88
+ lookup_i18n :description, default_options.default_description
89
+ end
84
90
 
85
- def lookup_append_description
86
- lookup_i18n :append_description, default_options.default_append_description
87
- end
91
+ def lookup_append_description
92
+ lookup_i18n :append_description, default_options.default_append_description
93
+ end
88
94
 
89
- def controller_name
90
- if controller
91
- controller.class.name.underscore.gsub(/_controller$/, '')
92
- else
93
- 'undefined'
94
- end
95
+ def controller_name
96
+ if controller
97
+ controller.class.name.underscore.gsub(/_controller$/, '')
98
+ else
99
+ 'undefined'
95
100
  end
101
+ end
96
102
 
97
- def action_name
98
- controller ? controller.action_name : 'undefined'
99
- end
103
+ def action_name
104
+ controller ? controller.action_name : 'undefined'
105
+ end
100
106
 
101
- def i18n_path(key)
102
- ['seorel', self.controller_name, self.action_name, key].join('.')
103
- end
107
+ def i18n_path(key)
108
+ ['seorel', controller_name, action_name, key].join('.')
109
+ end
104
110
  end
105
111
  end
106
112
  end
data/lib/seorel/engine.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails'
2
4
  require 'rails/engine'
3
5
 
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'globalize'
4
+ require 'seorel/seorel'
5
+ require 'active_support/concern'
6
+
7
+ module Seorel
8
+ module Globalize
9
+ extend ActiveSupport::Concern
10
+
11
+ included do
12
+ translates :title, :description, :image
13
+ end
14
+ end
15
+ end
16
+
17
+ Seorel::Seorel.include Seorel::Globalize
data/lib/seorel/helper.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'seorel/helper/manager'
2
4
 
3
5
  module Seorel
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
1
4
  # require 'action_view/helpers/tag_helper/capture_helper'
2
5
  # require 'action_view/helpers/tag_helper'
3
6
 
4
- # encoding: utf-8
5
7
  module Seorel
6
8
  module Helper
7
9
  class Base
@@ -20,10 +22,10 @@ module Seorel
20
22
  ActionController::Base.helpers
21
23
  end
22
24
 
23
- alias_method :h, :helpers
25
+ alias h helpers
24
26
 
25
- # def h.content_tag(*args)
26
- # ActionView::Helpers::TagHelper.h.content_tag(*args)
27
+ # def h.tag(*args)
28
+ # ActionView::Helpers::TagHelper.h.tag(*args)
27
29
  # end
28
30
 
29
31
  def locale
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
1
4
  require 'seorel/helper/base'
2
5
 
3
- # encoding: utf-8
4
6
  module Seorel
5
7
  module Helper
6
8
  class Generic < Base
@@ -9,13 +11,19 @@ module Seorel
9
11
  end
10
12
 
11
13
  def description_tag
12
- h.content_tag :meta, nil, name: 'description', content: params.description
14
+ h.tag :meta, name: 'description', content: params.description
15
+ end
16
+
17
+ def keywords_tag
18
+ return if params.keywords.blank?
19
+ h.tag :meta, name: 'keywords', content: params.keywords
13
20
  end
14
21
 
15
22
  def all
16
23
  [
17
24
  title_tag,
18
- description_tag
25
+ description_tag,
26
+ keywords_tag
19
27
  ].compact
20
28
  end
21
29
  end
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
1
4
  require 'seorel/helper/generic'
2
5
  require 'seorel/helper/open_graph'
3
6
  require 'seorel/helper/twitter'
4
7
 
5
- # encoding: utf-8
6
8
  module Seorel
7
9
  module Helper
8
10
  class Manager
@@ -1,27 +1,29 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
1
4
  require 'seorel/helper/base'
2
5
 
3
- # encoding: utf-8
4
6
  module Seorel
5
7
  module Helper
6
8
  class OpenGraph < Base
7
9
  def title_tag
8
- h.content_tag :meta, nil, property: 'og:title', content: title
10
+ h.tag :meta, property: 'og:title', content: title
9
11
  end
10
12
 
11
13
  def description_tag
12
- h.content_tag :meta, nil, property: 'og:description', content: description
14
+ h.tag :meta, property: 'og:description', content: description
13
15
  end
14
16
 
15
17
  def locale_tag
16
- h.content_tag(:meta, nil, property: 'og:locale', content: locale)
18
+ h.tag(:meta, property: 'og:locale', content: locale)
17
19
  end
18
20
 
19
21
  def image_tag
20
- h.content_tag(:meta, nil, property: 'og:image', content: image_url) if image
22
+ h.tag(:meta, property: 'og:image', content: image_url) if image
21
23
  end
22
24
 
23
25
  def url_tag
24
- h.content_tag(:meta, nil, property: 'og:url', content: request.url)
26
+ h.tag(:meta, property: 'og:url', content: request.url)
25
27
  end
26
28
 
27
29
  def custom_tags
@@ -43,7 +45,7 @@ module Seorel
43
45
  protected
44
46
 
45
47
  def custum_tag(key, value)
46
- h.content_tag(:meta, nil, property: "og:#{key}", content: value)
48
+ h.tag(:meta, property: "og:#{key}", content: value)
47
49
  end
48
50
  end
49
51
  end
@@ -1,23 +1,25 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
1
4
  require 'seorel/helper/base'
2
5
 
3
- # encoding: utf-8
4
6
  module Seorel
5
7
  module Helper
6
8
  class Twitter < Base
7
9
  def title_tag
8
- h.content_tag :meta, nil, name: 'twitter:title', content: title
10
+ h.tag :meta, name: 'twitter:title', content: title
9
11
  end
10
12
 
11
13
  def description_tag
12
- h.content_tag :meta, nil, name: 'twitter:description', content: description
14
+ h.tag :meta, name: 'twitter:description', content: description
13
15
  end
14
16
 
15
17
  def image_tag
16
- h.content_tag(:meta, nil, name: 'twitter:image', content: image_url) if image
18
+ h.tag(:meta, name: 'twitter:image', content: image_url) if image
17
19
  end
18
20
 
19
21
  def url_tag
20
- h.content_tag(:meta, nil, name: 'twitter:url', content: request.url)
22
+ h.tag(:meta, name: 'twitter:url', content: request.url)
21
23
  end
22
24
 
23
25
  def custom_tags
@@ -38,7 +40,7 @@ module Seorel
38
40
  protected
39
41
 
40
42
  def custum_tag(key, value)
41
- h.content_tag(:meta, nil, name: "twitter:#{key}", content: value)
43
+ h.tag(:meta, name: "twitter:#{key}", content: value)
42
44
  end
43
45
  end
44
46
  end
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
1
2
  # encoding: utf-8
3
+
2
4
  module Seorel
3
5
  module Model
4
6
  module Base
@@ -18,11 +20,16 @@ module Seorel
18
20
  class_variable_set '@@seorel_image_field', args[2]
19
21
  end
20
22
 
21
- has_one :seorel, as: :seorelable, dependent: :destroy, class_name: 'Seorel::Seorel'
23
+ has_one :seorel, as: :seorelable,
24
+ dependent: :destroy,
25
+ class_name: 'Seorel::Seorel',
26
+ autosave: true,
27
+ inverse_of: :seorelable
28
+
22
29
  accepts_nested_attributes_for :seorel, allow_destroy: true
23
30
 
24
31
  delegate :title, :title?, :description, :description?, :image, :image?,
25
- to: :seorel, prefix: :seo, allow_nil: true
32
+ to: :seorel, prefix: :seo, allow_nil: true
26
33
 
27
34
  before_save :set_seorel
28
35
  end
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
1
2
  # encoding: utf-8
3
+
2
4
  module Seorel
3
5
  module Model
4
6
  module ClassMethods
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
1
2
  # encoding: utf-8
3
+
2
4
  module Seorel
3
5
  module Model
4
6
  module InstanceMethods
5
7
  def seorel?
6
- self.try(:seorel).present?
8
+ try(:seorel).present?
7
9
  end
8
10
 
9
11
  def seorel_changed_mode?
@@ -11,37 +13,37 @@ module Seorel
11
13
  end
12
14
 
13
15
  def should_update_seo_title?
14
- self.seorel_changed_mode? || !self.seo_title?
16
+ seorel_changed_mode? || !seo_title?
15
17
  end
16
18
 
17
19
  def should_update_seo_description?
18
- self.seorel_changed_mode? || !self.seo_description?
20
+ seorel_changed_mode? || !seo_description?
19
21
  end
20
22
 
21
23
  def should_update_seo_image?
22
- self.seorel_changed_mode? || !self.seo_image?
24
+ seorel_changed_mode? || !seo_image?
23
25
  end
24
26
 
25
27
  def set_seorel
26
- self.build_seorel unless self.seorel?
28
+ build_seorel unless seorel?
27
29
 
28
- self.seorel.title = self.seorel_title_value if self.should_update_seo_title?
29
- self.seorel.description = self.seorel_description_value if self.should_update_seo_description?
30
- self.seorel.image = self.seorel_image_value if self.should_update_seo_image?
30
+ seorel.title = seorel_title_value if should_update_seo_title?
31
+ seorel.description = seorel_description_value if should_update_seo_description?
32
+ seorel.image = seorel_image_value if should_update_seo_image?
31
33
  end
32
34
 
33
35
  def seorel_title_value
34
- raw_title = self.class.seorel_title_field && self.send(self.class.seorel_title_field)
36
+ raw_title = self.class.seorel_title_field && send(self.class.seorel_title_field)
35
37
  ::ActionController::Base.helpers.strip_tags(raw_title.to_s).first(255)
36
38
  end
37
39
 
38
40
  def seorel_description_value
39
- raw_description = self.class.seorel_description_field && self.send(self.class.seorel_description_field)
41
+ raw_description = self.class.seorel_description_field && send(self.class.seorel_description_field)
40
42
  ::ActionController::Base.helpers.strip_tags(raw_description.to_s).first(255)
41
43
  end
42
44
 
43
45
  def seorel_image_value
44
- raw_image = self.class.seorel_image_field && self.send(self.class.seorel_image_field)
46
+ raw_image = self.class.seorel_image_field && send(self.class.seorel_image_field)
45
47
  ::ActionController::Base.helpers.strip_tags(raw_image.to_s)
46
48
  end
47
49
 
data/lib/seorel/seorel.rb CHANGED
@@ -1,23 +1,25 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'active_record'
2
4
 
3
5
  module Seorel
4
6
  class Seorel < ::ActiveRecord::Base
5
- belongs_to :seorelable, polymorphic: true, touch: true
7
+ belongs_to :seorelable, polymorphic: true, touch: true, inverse_of: :seorel
6
8
 
7
9
  def title?
8
- self.title.present?
10
+ title.present?
9
11
  end
10
12
 
11
13
  def description?
12
- self.description.present?
14
+ description.present?
13
15
  end
14
16
 
15
17
  def image?
16
- self.image.present?
18
+ image.present?
17
19
  end
18
20
 
19
21
  def admin_label
20
- I18n.t("seorel.admin.label")
22
+ I18n.t('seorel.admin.label')
21
23
  end
22
24
  end
23
25
  end
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
1
2
  # encoding: utf-8
3
+
2
4
  module Seorelify
3
5
  def self.extended(model_class)
4
6
  return if model_class.respond_to? :seorel
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Seorel
2
- VERSION = '0.3.0'
4
+ VERSION = '0.4.0'.freeze
3
5
  end
@@ -1,6 +1,6 @@
1
- # encoding: utf-8
1
+
2
2
  namespace :seorel do
3
- desc "Seorel installation"
3
+ desc 'Seorel installation'
4
4
  task install: [:environment] do
5
5
  # Task goes here
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seorel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrea Dal Ponte
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-10 00:00:00.000000000 Z
11
+ date: 2017-09-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -107,6 +107,7 @@ files:
107
107
  - config/locales/en.seorel.yml
108
108
  - config/locales/it.seorel.yml
109
109
  - lib/generators/seorel/install_generator.rb
110
+ - lib/generators/seorel/templates/globalize_migration.rb
110
111
  - lib/generators/seorel/templates/initializer.rb
111
112
  - lib/generators/seorel/templates/migration.rb
112
113
  - lib/generators/seorel/templates/seorel.en.yml
@@ -116,6 +117,7 @@ files:
116
117
  - lib/seorel/controller/instance_methods.rb
117
118
  - lib/seorel/controller/params.rb
118
119
  - lib/seorel/engine.rb
120
+ - lib/seorel/globalize.rb
119
121
  - lib/seorel/helper.rb
120
122
  - lib/seorel/helper/base.rb
121
123
  - lib/seorel/helper/generic.rb
@@ -149,9 +151,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
151
  version: '0'
150
152
  requirements: []
151
153
  rubyforge_project:
152
- rubygems_version: 2.5.1
154
+ rubygems_version: 2.6.13
153
155
  signing_key:
154
156
  specification_version: 4
155
157
  summary: Ruby on Rails SEO Metatags engine for ActiveRecord models
156
158
  test_files: []
157
- has_rdoc: