weeler 2.0.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -0
  3. data/.travis.yml +2 -1
  4. data/CHANGELOG.md +6 -0
  5. data/Gemfile +0 -7
  6. data/app/assets/javascripts/weeler/init.js +0 -2
  7. data/app/assets/stylesheets/weeler/style.css.scss +7 -1
  8. data/app/controllers/weeler/seo_items_controller.rb +3 -2
  9. data/app/controllers/weeler/settings_controller.rb +27 -9
  10. data/app/controllers/weeler/static_sections_controller.rb +2 -2
  11. data/app/controllers/weeler/translations_controller.rb +4 -18
  12. data/app/models/setting.rb +7 -0
  13. data/app/views/weeler/base/_footer.html.haml +1 -1
  14. data/app/views/weeler/settings/_form.html.haml +16 -0
  15. data/app/views/weeler/settings/index.html.haml +5 -8
  16. data/app/views/weeler/static_sections/show.html.haml +5 -1
  17. data/app/views/weeler/translations/_form.html.haml +5 -2
  18. data/app/views/weeler/translations/index.html.haml +0 -10
  19. data/lib/generators/weeler/templates/assets/javascripts/weeler/app/index.js +3 -1
  20. data/lib/generators/weeler/templates/assets/stylesheets/weeler/app/index.css +1 -1
  21. data/lib/i18n/backend/weeler/exporter.rb +32 -14
  22. data/lib/i18n/backend/weeler/importer.rb +57 -54
  23. data/lib/i18n/backend/weeler.rb +14 -25
  24. data/lib/weeler/action_dispatch/routing/mapper.rb +1 -2
  25. data/lib/weeler/action_view/helpers/translation_helper.rb +2 -2
  26. data/lib/weeler/version.rb +1 -1
  27. data/lib/weeler.rb +6 -1
  28. data/spec/.DS_Store +0 -0
  29. data/spec/controllers/translations_controller_spec.rb +1 -1
  30. data/spec/dummy/.ruby-version +1 -1
  31. data/spec/dummy/config/environment.rb +1 -1
  32. data/spec/dummy/db/schema.rb +3 -3
  33. data/spec/fixtures/test_2020_format.xlsx +0 -0
  34. data/spec/weeler/i18n/backend/weeler/exporter_spec.rb +6 -0
  35. data/spec/weeler/i18n/backend/weeler/importer_spec.rb +17 -6
  36. data/spec/weeler/i18n/backend/weeler_spec.rb +51 -66
  37. data/weeler.gemspec +4 -5
  38. metadata +22 -37
  39. data/app/models/settings.rb +0 -2
  40. data/app/views/weeler/translations/usage_stats.html.haml +0 -34
  41. data/lib/generators/weeler/templates/migrations/create_weeler_translation_stats.rb +0 -11
  42. data/lib/i18n/backend/weeler/usage_logger.rb +0 -35
  43. data/spec/weeler/i18n/backend/weeler/usage_logger_spec.rb +0 -34
@@ -4,8 +4,8 @@ module Weeler
4
4
  module TranslationHelper
5
5
  extend ActiveSupport::Concern
6
6
 
7
- def translate(key, options = {})
8
- request.present? && request.params[:show_translation_keys] == "true" ? key : super(key, options)
7
+ def translate(key, **options)
8
+ request.present? && request.params[:show_translation_keys] == "true" ? key : super(key, **options)
9
9
  end
10
10
  alias :t :translate
11
11
 
@@ -2,7 +2,7 @@ module Weeler
2
2
  module VERSION
3
3
  MAJOR = 2
4
4
  MINOR = 0
5
- TINY = 0
5
+ TINY = 1
6
6
  PRE = nil
7
7
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
8
8
  end
data/lib/weeler.rb CHANGED
@@ -11,7 +11,6 @@ require "haml"
11
11
  require "kaminari"
12
12
  require "globalize"
13
13
  require "jquery-ui-rails"
14
- require "jquery-turbolinks"
15
14
  require "rails-settings-cached"
16
15
 
17
16
  module Weeler
@@ -66,6 +65,12 @@ module Weeler
66
65
  mattr_accessor :mount_location_namespace
67
66
  @@mount_location_namespace = "weeler"
68
67
 
68
+ mattr_accessor :use_rails_rich_text_editor
69
+ @@use_rails_rich_text_editor = true
70
+
71
+ mattr_accessor :settings_fields
72
+ @@settings_fields = []
73
+
69
74
  def self.setup
70
75
  yield self
71
76
  if Weeler.use_weeler_i18n == true && ActiveRecord::Base.connection.data_source_exists?('weeler_translations')
data/spec/.DS_Store CHANGED
Binary file
@@ -87,7 +87,7 @@ describe Weeler::TranslationsController, type: :controller do
87
87
  context "submiting a file" do
88
88
  it "adds translation from files" do
89
89
  I18n::Backend::Weeler::Translation.delete_all
90
- Settings.i18n_updated_at = Time.now
90
+ Setting.i18n_updated_at = Time.current
91
91
 
92
92
  expect(I18n.t("welcome.title", locale: :en)).to eq("Title") # Missing translation
93
93
  post "import", params: { file: fixture_file_upload(File.dirname(__FILE__) + '/../fixtures/test.xlsx', 'application/xlsx') }
@@ -1 +1 @@
1
- ruby-2.7.0
1
+ ruby-2.7.2
@@ -2,4 +2,4 @@
2
2
  require_relative 'application'
3
3
 
4
4
  # Initialize the Rails application.
5
- Rails.application.initialize!
5
+ Rails.application.initialize!
@@ -2,8 +2,8 @@
2
2
  # of editing this file, please use the migrations feature of Active Record to
3
3
  # incrementally modify your database, and then regenerate this schema definition.
4
4
  #
5
- # This file is the source Rails uses to define your schema when running `rails
6
- # db:schema:load`. When creating a new database, `rails db:schema:load` tends to
5
+ # This file is the source Rails uses to define your schema when running `bin/rails
6
+ # db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to
7
7
  # be faster and is potentially less error prone than running all of your
8
8
  # migrations from scratch. Old migrations may fail to apply correctly if those
9
9
  # migrations use external dependencies or application code.
@@ -73,7 +73,7 @@ ActiveRecord::Schema.define(version: 2016_03_30_192005) do
73
73
  t.datetime "created_at"
74
74
  t.datetime "updated_at"
75
75
  t.index ["section"], name: "index_weeler_seos_on_section"
76
- t.index ["seoable_type", "seoable_id"], name: "index_weeler_seos_on_seoable_type_and_seoable_id"
76
+ t.index ["seoable_type", "seoable_id"], name: "index_weeler_seos_on_seoable"
77
77
  end
78
78
 
79
79
  create_table "weeler_translation_stats", id: :serial, force: :cascade do |t|
Binary file
@@ -22,12 +22,18 @@ describe I18n::Backend::Weeler::Exporter do
22
22
  expect(@rows.first.cells[0].value).to eq("Key")
23
23
  expect(@rows.first.cells[1].value).to eq("En")
24
24
  expect(@rows.first.cells[2].value).to eq("Lv")
25
+
26
+ expect(@rows.first.cells[3].value).to eq("Created at")
27
+ expect(@rows.first.cells[4].value).to eq("Updated at")
25
28
  end
26
29
 
27
30
  it "other row with one translation" do
28
31
  expect(@rows[1].cells[0].value).to eq("foo.one")
29
32
  expect(@rows[1].cells[1].value).to eq("test")
30
33
  expect(@rows[1].cells[2].value).to eq("")
34
+
35
+ expect(@rows[1].cells[3].value&.is_a?(Time)).to eq(true)
36
+ expect(@rows[1].cells[4].value&.is_a?(Time)).to eq(true)
31
37
  end
32
38
 
33
39
  it "other row with two translation" do
@@ -6,7 +6,6 @@ describe I18n::Backend::Weeler::Importer do
6
6
  let(:file_path) { Rack::Test::UploadedFile.new(File.dirname(__FILE__) + '/../../../../fixtures/test.xlsx') }
7
7
 
8
8
  describe :import do
9
-
10
9
  context "empty db" do
11
10
  before(:each) do
12
11
  I18n::Backend::Weeler::Translation.delete_all
@@ -24,9 +23,24 @@ describe I18n::Backend::Weeler::Importer do
24
23
  it "returns nil if value is not file" do
25
24
  expect(I18n.t(:"product.list.open", :locale => :en)).to eq("")
26
25
  end
27
-
28
26
  end
29
27
 
28
+ context 'when file includes created_at and updated_at dates' do
29
+ let(:file_path) { Rack::Test::UploadedFile.new(File.dirname(__FILE__) + '/../../../../fixtures/test_2020_format.xlsx') }
30
+
31
+ before(:each) do
32
+ I18n::Backend::Weeler::Translation.delete_all
33
+ I18n::Backend::Weeler::Translation.import file_path
34
+ end
35
+
36
+ it "translation stores all translation in each locale" do
37
+ expect(I18n::Backend::Weeler::Translation.count).to eq(30)
38
+ end
39
+
40
+ it "stores only values from locals" do
41
+ expect(I18n::Backend::Weeler::Translation.distinct.pluck(:locale).sort).to eq(['en', 'lt', 'lv'])
42
+ end
43
+ end
30
44
 
31
45
  context "full db" do
32
46
  before(:each) do
@@ -38,13 +52,10 @@ describe I18n::Backend::Weeler::Importer do
38
52
  it "file import overrides value" do
39
53
  expect(I18n.t(:"welcome.title", :locale => :en)).to eq("fooo")
40
54
  I18n::Backend::Weeler::Translation.import file_path
41
- Settings.i18n_updated_at = Time.now
55
+ Setting.i18n_updated_at = Time.current
42
56
 
43
57
  expect(I18n.t(:"welcome.title", :locale => :en)).to eq("EN welcome")
44
58
  end
45
-
46
59
  end
47
-
48
60
  end
49
-
50
61
  end
@@ -2,16 +2,13 @@
2
2
  require "spec_helper"
3
3
 
4
4
  describe I18n::Backend::Weeler do
5
-
6
5
  describe "#interpolations" do
7
-
8
6
  it "can persist" do
9
7
  translation = I18n::Backend::Weeler::Translation.new(:key => 'foo', :value => 'bar', :locale => :en)
10
8
  translation.interpolations = %w(count name)
11
9
  translation.save
12
10
  expect(translation.valid?).to be(true)
13
11
  end
14
-
15
12
  end
16
13
 
17
14
  before do
@@ -26,9 +23,9 @@ describe I18n::Backend::Weeler do
26
23
  end
27
24
 
28
25
  it "writes last translations update timestamp to cache" do
29
- Settings.i18n_updated_at = Time.now
26
+ Setting.i18n_updated_at = Time.now
30
27
  I18n.backend.backends[0].reload_cache
31
- expect(Weeler.i18n_cache.read('UPDATED_AT')).to eq(Settings.i18n_updated_at)
28
+ expect(Weeler.i18n_cache.read('UPDATED_AT')).to eq(Setting.i18n_updated_at)
32
29
  end
33
30
 
34
31
  it "loads all translated data to cache" do
@@ -43,15 +40,44 @@ describe I18n::Backend::Weeler do
43
40
  end
44
41
 
45
42
  describe "#available_locales" do
43
+ before do
44
+ I18n.available_locales = nil
45
+ end
46
46
 
47
- it "finds one locale" do
48
- expect(I18n.available_locales.count).to be(2)
47
+ context "when no translations and available_locales provided" do
48
+ it "returns one :en locale" do
49
+ expect(I18n.available_locales.count).to be(1)
50
+ expect(I18n.available_locales.first).to eq(:en)
51
+ end
49
52
  end
50
53
 
54
+ context "when available_locales provided" do
55
+ before do
56
+ I18n.available_locales = [:en, :es, :lv]
57
+ end
58
+
59
+ it "returns provided available_locales" do
60
+ expect(I18n.available_locales.count).to be(3)
61
+ expect(I18n.available_locales).to eq([:en, :es, :lv])
62
+ end
63
+ end
64
+
65
+ context "when no available_locales provided but have translations" do
66
+ before do
67
+ I18n::Backend::Weeler::Translation.create(key: 'weeler.test.value', locale: 'en')
68
+ I18n::Backend::Weeler::Translation.create(key: 'weeler.test.value', locale: 'es')
69
+ I18n::Backend::Weeler::Translation.create(key: 'weeler.test.value_two', locale: 'en')
70
+ end
71
+
72
+ it "returns locales from translations" do
73
+ expect(I18n.available_locales.count).to be(2)
74
+ expect(I18n.available_locales).to include(:en)
75
+ expect(I18n.available_locales).to include(:es)
76
+ end
77
+ end
51
78
  end
52
79
 
53
80
  describe "#value" do
54
-
55
81
  it "returns boolean if translation boolean" do
56
82
  true_t = I18n::Backend::Weeler::Translation.create(:key => 'valid', :value => true, :locale => :en)
57
83
  false_t = I18n::Backend::Weeler::Translation.create(:key => 'invalid', :value => false, :locale => :en)
@@ -64,11 +90,10 @@ describe I18n::Backend::Weeler do
64
90
  proc = I18n::Backend::Weeler::Translation.create(:key => 'valid', :value => "p 'This ir proc!'", :locale => :en, :is_proc => true)
65
91
  expect { proc.value }.to output("\"This ir proc!\"\n").to_stdout
66
92
  end
67
-
68
93
  end
69
94
 
70
95
  describe "#html?" do
71
- before(:all) do
96
+ before do
72
97
  @html_key_translation = I18n::Backend::Weeler::Translation.create(:key => 'methods.body_html', :value => "Super duper", :locale => :en)
73
98
  @html_value_translation = I18n::Backend::Weeler::Translation.create(:key => 'methods.body', :value => "Super <b>duper</b>", :locale => :en)
74
99
  @html_fake_value_translation = I18n::Backend::Weeler::Translation.create(:key => 'methods.body_fake', :value => "Super b", :locale => :en)
@@ -83,18 +108,16 @@ describe I18n::Backend::Weeler do
83
108
  end
84
109
 
85
110
  it "is false if value not contains html" do
86
-
87
111
  expect(@html_fake_value_translation.html?).to be(false)
88
112
  end
89
-
90
113
  end
91
114
 
92
115
  describe "groups" do
93
-
94
- before(:all) do
116
+ before do
95
117
  I18n.backend.store_translations(:en, :group2 => { :test2 => 'bar' } )
96
118
  I18n.backend.store_translations(:en, :group1 => { :test => 'bar' })
97
119
  I18n.backend.store_translations(:en, :group1 => { :test3 => 'bar' })
120
+
98
121
  @groups = I18n::Backend::Weeler::Translation.groups
99
122
  end
100
123
 
@@ -119,7 +142,7 @@ describe I18n::Backend::Weeler do
119
142
  I18n.backend.backends[0].reload_cache
120
143
 
121
144
  translations = I18n::Backend::Weeler::Translation.locale(:en).lookup('foo')
122
- expect(translations.map(&:value)).to eq(%w(bar baz))
145
+ expect(translations.map(&:value).sort).to eq(%w(bar baz))
123
146
 
124
147
  expect(I18n.t(:foo)).to eq("Foo") # no translation
125
148
  end
@@ -143,7 +166,6 @@ describe I18n::Backend::Weeler do
143
166
  end
144
167
 
145
168
  describe "#lookup" do
146
-
147
169
  it "show warning" do
148
170
  warning_message = "[DEPRECATION] Giving a separator to Translation.lookup is deprecated. You can change the internal separator by overwriting FLATTEN_SEPARATOR.\n"
149
171
  expect { I18n::Backend::Weeler::Translation.lookup("foo", "|") }.to output(warning_message).to_stderr
@@ -152,7 +174,7 @@ describe I18n::Backend::Weeler do
152
174
  context "cache" do
153
175
  context "differs from settings timestamp" do
154
176
  before do
155
- Settings.i18n_updated_at = Time.now
177
+ Setting.i18n_updated_at = Time.now
156
178
  end
157
179
 
158
180
  it "reloads cache" do
@@ -163,7 +185,7 @@ describe I18n::Backend::Weeler do
163
185
 
164
186
  context "is same as updates timestamp" do
165
187
  before do
166
- Weeler.i18n_cache.write('UPDATED_AT', Settings.i18n_updated_at)
188
+ Weeler.i18n_cache.write('UPDATED_AT', Setting.i18n_updated_at)
167
189
  end
168
190
 
169
191
  it "does not reload cache" do
@@ -180,49 +202,37 @@ describe I18n::Backend::Weeler do
180
202
  end
181
203
 
182
204
  context "missing translations" do
183
-
184
205
  context "exist in yml" do
185
-
186
206
  context "new translation" do
187
-
188
207
  it "persist it" do
189
208
  I18n.t('hello')
190
209
  expect(I18n::Backend::Weeler::Translation.locale(:en).find_by_key('hello').value).to eq(I18n.t('hello'))
191
210
  end
192
-
193
211
  end
194
212
 
195
213
  context "already stored" do
196
-
197
214
  context "value is empty" do
198
- context "empty as existing" do
199
- before(:all) do
200
- Weeler.empty_translation_acts_like_missing = false
201
- FactoryBot.create(:translation, key: "weeler.test.cms_title", locale: "en", value: "")
215
+ context "empty as missing" do
216
+ before do
217
+ Weeler.empty_translation_acts_like_missing = true
218
+
219
+ FactoryBot.create(:translation, key: 'weeler.test.cms_title', locale: 'en', value: '')
202
220
  end
203
221
 
204
- it "saves the fallback backend value" do
222
+ it 'saves the fallback backend value' do
205
223
  I18n.t('weeler.test.cms_title')
206
- expect(I18n::Backend::Weeler::Translation.locale(:en).find_by_key('weeler.test.cms_title').value).to eq("Weeler is cool")
207
- end
208
224
 
209
- after(:all) do
210
- Weeler.empty_translation_acts_like_missing = true
211
- end
212
- end
213
- context "empty as missing" do
214
- before(:all) do
215
- FactoryBot.create(:translation, key: "weeler.test.cms_title", locale: "en", value: "")
225
+ expect(I18n::Backend::Weeler::Translation.locale(:en).find_by_key('weeler.test.cms_title').value).to eq('Weeler is cool')
216
226
  end
217
227
 
218
- it "saves the fallback backend value" do
219
- I18n.t('weeler.test.cms_title')
220
- expect(I18n::Backend::Weeler::Translation.locale(:en).find_by_key('weeler.test.cms_title').value).to eq("Weeler is cool")
228
+ after do
229
+ Weeler.empty_translation_acts_like_missing = false
221
230
  end
222
231
  end
223
232
  end
233
+
224
234
  context "value is nil" do
225
- before(:all) do
235
+ before do
226
236
  FactoryBot.create(:translation, key: "weeler.test.cms_title", locale: "en", value: nil)
227
237
  end
228
238
 
@@ -284,31 +294,6 @@ describe I18n::Backend::Weeler do
284
294
  I18n.backend.backends[0].reload_cache
285
295
  expect(I18n.t(key, :separator => '|')).to eq('baz!')
286
296
  end
287
-
288
- end
289
-
290
- context "usage logging" do
291
-
292
- it "translation stores all translation in each locale" do
293
- Settings.log_key_usage = 'true'
294
- expect(I18n.backend.backends[0]).to receive(:log_key_usage)
295
- I18n.t("random.key")
296
- end
297
-
298
- it "doesn't log keys" do
299
- Settings.log_key_usage = 'false'
300
- expect(I18n.backend.backends[0]).not_to receive(:log_key_usage)
301
- I18n.t("random.key")
302
- end
303
-
304
- it "dumps logged keys to database" do
305
- Settings.log_key_usage = 'dump'
306
- expect(I18n.backend.backends[0]).to receive(:dump_key_usage)
307
- I18n.t("random.key")
308
- end
309
-
310
297
  end
311
-
312
298
  end
313
-
314
299
  end
data/weeler.gemspec CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
17
17
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
18
  spec.require_paths = ['lib']
19
19
 
20
- spec.add_dependency 'rails', '~> 6.0'
20
+ spec.add_dependency 'rails'
21
21
 
22
22
  spec.add_dependency 'globalize'
23
23
  spec.add_dependency 'i18n'
@@ -26,11 +26,10 @@ Gem::Specification.new do |spec|
26
26
 
27
27
  spec.add_dependency 'kaminari'
28
28
 
29
- spec.add_dependency 'jquery-turbolinks'
30
29
  spec.add_dependency 'jquery-ui-rails'
31
- spec.add_dependency 'rails-settings-cached', '< 2.0'
30
+ spec.add_dependency 'rails-settings-cached'
32
31
 
33
- spec.add_dependency 'axlsx'
32
+ spec.add_dependency 'caxlsx'
34
33
  spec.add_dependency 'roo'
35
34
 
36
35
  spec.add_development_dependency 'bundler'
@@ -38,7 +37,7 @@ Gem::Specification.new do |spec|
38
37
  spec.add_development_dependency 'factory_bot_rails'
39
38
  spec.add_development_dependency 'rake'
40
39
  spec.add_development_dependency 'rspec'
41
- spec.add_development_dependency 'rspec-rails', '4.0.0.beta3'
40
+ spec.add_development_dependency 'rspec-rails', '~> 4.0.0'
42
41
  spec.add_development_dependency 'webrat'
43
42
 
44
43
  if RUBY_PLATFORM == 'java'
metadata CHANGED
@@ -1,30 +1,30 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: weeler
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artūrs Braučs
8
8
  - Artis Raugulis
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-03-01 00:00:00.000000000 Z
12
+ date: 2021-12-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - "~>"
18
+ - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: '6.0'
20
+ version: '0'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - "~>"
25
+ - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: '6.0'
27
+ version: '0'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: globalize
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -82,7 +82,7 @@ dependencies:
82
82
  - !ruby/object:Gem::Version
83
83
  version: '0'
84
84
  - !ruby/object:Gem::Dependency
85
- name: jquery-turbolinks
85
+ name: jquery-ui-rails
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
88
  - - ">="
@@ -96,7 +96,7 @@ dependencies:
96
96
  - !ruby/object:Gem::Version
97
97
  version: '0'
98
98
  - !ruby/object:Gem::Dependency
99
- name: jquery-ui-rails
99
+ name: rails-settings-cached
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - ">="
@@ -110,21 +110,7 @@ dependencies:
110
110
  - !ruby/object:Gem::Version
111
111
  version: '0'
112
112
  - !ruby/object:Gem::Dependency
113
- name: rails-settings-cached
114
- requirement: !ruby/object:Gem::Requirement
115
- requirements:
116
- - - "<"
117
- - !ruby/object:Gem::Version
118
- version: '2.0'
119
- type: :runtime
120
- prerelease: false
121
- version_requirements: !ruby/object:Gem::Requirement
122
- requirements:
123
- - - "<"
124
- - !ruby/object:Gem::Version
125
- version: '2.0'
126
- - !ruby/object:Gem::Dependency
127
- name: axlsx
113
+ name: caxlsx
128
114
  requirement: !ruby/object:Gem::Requirement
129
115
  requirements:
130
116
  - - ">="
@@ -225,16 +211,16 @@ dependencies:
225
211
  name: rspec-rails
226
212
  requirement: !ruby/object:Gem::Requirement
227
213
  requirements:
228
- - - '='
214
+ - - "~>"
229
215
  - !ruby/object:Gem::Version
230
- version: 4.0.0.beta3
216
+ version: 4.0.0
231
217
  type: :development
232
218
  prerelease: false
233
219
  version_requirements: !ruby/object:Gem::Requirement
234
220
  requirements:
235
- - - '='
221
+ - - "~>"
236
222
  - !ruby/object:Gem::Version
237
- version: 4.0.0.beta3
223
+ version: 4.0.0
238
224
  - !ruby/object:Gem::Dependency
239
225
  name: webrat
240
226
  requirement: !ruby/object:Gem::Requirement
@@ -343,6 +329,7 @@ extra_rdoc_files: []
343
329
  files:
344
330
  - ".gitignore"
345
331
  - ".rspec"
332
+ - ".ruby-version"
346
333
  - ".travis.yml"
347
334
  - CHANGELOG.md
348
335
  - Gemfile
@@ -390,7 +377,7 @@ files:
390
377
  - app/helpers/weeler/flash_helper.rb
391
378
  - app/models/concerns/weeler/seoable.rb
392
379
  - app/models/concerns/weeler/sluger.rb
393
- - app/models/settings.rb
380
+ - app/models/setting.rb
394
381
  - app/models/weeler/seo.rb
395
382
  - app/views/kaminari/weeler/_first_page.html.haml
396
383
  - app/views/kaminari/weeler/_gap.html.haml
@@ -427,6 +414,7 @@ files:
427
414
  - app/views/weeler/home/index.html.haml
428
415
  - app/views/weeler/seo_items/edit.html.haml
429
416
  - app/views/weeler/seo_items/index.html.haml
417
+ - app/views/weeler/settings/_form.html.haml
430
418
  - app/views/weeler/settings/index.html.haml
431
419
  - app/views/weeler/static_sections/show.html.haml
432
420
  - app/views/weeler/translations/_form.html.haml
@@ -434,7 +422,6 @@ files:
434
422
  - app/views/weeler/translations/edit.html.haml
435
423
  - app/views/weeler/translations/index.html.haml
436
424
  - app/views/weeler/translations/new.html.haml
437
- - app/views/weeler/translations/usage_stats.html.haml
438
425
  - config/initializers/weeler_mime_types.rb
439
426
  - lib/.DS_Store
440
427
  - lib/generators/weeler/.DS_Store
@@ -446,7 +433,6 @@ files:
446
433
  - lib/generators/weeler/templates/migrations/create_weeler_locks.rb
447
434
  - lib/generators/weeler/templates/migrations/create_weeler_seos.rb
448
435
  - lib/generators/weeler/templates/migrations/create_weeler_settings.rb
449
- - lib/generators/weeler/templates/migrations/create_weeler_translation_stats.rb
450
436
  - lib/generators/weeler/templates/migrations/create_weeler_translations.rb
451
437
  - lib/generators/weeler/templates/migrations/translate_weeler_seos.rb
452
438
  - lib/generators/weeler/templates/views/weeler/.keep
@@ -460,7 +446,6 @@ files:
460
446
  - lib/i18n/backend/weeler/lock.rb
461
447
  - lib/i18n/backend/weeler/translation.rb
462
448
  - lib/i18n/backend/weeler/translation_stat.rb
463
- - lib/i18n/backend/weeler/usage_logger.rb
464
449
  - lib/i18n/humanize_missing_translations.rb
465
450
  - lib/i18n/weeler.rb
466
451
  - lib/tasks/weeler.rake
@@ -548,6 +533,7 @@ files:
548
533
  - spec/factories/translations.rb
549
534
  - spec/fixtures/.DS_Store
550
535
  - spec/fixtures/test.xlsx
536
+ - spec/fixtures/test_2020_format.xlsx
551
537
  - spec/routing/routes_spec.rb
552
538
  - spec/spec_helper.rb
553
539
  - spec/weeler/.DS_Store
@@ -559,7 +545,6 @@ files:
559
545
  - spec/weeler/i18n/backend/weeler/exporter_spec.rb
560
546
  - spec/weeler/i18n/backend/weeler/importer_spec.rb
561
547
  - spec/weeler/i18n/backend/weeler/lock_spec.rb
562
- - spec/weeler/i18n/backend/weeler/usage_logger_spec.rb
563
548
  - spec/weeler/i18n/backend/weeler_spec.rb
564
549
  - spec/weeler/i18n/humanize_missing_translations_spec.rb
565
550
  - weeler.gemspec
@@ -567,7 +552,7 @@ homepage: ''
567
552
  licenses:
568
553
  - MIT
569
554
  metadata: {}
570
- post_install_message:
555
+ post_install_message:
571
556
  rdoc_options: []
572
557
  require_paths:
573
558
  - lib
@@ -582,8 +567,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
582
567
  - !ruby/object:Gem::Version
583
568
  version: '0'
584
569
  requirements: []
585
- rubygems_version: 3.1.2
586
- signing_key:
570
+ rubygems_version: 3.2.3
571
+ signing_key:
587
572
  specification_version: 4
588
573
  summary: CMS for weby.lv projects.
589
574
  test_files:
@@ -663,6 +648,7 @@ test_files:
663
648
  - spec/factories/translations.rb
664
649
  - spec/fixtures/.DS_Store
665
650
  - spec/fixtures/test.xlsx
651
+ - spec/fixtures/test_2020_format.xlsx
666
652
  - spec/routing/routes_spec.rb
667
653
  - spec/spec_helper.rb
668
654
  - spec/weeler/.DS_Store
@@ -674,6 +660,5 @@ test_files:
674
660
  - spec/weeler/i18n/backend/weeler/exporter_spec.rb
675
661
  - spec/weeler/i18n/backend/weeler/importer_spec.rb
676
662
  - spec/weeler/i18n/backend/weeler/lock_spec.rb
677
- - spec/weeler/i18n/backend/weeler/usage_logger_spec.rb
678
663
  - spec/weeler/i18n/backend/weeler_spec.rb
679
664
  - spec/weeler/i18n/humanize_missing_translations_spec.rb
@@ -1,2 +0,0 @@
1
- class Settings < RailsSettings::Base
2
- end
@@ -1,34 +0,0 @@
1
- .header.container
2
- .row
3
- .col-lg-12
4
- .page-header
5
- %h1 Translation stats
6
- %p.lead.text-muted
7
- - if Settings.log_key_usage == 'true'
8
- = 'Translation usage stat gathering is ON'
9
- - else
10
- = 'Translation usage stat gathering is OFF'
11
- %p.lead.text-muted
12
- = link_to 'Back to Translation list', {action: :index}
13
-
14
- .container
15
- .row
16
- .col-lg-12
17
- %table.table
18
- %thead
19
- %tr
20
- %th Usage
21
- %th Key
22
- %th text
23
- %tbody
24
- - @used_keys.each do |key, usage|
25
- - begin
26
- %tr
27
- %td= usage
28
- %td= key.to_s.gsub('usage_stats/en/', '')
29
- %td= CGI::unescapeHTML(CGI::escapeHTML(t(key.to_s.gsub('usage_stats/en/', ''))))
30
- - rescue => e
31
- %tr
32
- %td= "err #{usage}"
33
- %td= key
34
- %td= e.message
@@ -1,11 +0,0 @@
1
- class CreateWeelerTranslationStats < ActiveRecord::Migration
2
- def change
3
- create_table :weeler_translation_stats do |t|
4
- t.string :key
5
- t.integer :usage_count, default: 0
6
-
7
- t.timestamps
8
- end
9
- add_index :weeler_translation_stats, :key
10
- end
11
- end