weeler 2.0.0 → 2.1.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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -0
  3. data/.travis.yml +1 -2
  4. data/CHANGELOG.md +16 -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 +59 -57
  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
@@ -54,11 +54,10 @@ module Weeler
54
54
  collection do
55
55
  get :export
56
56
  post :import
57
- get :usage_stats
58
57
  end
59
58
  end
60
59
  resources :seo_items
61
- resources :settings, :only => [:index, :edit, :update]
60
+ resources :settings, :only => [:index, :update, :create]
62
61
  end
63
62
 
64
63
  # Ordable route concern for dynamic sorting and removing image
@@ -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
 
@@ -1,7 +1,7 @@
1
1
  module Weeler
2
2
  module VERSION
3
3
  MAJOR = 2
4
- MINOR = 0
4
+ MINOR = 1
5
5
  TINY = 0
6
6
  PRE = nil
7
7
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
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.1.0
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: 2023-08-12 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.22
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