gettext_i18n_rails 1.12.0 → 2.0.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
  SHA256:
3
- metadata.gz: 21ca313fab159243b410640c4fdd81980a9f9a9c9f7500b904b1b520cd25a596
4
- data.tar.gz: 63f42039049902975af11131868ee12906d137151f43bdd5e86551fadc733080
3
+ metadata.gz: d6f129920dbc0bcf74d1cb3b768fb531bd595e3cc44af83839a8fed19c1aadd0
4
+ data.tar.gz: c652d355c849d08f550b7389667b4ce9379ab093922a4d0e030a9b5490e75e00
5
5
  SHA512:
6
- metadata.gz: d07bbab9c35abdb23b4e208b22c08c9be2051ac64dfa043c9a47013ca6ff92c8741356b950df53e809d90003c44db6183e9167e34a83856242c6a0d80c113486
7
- data.tar.gz: aba525c859c885518513c71d2086d2bfe1cb65fa48c3781bf8ac64a9e1d8009626519011b4011d7b51f9ca10ab9a8e1ffb71dcc269586fe97ecf82ceb0afa7de
6
+ metadata.gz: e3d45fdb03b533d47c02cbacd11e73327067a0d5b21292b4ec837de0e75fd5b372684fddd7e1738b3b117ec26fb0e833a01575669f4531e53f84a269aff05cd7
7
+ data.tar.gz: 7ed7822538d657851887b62f4d60a8a047298d734870f950f3a4050bfbd4b43c852ba8e18e5679ed18c87f40d656b27622c5747f7ea1e44d82adbc6fcfbc16a5
@@ -10,7 +10,15 @@ module ActiveModel
10
10
  if attribute.end_with?('_id')
11
11
  humanize_class_name(attribute)
12
12
  else
13
- "#{inheritance_tree_root(self)}|#{attribute.split('.').map! {|a| a.humanize }.join('|')}"
13
+ attribute_key = attribute.split('.').map! {|a| a.humanize }.join('|')
14
+ root = inheritance_tree_root(self).to_s
15
+
16
+ # in case of STI or no inheritance, first attempt retrieving the key for the current class
17
+ sti_key = "#{to_s}|#{attribute_key}"
18
+ return sti_key if to_s == root || FastGettext.cached_find(sti_key)
19
+
20
+ # fallback to lookup for the root class
21
+ return "#{root}|#{attribute_key}"
14
22
  end
15
23
  end
16
24
 
@@ -18,6 +18,7 @@ module GettextI18nRails
18
18
  end
19
19
  end
20
20
  f.puts "#DO NOT MODIFY! AUTOMATICALLY GENERATED FILE!"
21
+ f.puts "{}"
21
22
  end
22
23
  rescue
23
24
  puts "[Error] Attribute extraction failed. Removing incomplete file (#{file})"
@@ -46,6 +47,17 @@ module GettextI18nRails
46
47
  @existing_tables = (Rails::VERSION::MAJOR >= 5 ? connection.data_sources : connection.tables)
47
48
  end
48
49
 
50
+ # Rails 7.0 has deprecated direct_descendants in favor of subclasses.
51
+ # It was removed completely in Rails 7.1.
52
+ # This will maintain backwards compatibility with Rails 3.0 - 6.1
53
+ def subclass_method
54
+ if Rails::VERSION::MAJOR < 7
55
+ :direct_descendants
56
+ else
57
+ :subclasses
58
+ end
59
+ end
60
+
49
61
  # Rails < 3.0 doesn't have DescendantsTracker.
50
62
  # Instead of iterating over ObjectSpace (slow) the decision was made NOT to support
51
63
  # class hierarchies with abstract base classes in Rails 2.x
@@ -53,7 +65,7 @@ module GettextI18nRails
53
65
  return [] if model.abstract_class? && Rails::VERSION::MAJOR < 3
54
66
 
55
67
  if model.abstract_class?
56
- model.direct_descendants.reject {|m| ignored?(m.table_name, ignored_tables)}.inject([]) do |attrs, m|
68
+ model.send(subclass_method).reject {|m| ignored?(m.table_name, ignored_tables)}.inject([]) do |attrs, m|
57
69
  attrs.push(model_attributes(m, ignored_tables, ignored_cols)).flatten.uniq
58
70
  end
59
71
  elsif !ignored?(model.table_name, ignored_tables) && @existing_tables.include?(model.table_name)
@@ -68,11 +80,11 @@ module GettextI18nRails
68
80
  # Ensure autoloaders are set up before we attempt to eager load!
69
81
  Rails.application.autoloaders.each(&:setup) if Rails.application.respond_to?(:autoloaders)
70
82
  Rails.application.eager_load! # make sure that all models are loaded so that direct_descendants works
71
- descendants = ::ActiveRecord::Base.direct_descendants
83
+ descendants = ::ActiveRecord::Base.send(subclass_method)
72
84
 
73
85
  # In rails 5+ user models are supposed to inherit from ApplicationRecord
74
86
  if defined?(::ApplicationRecord)
75
- descendants += ApplicationRecord.direct_descendants
87
+ descendants += ApplicationRecord.send(subclass_method)
76
88
  descendants.delete ApplicationRecord
77
89
  end
78
90
 
@@ -1,3 +1,3 @@
1
1
  module GettextI18nRails
2
- Version = VERSION = '1.12.0'
2
+ Version = VERSION = '2.0.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gettext_i18n_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.12.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Grosser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-06-21 00:00:00.000000000 Z
11
+ date: 2025-09-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fast_gettext
@@ -108,34 +108,6 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: ruby_parser
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: 3.7.1
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: 3.7.1
125
- - !ruby/object:Gem::Dependency
126
- name: sexp_processor
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '0'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ">="
137
- - !ruby/object:Gem::Version
138
- version: '0'
139
111
  - !ruby/object:Gem::Dependency
140
112
  name: rspec
141
113
  requirement: !ruby/object:Gem::Requirement
@@ -168,16 +140,16 @@ dependencies:
168
140
  name: sqlite3
169
141
  requirement: !ruby/object:Gem::Requirement
170
142
  requirements:
171
- - - ">="
143
+ - - "~>"
172
144
  - !ruby/object:Gem::Version
173
- version: '0'
145
+ version: '1.7'
174
146
  type: :development
175
147
  prerelease: false
176
148
  version_requirements: !ruby/object:Gem::Requirement
177
149
  requirements:
178
- - - ">="
150
+ - - "~>"
179
151
  - !ruby/object:Gem::Version
180
- version: '0'
152
+ version: '1.7'
181
153
  description:
182
154
  email: michael@grosser.it
183
155
  executables: []
@@ -216,14 +188,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
216
188
  requirements:
217
189
  - - ">="
218
190
  - !ruby/object:Gem::Version
219
- version: 2.1.0
191
+ version: 3.0.0
220
192
  required_rubygems_version: !ruby/object:Gem::Requirement
221
193
  requirements:
222
194
  - - ">="
223
195
  - !ruby/object:Gem::Version
224
196
  version: '0'
225
197
  requirements: []
226
- rubygems_version: 3.3.3
198
+ rubygems_version: 3.4.10
227
199
  signing_key:
228
200
  specification_version: 4
229
201
  summary: Simple FastGettext Rails integration.