tolk 4.1.0 → 4.3.0

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: 5564840ddc80ff7aa53877b92a53d012c1d7da569d66ebc62f0de81b3e048ce9
4
- data.tar.gz: 5e341c5940739f53d6d391de924fce6c85894992362b9d3946be674bbc33c0e3
3
+ metadata.gz: 16e13f007c1439906c3231b8f392450bb0a5537b6ef7b9f04b6ecc33475131b2
4
+ data.tar.gz: 90014d2dde967571b20d112584ff2bb5b69e4e75f0ba45eff8e24cbe9746e461
5
5
  SHA512:
6
- metadata.gz: 27468ef20b2250b344ab1f4e2905eee920f504f37d20b8a2293fd327dd409ce309bf1246bab0b4525652b27d35a7558d3db597a9f3adee3431b4358f045949f6
7
- data.tar.gz: 4f4ec9c4114d4d9503f3c7339f9f3cb00e2e0db0454bb36b32f9eb737f8add9f5e9e12fd8fb8dc3596502f5ef4316160b79abf9bf2cf3881854a6be3907c1141
6
+ metadata.gz: f66f126b8023ed812ee3f1a5e8a28a9f7392a77b7cf6af9b5a58b2e1e3e87081a1eef484939833424acdb18e2bf0992d8214be56fbb199f8f536b259cd966704
7
+ data.tar.gz: 66d9c79259a92f84cdbcea223142ebce7ae445ceb350119c751a6e9070ea1610baf3e5d611b9b8d0d3fcb4207a61975a9553545edda2169edf9f0effd1531aeb
@@ -107,7 +107,9 @@ module Tolk
107
107
  phrases = phrases.where('tolk_phrases.id NOT IN (?)', existing_ids) if existing_ids.present?
108
108
 
109
109
  result = phrases.public_send(pagination_method, page)
110
- if Rails.version =~ /^4\.0/
110
+ if Gem::Version.new(Rails.version) >= Gem::Version.new('7')
111
+ ActiveRecord::Associations::Preloader.new(records: result, associations: :translations).call
112
+ elsif Rails.version =~ /^4\.0/
111
113
  ActiveRecord::Associations::Preloader.new result, :translations
112
114
  else
113
115
  ActiveRecord::Associations::Preloader.new().preload(result, :translations)
@@ -143,7 +145,9 @@ module Tolk
143
145
  # phrases = phrases.scoped(:conditions => ['tolk_phrases.id NOT IN (?) AND tolk_phrases.id IN(?)', existing_ids, found_translations_ids]) if existing_ids.present?
144
146
  phrases = phrases.where(['tolk_phrases.id NOT IN (?) AND tolk_phrases.id IN(?)', existing_ids, found_translations_ids]) if existing_ids.present?
145
147
  result = phrases.public_send(pagination_method, page)
146
- if Rails.version =~ /^4\.0/
148
+ if Gem::Version.new(Rails.version) >= Gem::Version.new('7')
149
+ ActiveRecord::Associations::Preloader.new(records: result, associations: :translations).call
150
+ elsif Rails.version =~ /^4\.0/
147
151
  ActiveRecord::Associations::Preloader.new result, :translations
148
152
  else
149
153
  ActiveRecord::Associations::Preloader.new().preload(result, :translations)
@@ -153,14 +157,14 @@ module Tolk
153
157
  end
154
158
 
155
159
  def to_hash
156
- data = translations.joins(:phrase).order("tolk_phrases.key ASC").pluck("tolk_phrases.key, text").
157
- each_with_object(Hash.new(0)) do |translation, locale|
158
- if translation[0].include?(".")
159
- locale.deep_merge!(unsquish(translation[0], translation[1]))
160
- else
161
- locale[translation[0]] = translation[1]
160
+ data = translations.includes(:phrase).references(:phrases).order(phrases.arel_table[:key]).
161
+ each_with_object({}) do |translation, locale|
162
+ if translation.phrase.key.include?(".")
163
+ locale.deep_merge!(unsquish(translation.phrase.key, translation.value))
164
+ else
165
+ locale[translation.phrase.key] = translation.value
166
+ end
162
167
  end
163
- end
164
168
  { name => data }
165
169
  end
166
170
 
@@ -186,7 +190,9 @@ module Tolk
186
190
  def translations_with_html
187
191
  translations = self.translations.all(:conditions => "tolk_translations.text LIKE '%>%' AND
188
192
  tolk_translations.text LIKE '%<%' AND tolk_phrases.key NOT LIKE '%_html'", :joins => :phrase)
189
- if Rails.version =~ /^4\.0/
193
+ if Gem::Version.new(Rails.version) >= Gem::Version.new('7')
194
+ ActiveRecord::Associations::Preloader.new(records: result, associations: :translations).call
195
+ elsif Rails.version =~ /^4\.0/
190
196
  ActiveRecord::Associations::Preloader.new translations, :phrase
191
197
  else
192
198
  ActiveRecord::Associations::Preloader.new().preload(translations, :phrase)
@@ -230,7 +236,9 @@ module Tolk
230
236
  phrase.translation = phrase.translations.for(self)
231
237
  end
232
238
 
233
- if Rails.version =~ /^4\.0/
239
+ if Gem::Version.new(Rails.version) >= Gem::Version.new('7')
240
+ ActiveRecord::Associations::Preloader.new(records: result, associations: :translations).call
241
+ elsif Rails.version =~ /^4\.0/
234
242
  ActiveRecord::Associations::Preloader.new result, :translations
235
243
  else
236
244
  ActiveRecord::Associations::Preloader.new().preload(result, :translations)
File without changes
File without changes
File without changes
@@ -79,7 +79,7 @@
79
79
  </div>
80
80
  <% else %>
81
81
  <div class="empty-state">
82
- <%= render 'tolk/blank_canva.svg' %>
82
+ <%= render 'tolk/blank_canva' %>
83
83
  <p class="empty-state__msg">
84
84
  There aren't any completed translations for this locale.
85
85
  </p>
@@ -32,7 +32,7 @@
32
32
  </ul>
33
33
  <% else %>
34
34
  <div class="empty-state">
35
- <%= render 'tolk/empty.svg' %>
35
+ <%= render 'tolk/empty' %>
36
36
  <p class="empty-state__msg">
37
37
  No locales yet, add one:
38
38
  </p>
@@ -64,7 +64,7 @@
64
64
  </div>
65
65
  <% else %>
66
66
  <div class="empty-state">
67
- <%= render 'tolk/houra.svg' %>
67
+ <%= render 'tolk/houra' %>
68
68
  <p class="empty-state__msg">
69
69
  <% if @locale.has_updated_translations? %>
70
70
  There aren't any missing phrases that need translation.
@@ -60,7 +60,7 @@
60
60
  </div>
61
61
  <% else %>
62
62
  <div class="empty-state">
63
- <%= render 'tolk/no_data.svg' %>
63
+ <%= render 'tolk/no_data' %>
64
64
  <p class="empty-state__msg">
65
65
  No search results.
66
66
  </p>
data/lib/tolk/config.rb CHANGED
@@ -20,6 +20,9 @@ module Tolk
20
20
  # reject files of type xxx.en.yml when syncing locales
21
21
  attr_accessor :block_xxx_en_yml_locale_files
22
22
 
23
+ # specify an array of files to skip ["devise"] will skip devise.<locale>.yml when syncing locales.
24
+ attr_accessor :ignore_locale_files
25
+
23
26
  # strip translation texts automatically
24
27
  attr_accessor :strip_texts
25
28
 
data/lib/tolk/sync.rb CHANGED
@@ -25,6 +25,16 @@ module Tolk
25
25
  translations_files = translations_files.reject(&locale_block_filter)
26
26
  end
27
27
 
28
+ if Tolk.config.ignore_locale_files.present?
29
+ locale_block_filter = Proc.new do |file_name|
30
+ directory_path = Rails.root.join('config', 'locales', 'final_separator').to_s.gsub("final_separator", "")
31
+ normalized_file_name = file_name.gsub(directory_path, "").split('.').first
32
+ Tolk.config.ignore_locale_files.include?(normalized_file_name)
33
+ end
34
+ translations_files = translations_files.reject(&locale_block_filter)
35
+ end
36
+
37
+
28
38
  I18n.backend.load_translations(translations_files)
29
39
  else
30
40
  I18n.backend.send :init_translations unless I18n.backend.initialized? # force load
data/lib/tolk/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Tolk
2
- VERSION = "4.1.0"
2
+ VERSION = "4.3.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tolk
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.0
4
+ version: 4.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
@@ -9,10 +9,10 @@ authors:
9
9
  - Emilio Tagua
10
10
  - Thomas Darde
11
11
  - Ferran Basora
12
- autorequire:
12
+ autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2021-07-21 00:00:00.000000000 Z
15
+ date: 2022-04-06 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rails
@@ -29,47 +29,47 @@ dependencies:
29
29
  - !ruby/object:Gem::Version
30
30
  version: '5.0'
31
31
  - !ruby/object:Gem::Dependency
32
- name: safe_yaml
32
+ name: sprockets-rails
33
33
  requirement: !ruby/object:Gem::Requirement
34
34
  requirements:
35
- - - ">="
35
+ - - "~>"
36
36
  - !ruby/object:Gem::Version
37
- version: 0.8.6
37
+ version: '3.4'
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
41
41
  requirements:
42
- - - ">="
42
+ - - "~>"
43
43
  - !ruby/object:Gem::Version
44
- version: 0.8.6
44
+ version: '3.4'
45
45
  - !ruby/object:Gem::Dependency
46
- name: sassc
46
+ name: safe_yaml
47
47
  requirement: !ruby/object:Gem::Requirement
48
48
  requirements:
49
49
  - - ">="
50
50
  - !ruby/object:Gem::Version
51
- version: '0'
51
+ version: 0.8.6
52
52
  type: :runtime
53
53
  prerelease: false
54
54
  version_requirements: !ruby/object:Gem::Requirement
55
55
  requirements:
56
56
  - - ">="
57
57
  - !ruby/object:Gem::Version
58
- version: '0'
58
+ version: 0.8.6
59
59
  - !ruby/object:Gem::Dependency
60
- name: capybara
60
+ name: sassc
61
61
  requirement: !ruby/object:Gem::Requirement
62
62
  requirements:
63
- - - "~>"
63
+ - - ">="
64
64
  - !ruby/object:Gem::Version
65
- version: '2.14'
66
- type: :development
65
+ version: '0'
66
+ type: :runtime
67
67
  prerelease: false
68
68
  version_requirements: !ruby/object:Gem::Requirement
69
69
  requirements:
70
- - - "~>"
70
+ - - ">="
71
71
  - !ruby/object:Gem::Version
72
- version: '2.14'
72
+ version: '0'
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: sqlite3
75
75
  requirement: !ruby/object:Gem::Requirement
@@ -105,7 +105,7 @@ dependencies:
105
105
  - !ruby/object:Gem::Version
106
106
  version: '1.0'
107
107
  - !ruby/object:Gem::Dependency
108
- name: poltergeist
108
+ name: will_paginate
109
109
  requirement: !ruby/object:Gem::Requirement
110
110
  requirements:
111
111
  - - ">="
@@ -119,7 +119,49 @@ dependencies:
119
119
  - !ruby/object:Gem::Version
120
120
  version: '0'
121
121
  - !ruby/object:Gem::Dependency
122
- name: will_paginate
122
+ name: capybara
123
+ requirement: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - "~>"
126
+ - !ruby/object:Gem::Version
127
+ version: '3.14'
128
+ type: :development
129
+ prerelease: false
130
+ version_requirements: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - "~>"
133
+ - !ruby/object:Gem::Version
134
+ version: '3.14'
135
+ - !ruby/object:Gem::Dependency
136
+ name: cuprite
137
+ requirement: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ type: :development
143
+ prerelease: false
144
+ version_requirements: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: '0'
149
+ - !ruby/object:Gem::Dependency
150
+ name: puma
151
+ requirement: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - "~>"
154
+ - !ruby/object:Gem::Version
155
+ version: '5.5'
156
+ type: :development
157
+ prerelease: false
158
+ version_requirements: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - "~>"
161
+ - !ruby/object:Gem::Version
162
+ version: '5.5'
163
+ - !ruby/object:Gem::Dependency
164
+ name: appraisal
123
165
  requirement: !ruby/object:Gem::Requirement
124
166
  requirements:
125
167
  - - ">="
@@ -157,11 +199,11 @@ files:
157
199
  - app/models/tolk/phrase.rb
158
200
  - app/models/tolk/translation.rb
159
201
  - app/views/layouts/tolk/application.html.erb
160
- - app/views/tolk/_blank_canva.svg
161
- - app/views/tolk/_empty.svg
162
- - app/views/tolk/_houra.svg
202
+ - app/views/tolk/_blank_canva.html.erb
203
+ - app/views/tolk/_empty.html.erb
204
+ - app/views/tolk/_houra.html.erb
163
205
  - app/views/tolk/_nav.html.erb
164
- - app/views/tolk/_no_data.svg
206
+ - app/views/tolk/_no_data.html.erb
165
207
  - app/views/tolk/locales/all.html.erb
166
208
  - app/views/tolk/locales/index.html.erb
167
209
  - app/views/tolk/locales/show.atom.builder
@@ -189,7 +231,7 @@ homepage: https://github.com/tolk/tolk
189
231
  licenses:
190
232
  - MIT
191
233
  metadata: {}
192
- post_install_message:
234
+ post_install_message:
193
235
  rdoc_options: []
194
236
  require_paths:
195
237
  - lib
@@ -204,8 +246,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
204
246
  - !ruby/object:Gem::Version
205
247
  version: '0'
206
248
  requirements: []
207
- rubygems_version: 3.2.20
208
- signing_key:
249
+ rubygems_version: 3.3.10
250
+ signing_key:
209
251
  specification_version: 4
210
252
  summary: Rails engine providing web interface for managing i18n yaml files
211
253
  test_files: []