friendly_id-globalize 1.0.0.alpha3 → 1.0.0.alpha4
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 +5 -5
- data/friendly_id-globalize.gemspec +1 -1
- data/lib/friendly_id/globalize/version.rb +1 -1
- data/lib/friendly_id/globalize.rb +5 -10
- data/lib/friendly_id/history.rb +5 -5
- data/test/globalize_test.rb +9 -6
- metadata +20 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 3c63abb7940af7e1cfb45dc6bcc7203699a4993ee7fb7d2bda9a8f788c2710a2
|
4
|
+
data.tar.gz: c87d245f950ef8da97062015d6bd05be41e4c2466953d0dcf689077d1a160839
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 70275b9abdc134b05ec8e0836b0a22894f02faa18304f8962231bcb55052312dde373d115b2ee16aeed1e33220bb063776535c3911d6ec3a56cae30f13079f52
|
7
|
+
data.tar.gz: 94721821b35d7ad98055e76498ac403d964af9ad03a26daf982bf2e1bc4081e650749f4b5d6ca481260a198d04fc1970c37b98a09775c35406145c7c800e7523
|
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
|
|
16
16
|
|
17
17
|
s.required_ruby_version = '>= 1.9.3'
|
18
18
|
|
19
|
-
s.add_dependency 'friendly_id', '>= 5.
|
19
|
+
s.add_dependency 'friendly_id', '>= 5.1.0', '< 6.0'
|
20
20
|
s.add_development_dependency 'minitest'
|
21
21
|
s.add_development_dependency 'yard'
|
22
22
|
s.add_development_dependency "globalize"
|
@@ -7,7 +7,7 @@ module FriendlyId
|
|
7
7
|
== Translating Slugs Using Globalize
|
8
8
|
|
9
9
|
The {FriendlyId::Globalize Globalize} module lets you use
|
10
|
-
Globalize[https://github.com/
|
10
|
+
Globalize[https://github.com/globalize/globalize] to translate slugs. This
|
11
11
|
module is most suitable for applications that need to be localized to many
|
12
12
|
languages. If your application only needs to be localized to one or two
|
13
13
|
languages, you may wish to consider the {FriendlyId::SimpleI18n SimpleI18n}
|
@@ -85,7 +85,7 @@ current locale:
|
|
85
85
|
|
86
86
|
def set_friendly_id(text, locale = nil)
|
87
87
|
::Globalize.with_locale(locale || ::Globalize.locale) do
|
88
|
-
|
88
|
+
super_set_slug normalize_friendly_id(text)
|
89
89
|
end
|
90
90
|
end
|
91
91
|
|
@@ -94,12 +94,8 @@ current locale:
|
|
94
94
|
end
|
95
95
|
|
96
96
|
def set_slug(normalized_slug = nil)
|
97
|
-
|
98
|
-
|
99
|
-
::Globalize.with_locale(locale) { super_set_slug(normalized_slug) }
|
100
|
-
end
|
101
|
-
else
|
102
|
-
::Globalize.with_locale(::Globalize.locale) { super_set_slug(normalized_slug) }
|
97
|
+
(self.translations.map(&:locale).presence || [::Globalize.locale]).each do |locale|
|
98
|
+
::Globalize.with_locale(locale) { super_set_slug(normalized_slug) }
|
103
99
|
end
|
104
100
|
end
|
105
101
|
|
@@ -107,9 +103,8 @@ current locale:
|
|
107
103
|
if should_generate_new_friendly_id?
|
108
104
|
candidates = FriendlyId::Candidates.new(self, normalized_slug || send(friendly_id_config.base))
|
109
105
|
slug = slug_generator.generate(candidates) || resolve_friendly_id_conflict(candidates)
|
110
|
-
translation.
|
106
|
+
translation.send("#{friendly_id_config.slug_column}=", slug)
|
111
107
|
end
|
112
108
|
end
|
113
109
|
end
|
114
110
|
end
|
115
|
-
|
data/lib/friendly_id/history.rb
CHANGED
@@ -70,11 +70,11 @@ method.
|
|
70
70
|
# Configures the model instance to use the History add-on.
|
71
71
|
def self.included(model_class)
|
72
72
|
model_class.class_eval do
|
73
|
-
has_many :slugs, -> {order(
|
74
|
-
:
|
75
|
-
:
|
76
|
-
:
|
77
|
-
|
73
|
+
has_many :slugs, -> {order(Slug.arel_table[:id].desc)},
|
74
|
+
as: :sluggable,
|
75
|
+
dependent: :destroy,
|
76
|
+
class_name: Slug.to_s
|
77
|
+
|
78
78
|
after_save :create_slug
|
79
79
|
end
|
80
80
|
end
|
data/test/globalize_test.rb
CHANGED
@@ -22,14 +22,14 @@ ActiveRecord::Migration.verbose = false
|
|
22
22
|
FriendlyIdGlobalizeTest.up
|
23
23
|
|
24
24
|
class Article < ActiveRecord::Base
|
25
|
-
translates :
|
25
|
+
translates :my_slug, :title, fallbacks_for_empty_translations: true
|
26
26
|
accepts_nested_attributes_for :translations
|
27
27
|
|
28
28
|
extend FriendlyId
|
29
|
-
friendly_id :title, :use =>
|
29
|
+
friendly_id :title, :use => :globalize, :slug_column => 'my_slug'
|
30
30
|
end
|
31
31
|
|
32
|
-
Article.create_translation_table! :
|
32
|
+
Article.create_translation_table! :my_slug => :string, :title => :string
|
33
33
|
|
34
34
|
class Module
|
35
35
|
def test(name, &block)
|
@@ -77,21 +77,25 @@ class GlobalizeTest < MiniTest::Unit::TestCase
|
|
77
77
|
transaction do
|
78
78
|
article = Article.create!(:title => "War and Peace")
|
79
79
|
article.set_friendly_id("Guerra y paz", :es)
|
80
|
+
article.set_friendly_id("Guerra e pace", :it)
|
80
81
|
article.save!
|
81
82
|
found_article = Article.friendly.find('war-and-peace')
|
82
83
|
I18n.with_locale(:es) { assert_equal "guerra-y-paz", found_article.friendly_id }
|
83
84
|
I18n.with_locale(:en) { assert_equal "war-and-peace", found_article.friendly_id }
|
85
|
+
I18n.with_locale(:it) { assert_equal "guerra-e-pace", found_article.friendly_id }
|
84
86
|
end
|
85
87
|
end
|
86
88
|
|
87
89
|
test "should set all friendly ids for each nested translation" do
|
88
90
|
transaction do
|
89
91
|
article = Article.create!(translations_attributes: {
|
90
|
-
xx: { :
|
91
|
-
yy: { title: 'Guerre et paix', locale: 'fr' }
|
92
|
+
xx: { title: 'Guerra e pace', locale: 'it' },
|
93
|
+
yy: { title: 'Guerre et paix', locale: 'fr' },
|
94
|
+
zz: { title: 'Guerra y paz', locale: 'es' }
|
92
95
|
})
|
93
96
|
I18n.with_locale(:it) { assert_equal "guerra-e-pace", article.friendly_id }
|
94
97
|
I18n.with_locale(:fr) { assert_equal "guerre-et-paix", article.friendly_id }
|
98
|
+
I18n.with_locale(:es) { assert_equal "guerra-y-paz", article.friendly_id }
|
95
99
|
end
|
96
100
|
end
|
97
101
|
|
@@ -110,4 +114,3 @@ class GlobalizeTest < MiniTest::Unit::TestCase
|
|
110
114
|
end
|
111
115
|
end
|
112
116
|
end
|
113
|
-
|
metadata
CHANGED
@@ -1,76 +1,75 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: friendly_id-globalize
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.
|
4
|
+
version: 1.0.0.alpha4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Norman Clarke
|
8
8
|
- Philip Arndt
|
9
|
-
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2025-03-04 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: friendly_id
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
16
|
requirements:
|
18
|
-
- -
|
17
|
+
- - ">="
|
19
18
|
- !ruby/object:Gem::Version
|
20
|
-
version: 5.
|
21
|
-
- - <
|
19
|
+
version: 5.1.0
|
20
|
+
- - "<"
|
22
21
|
- !ruby/object:Gem::Version
|
23
22
|
version: '6.0'
|
24
23
|
type: :runtime
|
25
24
|
prerelease: false
|
26
25
|
version_requirements: !ruby/object:Gem::Requirement
|
27
26
|
requirements:
|
28
|
-
- -
|
27
|
+
- - ">="
|
29
28
|
- !ruby/object:Gem::Version
|
30
|
-
version: 5.
|
31
|
-
- - <
|
29
|
+
version: 5.1.0
|
30
|
+
- - "<"
|
32
31
|
- !ruby/object:Gem::Version
|
33
32
|
version: '6.0'
|
34
33
|
- !ruby/object:Gem::Dependency
|
35
34
|
name: minitest
|
36
35
|
requirement: !ruby/object:Gem::Requirement
|
37
36
|
requirements:
|
38
|
-
- -
|
37
|
+
- - ">="
|
39
38
|
- !ruby/object:Gem::Version
|
40
39
|
version: '0'
|
41
40
|
type: :development
|
42
41
|
prerelease: false
|
43
42
|
version_requirements: !ruby/object:Gem::Requirement
|
44
43
|
requirements:
|
45
|
-
- -
|
44
|
+
- - ">="
|
46
45
|
- !ruby/object:Gem::Version
|
47
46
|
version: '0'
|
48
47
|
- !ruby/object:Gem::Dependency
|
49
48
|
name: yard
|
50
49
|
requirement: !ruby/object:Gem::Requirement
|
51
50
|
requirements:
|
52
|
-
- -
|
51
|
+
- - ">="
|
53
52
|
- !ruby/object:Gem::Version
|
54
53
|
version: '0'
|
55
54
|
type: :development
|
56
55
|
prerelease: false
|
57
56
|
version_requirements: !ruby/object:Gem::Requirement
|
58
57
|
requirements:
|
59
|
-
- -
|
58
|
+
- - ">="
|
60
59
|
- !ruby/object:Gem::Version
|
61
60
|
version: '0'
|
62
61
|
- !ruby/object:Gem::Dependency
|
63
62
|
name: globalize
|
64
63
|
requirement: !ruby/object:Gem::Requirement
|
65
64
|
requirements:
|
66
|
-
- -
|
65
|
+
- - ">="
|
67
66
|
- !ruby/object:Gem::Version
|
68
67
|
version: '0'
|
69
68
|
type: :development
|
70
69
|
prerelease: false
|
71
70
|
version_requirements: !ruby/object:Gem::Requirement
|
72
71
|
requirements:
|
73
|
-
- -
|
72
|
+
- - ">="
|
74
73
|
- !ruby/object:Gem::Version
|
75
74
|
version: '0'
|
76
75
|
description: Adds Globalize support to the FriendlyId gem.
|
@@ -81,8 +80,8 @@ executables: []
|
|
81
80
|
extensions: []
|
82
81
|
extra_rdoc_files: []
|
83
82
|
files:
|
84
|
-
- .gitignore
|
85
|
-
- .yardopts
|
83
|
+
- ".gitignore"
|
84
|
+
- ".yardopts"
|
86
85
|
- Gemfile
|
87
86
|
- MIT-LICENSE
|
88
87
|
- README.md
|
@@ -98,24 +97,21 @@ homepage: http://github.com/norman/friendly_id-globalize
|
|
98
97
|
licenses:
|
99
98
|
- MIT
|
100
99
|
metadata: {}
|
101
|
-
post_install_message:
|
102
100
|
rdoc_options: []
|
103
101
|
require_paths:
|
104
102
|
- lib
|
105
103
|
required_ruby_version: !ruby/object:Gem::Requirement
|
106
104
|
requirements:
|
107
|
-
- -
|
105
|
+
- - ">="
|
108
106
|
- !ruby/object:Gem::Version
|
109
107
|
version: 1.9.3
|
110
108
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
111
109
|
requirements:
|
112
|
-
- -
|
110
|
+
- - ">="
|
113
111
|
- !ruby/object:Gem::Version
|
114
|
-
version:
|
112
|
+
version: '0'
|
115
113
|
requirements: []
|
116
|
-
|
117
|
-
rubygems_version: 2.0.14.1
|
118
|
-
signing_key:
|
114
|
+
rubygems_version: 3.6.2
|
119
115
|
specification_version: 4
|
120
116
|
summary: Globalize support for FriendlyId.
|
121
117
|
test_files: []
|