workarea-core 3.4.31 → 3.4.36

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
- SHA256:
3
- metadata.gz: 299de23bea1f758a6c81b220df516b433a75b8d68feed5317ed1bc83a2a4bac9
4
- data.tar.gz: 826455dd3ea5fe721feb372936ac4a6b169ae7c3256ce98cee94f1b3c1fd19ff
2
+ SHA1:
3
+ metadata.gz: 1373c61a73f6d680811a7d550880438838dfc1cf
4
+ data.tar.gz: 8896491055161cf76bbc7a754ca6915ab7d9efbf
5
5
  SHA512:
6
- metadata.gz: b612026e5219dbefac87be6a897a43cff75b2fa045d62af44ef9bac1d27ef658e5c8c38cc25526bb52898841ee3b71d43caf89450e641d1c60ef68b1c7d65fe5
7
- data.tar.gz: 336720cc69f36b67ee3706d424df574e04459a55221aa6e04dec7c09b920d6763f5983d5aef7bfeb778535c8c5b288a4ea48e8c18eeeaff39017245e1ba9e5d5
6
+ metadata.gz: 1af722113dc9bf6ae7efb1cae8abb3c961c2e9c6ac1232b9aee2c88629d0cf4d7d2b2865559750f314497e278c2973b25edccf957e1e0141741316f86d8b4d30
7
+ data.tar.gz: cb2186de83c1f83fef21b96356d0e0ea41f67bd848faa7db2fe8eba77d4e7848038570343c71f5ed178c4d093e19beb0b3fb2960b235a332bd508b565f4d5b3d
@@ -36,15 +36,15 @@ module Workarea
36
36
  end
37
37
 
38
38
  def apply_details!(product)
39
- HashUpdate
40
- .new(adds: add_details, removes: remove_details)
41
- .apply(product.details)
39
+ product.details = HashUpdate
40
+ .new(original: product.details, adds: add_details, removes: remove_details)
41
+ .result
42
42
  end
43
43
 
44
44
  def apply_filters!(product)
45
- HashUpdate
46
- .new(adds: add_filters, removes: remove_filters)
47
- .apply(product.filters)
45
+ product.filters = HashUpdate
46
+ .new(original: product.filters, adds: add_filters, removes: remove_filters)
47
+ .result
48
48
  end
49
49
 
50
50
  def apply_pricing!(product)
@@ -21,7 +21,7 @@ module Workarea
21
21
  end
22
22
 
23
23
  def keywords
24
- super + model.promo_codes
24
+ super + Array.wrap(model.try(:promo_codes))
25
25
  end
26
26
 
27
27
  def facets
@@ -7,7 +7,10 @@ module Workarea
7
7
  end
8
8
 
9
9
  def per_page
10
- params[:per_page].presence || Workarea.config.per_page
10
+ return Workarea.config.per_page if params[:per_page].blank?
11
+
12
+ tmp = params[:per_page].to_i
13
+ tmp > 0 ? tmp : Workarea.config.per_page
11
14
  end
12
15
 
13
16
  def size
@@ -4,7 +4,7 @@ module Workarea
4
4
  attr_reader :params
5
5
 
6
6
  def initialize(params)
7
- @params = params
7
+ @params = params.with_indifferent_access.except(:per_page)
8
8
  @used_middleware = []
9
9
  end
10
10
 
@@ -6,22 +6,26 @@ module Workarea
6
6
  uri = URI.parse(request_url)
7
7
  url = "#{uri.scheme}://#{uri.host}"
8
8
  url += ":#{uri.port}" unless uri.port.in? [80, 443]
9
+ id = "direct_upload_#{url}"
9
10
 
10
- redis_key = "cors_#{url.optionize}"
11
- return if Workarea.redis.get(redis_key) == 'true'
11
+ response = begin
12
+ Workarea.s3.get_bucket_cors(Configuration::S3.bucket)
13
+ rescue Excon::Error::NotFound
14
+ Excon::Response.new(body: { 'CORSConfiguration' => [] })
15
+ end
12
16
 
13
- response = Workarea.s3.get_bucket_cors(Configuration::S3.bucket)
14
17
  cors = response.data[:body]
15
- cors['CORSConfiguration'] << {
16
- 'ID' => "direct_upload_#{url}",
17
- 'AllowedMethod' => 'PUT',
18
- 'AllowedOrigin' => url,
19
- 'AllowedHeader' => '*'
20
- }
21
- cors['CORSConfiguration'].uniq!
22
-
23
- Workarea.s3.put_bucket_cors(Configuration::S3.bucket, cors)
24
- Workarea.redis.set(redis_key, 'true')
18
+
19
+ unless cors['CORSConfiguration'].pluck('ID').include?(id)
20
+ cors['CORSConfiguration'] << {
21
+ 'ID' => id,
22
+ 'AllowedMethod' => 'PUT',
23
+ 'AllowedOrigin' => url,
24
+ 'AllowedHeader' => '*'
25
+ }
26
+
27
+ Workarea.s3.put_bucket_cors(Configuration::S3.bucket, cors)
28
+ end
25
29
  end
26
30
 
27
31
  attr_reader :type, :filename
@@ -5,13 +5,30 @@ module Workarea
5
5
  parsed.map(&:to_s).map(&:strip).reject(&:blank?) if parsed.present?
6
6
  end
7
7
 
8
- def initialize(adds: [], updates: [], removes: [])
8
+ def initialize(original: {}, adds: [], updates: [], removes: [])
9
+ @original = original
9
10
  @adds = Array(adds).flatten.each_slice(2).to_a
10
11
  @updates = Array(updates).flatten.each_slice(2).to_a
11
12
  @removes = Array(removes).flatten
12
13
  end
13
14
 
15
+ def result
16
+ apply_to(@original.deep_dup)
17
+ end
18
+
19
+ # TODO v3.6 remove this method, doesn't work when the field is localized
20
+ # @deprecated
14
21
  def apply(hash)
22
+ warn <<~eos
23
+ [DEPRECATION] `HashUpdate#apply` is deprecated and will be removed in
24
+ version 3.6.0. Please use `HashUpdate#result` instead.
25
+ eos
26
+ apply_to(hash)
27
+ end
28
+
29
+ private
30
+
31
+ def apply_to(hash)
15
32
  @adds.each do |tuple|
16
33
  key, value = *tuple
17
34
  hash[key] = self.class.parse_values(value)
@@ -17,11 +17,11 @@ module Workarea
17
17
  import.process!
18
18
 
19
19
  ensure
20
- if import.error?
20
+ if import&.error?
21
21
  Admin::DataFileMailer.import_error(id).deliver_now
22
- elsif import.failure?
22
+ elsif import&.failure?
23
23
  Admin::DataFileMailer.import_failure(id).deliver_now
24
- else
24
+ elsif import.present?
25
25
  Admin::DataFileMailer.import(id).deliver_now
26
26
  end
27
27
  end
@@ -12,7 +12,9 @@ namespace :workarea do
12
12
  require 'sidekiq/testing/inline' unless ENV['INLINE'] == 'false'
13
13
  puts 'Indexing admin...'
14
14
 
15
- Workarea::Search::Admin.reset_indexes!
15
+ Workarea::QueuesPauser.with_paused_queues do
16
+ Workarea::Search::Admin.reset_indexes!
17
+ end
16
18
 
17
19
  Mongoid.models.each do |klass|
18
20
  next unless Workarea::Search::Admin.for(klass.first).present?
@@ -32,8 +34,10 @@ namespace :workarea do
32
34
  require 'sidekiq/testing/inline' unless ENV['INLINE'] == 'false'
33
35
  puts 'Indexing storefront...'
34
36
 
35
- Workarea::Search::Storefront.reset_indexes!
36
- Workarea::Search::Storefront.ensure_dynamic_mappings
37
+ Workarea::QueuesPauser.with_paused_queues do
38
+ Workarea::Search::Storefront.reset_indexes!
39
+ Workarea::Search::Storefront.ensure_dynamic_mappings
40
+ end
37
41
 
38
42
  # This code finds all unique filters for products so we can index a sample
39
43
  # product for each to ensure the dynamic mappings get created.
@@ -79,7 +83,9 @@ namespace :workarea do
79
83
  require 'sidekiq/testing/inline' unless ENV['INLINE'] == 'false'
80
84
  puts 'Indexing help...'
81
85
 
82
- Workarea::Search::Help.reset_indexes!
86
+ Workarea::QueuesPauser.with_paused_queues do
87
+ Workarea::Search::Help.reset_indexes!
88
+ end
83
89
 
84
90
  Workarea::Help::Article.all.each_by(100) do |help_article|
85
91
  Workarea::Search::Help.new(help_article).save
@@ -67,7 +67,7 @@ namespace :workarea do
67
67
  message << " #{line.strip}"
68
68
  end
69
69
  end
70
- message << " #{entry[:author]}\n"
70
+ message << "\n #{entry[:author]}\n"
71
71
  end
72
72
 
73
73
  # ensure and append to changelog
@@ -127,6 +127,7 @@ require 'workarea/ext/freedom_patches/net_http_ssl_connection'
127
127
  require 'workarea/ext/freedom_patches/dragonfly_job_fetch_url'
128
128
  require 'workarea/ext/freedom_patches/dragonfly_callable_url_host'
129
129
  require 'workarea/ext/freedom_patches/mongoid_localized_defaults'
130
+ require 'workarea/ext/freedom_patches/i18n_js'
130
131
  require 'workarea/ext/mongoid/list_field'
131
132
  require 'workarea/ext/mongoid/each_by'
132
133
  require 'workarea/ext/mongoid/except'
@@ -138,6 +139,7 @@ require 'workarea/ext/mongoid/audit_log_entry.decorator'
138
139
  require 'workarea/ext/mongoid/find_ordered'
139
140
  require 'workarea/ext/sprockets/ruby_processor'
140
141
  require 'workarea/ext/jbuilder/jbuilder_append_partials'
142
+ require 'workarea/ext/jbuilder/jbuilder_cache'
141
143
 
142
144
  if Rails.env.development?
143
145
  require 'workarea/ext/freedom_patches/routes_reloader'
@@ -207,6 +209,7 @@ require 'workarea/cache'
207
209
  require 'workarea/scheduled_jobs'
208
210
  require 'workarea/string_id'
209
211
  require 'workarea/mail_interceptor'
212
+ require 'workarea/queues_pauser'
210
213
 
211
214
  #
212
215
  # Engines
@@ -118,13 +118,12 @@ db.getSiblingDB("admin").runCommand( { setParameter: 1, notablescan: 0 } )
118
118
  **************************************************
119
119
  ⛔️ WARNING: Dragonfly is configured to use the filesystem.
120
120
 
121
- This means all dragonfly assets (assets, product images, etc.) will be stored
121
+ This means all Dragonfly assets (assets, product images, etc.) will be stored
122
122
  locally and not accessible to all servers within your environment.
123
123
 
124
124
  We recommend using S3 when running in a live environment by setting
125
- WORKAREA_S3_REGION and WORKAREA_S3_BUCKET_NAME in your environment variables.
126
- Workarea will automatically configure Dragonfly to use S3 if those values
127
- are present.
125
+ WORKAREA_S3_REGION and WORKAREA_S3_BUCKET_NAME in your environment variables,
126
+ and setting `Workarea.config.asset_store = :s3` in an initializer.
128
127
  **************************************************
129
128
  eos
130
129
  end
@@ -0,0 +1,27 @@
1
+ module I18n
2
+ module JS
3
+ class FallbackLocales
4
+ # i18n-js uses just the second part of this check out-of-the-box. This
5
+ # causes the I18n fallbacks to get autoloaded without the developer
6
+ # knowing.
7
+ #
8
+ # This surfaces in tests. System or integration tests will do this check
9
+ # for compiling assets, then I18n fallbacks get autoloaded. So this shows
10
+ # as some tests not having fallbacks if they run before one of those tests
11
+ # or magically having fallbacks if they run after one of those types of
12
+ # tests.
13
+ #
14
+ # Adding the `respond_to?` check doesn't cause autoload, but will return
15
+ # `true` if fallbacks are enabled. Retain the original check because we
16
+ # want the current I18n::JS backend to be checked, once fallbacks are
17
+ # `require`d `I18n.respond_to?(:fallbacks)` will always return `true`.
18
+ #
19
+ # See also: https://github.com/fnando/i18n-js/blob/master/lib/i18n/js/fallback_locales.rb#L49-L58
20
+ #
21
+ def using_i18n_fallbacks_module?
22
+ I18n.respond_to?(:fallbacks) &&
23
+ I18n::JS.backend.class.included_modules.include?(I18n::Backend::Fallbacks)
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,29 @@
1
+ decorate JbuilderTemplate, with: :workarea do
2
+ def _cache_fragment_for(*)
3
+ return yield if workarea_admin?
4
+
5
+ super
6
+ end
7
+
8
+ def _cache_key(*)
9
+ super.tap do |result|
10
+ result << workarea_cache_varies if workarea_cache_varies.present?
11
+ end
12
+ end
13
+
14
+ private
15
+
16
+ def workarea_admin?
17
+ @context&.controller&.current_user&.admin?
18
+ rescue ::RuntimeError
19
+ false
20
+ end
21
+
22
+ def workarea_cache_varies
23
+ workarea_request_env['workarea.cache_varies']
24
+ end
25
+
26
+ def workarea_request_env
27
+ @context.controller.request.env || {}
28
+ end
29
+ end
@@ -0,0 +1,26 @@
1
+ module Workarea
2
+ module QueuesPauser
3
+ extend self
4
+
5
+ def pause_queues!
6
+ pauser = Sidekiq::Throttled::QueuesPauser.instance
7
+ queues.each { |queue| pauser.pause!(queue) }
8
+ end
9
+
10
+ def resume_queues!
11
+ pauser = Sidekiq::Throttled::QueuesPauser.instance
12
+ queues.each { |queue| pauser.resume!(queue) }
13
+ end
14
+
15
+ def with_paused_queues(&block)
16
+ pause_queues!
17
+ yield
18
+ ensure
19
+ resume_queues!
20
+ end
21
+
22
+ def queues
23
+ Configuration::Sidekiq.queues
24
+ end
25
+ end
26
+ end
@@ -2,7 +2,7 @@ module Workarea
2
2
  module VERSION
3
3
  MAJOR = 3
4
4
  MINOR = 4
5
- PATCH = 31
5
+ PATCH = 36
6
6
  PRE = nil
7
7
 
8
8
  STRING = [MAJOR, MINOR, PATCH, PRE].compact.join('.')
@@ -19,6 +19,15 @@ module Workarea
19
19
  assert_equal(1, Paginate.new(page: 'asdf').page)
20
20
  end
21
21
 
22
+ def test_per_page
23
+ assert_equal(Workarea.config.per_page, Paginate.new.per_page)
24
+ assert_equal(2, Paginate.new(per_page: 2).per_page)
25
+ assert_equal(Workarea.config.per_page, Paginate.new(per_page: -1).per_page)
26
+ assert_equal(Workarea.config.per_page, Paginate.new(per_page: 0).per_page)
27
+ assert_equal(3, Paginate.new(per_page: '3').per_page)
28
+ assert_equal(Workarea.config.per_page, Paginate.new(per_page: 'asdf').per_page)
29
+ end
30
+
22
31
  def test_from
23
32
  Workarea.with_config do |config|
24
33
  config.per_page = 30
@@ -410,6 +410,9 @@ module Workarea
410
410
  end
411
411
 
412
412
  def test_locale
413
+ # No simple way to run this test without fallbacks or localized fields
414
+ return unless Workarea.config.localized_active_fields
415
+
413
416
  set_locales(available: [:en, :es], default: :en, current: :en)
414
417
  Search::Storefront.reset_indexes!
415
418
 
@@ -108,11 +108,28 @@ module Workarea
108
108
  ).returns(true)
109
109
 
110
110
  assert(DirectUpload.ensure_cors!('http://test.host/admin/content_assets'))
111
- assert_equal('true', Workarea.redis.get('cors_http_test_host'))
112
111
  assert(DirectUpload.ensure_cors!('http://localhost:3000/admin/content_assets'))
113
- assert_equal('true', Workarea.redis.get('cors_http_localhost_3000'))
114
112
  assert(DirectUpload.ensure_cors!('https://example.com/admin/direct_uploads'))
115
- assert_equal('true', Workarea.redis.get('cors_https_example_com'))
113
+ end
114
+
115
+ def test_ensure_cors_with_no_existing_configuration
116
+ Workarea.s3.expects(:get_bucket_cors)
117
+ .raises(Excon::Errors::NotFound.new('CORS configuration does not exist'))
118
+
119
+
120
+ Workarea.s3.expects(:put_bucket_cors).with(
121
+ Configuration::S3.bucket,
122
+ 'CORSConfiguration' => [
123
+ {
124
+ 'ID' => "direct_upload_http://test.host",
125
+ 'AllowedMethod' => 'PUT',
126
+ 'AllowedOrigin' => 'http://test.host',
127
+ 'AllowedHeader' => '*'
128
+ }
129
+ ]
130
+ ).returns(true)
131
+
132
+ assert(DirectUpload.ensure_cors!('http://test.host/admin/content_assets'))
116
133
  end
117
134
 
118
135
  private
@@ -2,23 +2,23 @@ require 'test_helper'
2
2
 
3
3
  module Workarea
4
4
  class HashUpdateTest < TestCase
5
- def test_apply
6
- hash = { 'foo' => 'bar' }
5
+ def test_result
6
+ original = { 'foo' => 'bar' }
7
7
 
8
- HashUpdate.new(adds: %w(key value)).apply(hash)
9
- assert_equal(%w(value), hash['key'])
8
+ result = HashUpdate.new(original: original, adds: %w(key value)).result
9
+ assert_equal(%w(value), result['key'])
10
10
 
11
- HashUpdate.new(updates: %w(foo baz)).apply(hash)
12
- assert_equal(%w(baz), hash['foo'])
11
+ result = HashUpdate.new(original: original, updates: %w(foo baz)).result
12
+ assert_equal(%w(baz), result['foo'])
13
13
 
14
- HashUpdate.new(removes: %w(foo)).apply(hash)
15
- refute_includes(hash.keys, 'foo')
14
+ result = HashUpdate.new(original: original, removes: %w(foo)).result
15
+ refute_includes(result.keys, 'foo')
16
16
 
17
- HashUpdate.new(adds: ['key', 'one, two ']).apply(hash)
18
- assert_equal(%w(one two), hash['key'])
17
+ result = HashUpdate.new(original: original, adds: ['key', 'one, two ']).result
18
+ assert_equal(%w(one two), result['key'])
19
19
 
20
- HashUpdate.new(updates: ['key', 'one, two, three ']).apply(hash)
21
- assert_equal(%w(one two three), hash['key'])
20
+ result = HashUpdate.new(original: original, updates: ['key', 'one, two, three ']).result
21
+ assert_equal(%w(one two three), result['key'])
22
22
  end
23
23
  end
24
24
  end
@@ -53,5 +53,11 @@ module Workarea
53
53
  t('workarea.admin.data_file_mailer.import_failure.errors')
54
54
  )
55
55
  end
56
+
57
+ def test_perform_with_missing_import
58
+ assert_raises Mongoid::Errors::DocumentNotFound do
59
+ ProcessImport.new.perform('foo')
60
+ end
61
+ end
56
62
  end
57
63
  end
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
24
24
  s.add_dependency 'mongoid-tree', '~> 2.1.0'
25
25
  s.add_dependency 'mongoid-sample', '~> 0.1.0'
26
26
  s.add_dependency 'elasticsearch', '~> 5.0.1'
27
- s.add_dependency 'kaminari', '~> 0.17.0'
27
+ s.add_dependency 'kaminari', '~> 1.2.1'
28
28
  s.add_dependency 'kaminari-mongoid', '~> 0.1.2'
29
29
  s.add_dependency 'activemerchant', '~> 1.52'
30
30
  s.add_dependency 'dragonfly', '~> 1.1.2'
@@ -32,7 +32,7 @@ Gem::Specification.new do |s|
32
32
  s.add_dependency 'sidekiq-cron', '~> 0.6.3'
33
33
  s.add_dependency 'sidekiq-unique-jobs', '~> 6.0.6'
34
34
  s.add_dependency 'sidekiq-throttled', '~> 0.8.2'
35
- s.add_dependency 'geocoder', '~> 1.4.4'
35
+ s.add_dependency 'geocoder', '~> 1.6.3'
36
36
  s.add_dependency 'redis-rails', '~> 5.0.0'
37
37
  s.add_dependency 'redis-rack-cache', '~> 2.2.0'
38
38
  s.add_dependency 'easymon', '~> 1.4.0'
@@ -65,7 +65,7 @@ Gem::Specification.new do |s|
65
65
  s.add_dependency 'chart-horizontalbar-rails', '~> 1.0.4' # TODO remove v4
66
66
  s.add_dependency 'select2-rails', '~> 4.0.3'
67
67
  s.add_dependency 'wysihtml-rails', '~> 0.6.0.beta2'
68
- s.add_dependency 'rack-attack', '~> 5.0.1'
68
+ s.add_dependency 'rack-attack', '~> 6.3.1'
69
69
  s.add_dependency 'jquery-livetype-rails', '~> 0.1.0' # TODO remove v4
70
70
  s.add_dependency 'redcarpet', '~> 3.4.0'
71
71
  s.add_dependency 'jquery-unique-clone-rails', '~> 1.0.0'
@@ -92,7 +92,7 @@ Gem::Specification.new do |s|
92
92
  s.add_dependency 'logstasher', '~> 1.2.2'
93
93
  s.add_dependency 'chartkick', '~> 3.3.0'
94
94
  s.add_dependency 'puma', '>= 4.3.1'
95
- s.add_dependency 'rack' , '>= 2.0.8'
95
+ s.add_dependency 'rack' , '>= 2.1.4'
96
96
 
97
97
  # HACK for vendoring active_shipping
98
98
  s.add_dependency 'active_utils', '~> 3.3.1'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: workarea-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.31
4
+ version: 3.4.36
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Crouse
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-15 00:00:00.000000000 Z
11
+ date: 2020-07-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -156,14 +156,14 @@ dependencies:
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: 0.17.0
159
+ version: 1.2.1
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: 0.17.0
166
+ version: 1.2.1
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: kaminari-mongoid
169
169
  requirement: !ruby/object:Gem::Requirement
@@ -268,14 +268,14 @@ dependencies:
268
268
  requirements:
269
269
  - - "~>"
270
270
  - !ruby/object:Gem::Version
271
- version: 1.4.4
271
+ version: 1.6.3
272
272
  type: :runtime
273
273
  prerelease: false
274
274
  version_requirements: !ruby/object:Gem::Requirement
275
275
  requirements:
276
276
  - - "~>"
277
277
  - !ruby/object:Gem::Version
278
- version: 1.4.4
278
+ version: 1.6.3
279
279
  - !ruby/object:Gem::Dependency
280
280
  name: redis-rails
281
281
  requirement: !ruby/object:Gem::Requirement
@@ -730,14 +730,14 @@ dependencies:
730
730
  requirements:
731
731
  - - "~>"
732
732
  - !ruby/object:Gem::Version
733
- version: 5.0.1
733
+ version: 6.3.1
734
734
  type: :runtime
735
735
  prerelease: false
736
736
  version_requirements: !ruby/object:Gem::Requirement
737
737
  requirements:
738
738
  - - "~>"
739
739
  - !ruby/object:Gem::Version
740
- version: 5.0.1
740
+ version: 6.3.1
741
741
  - !ruby/object:Gem::Dependency
742
742
  name: jquery-livetype-rails
743
743
  requirement: !ruby/object:Gem::Requirement
@@ -882,22 +882,22 @@ dependencies:
882
882
  name: minitest
883
883
  requirement: !ruby/object:Gem::Requirement
884
884
  requirements:
885
- - - ">="
886
- - !ruby/object:Gem::Version
887
- version: 5.10.1
888
885
  - - "~>"
889
886
  - !ruby/object:Gem::Version
890
887
  version: 5.10.3
888
+ - - ">="
889
+ - !ruby/object:Gem::Version
890
+ version: 5.10.1
891
891
  type: :runtime
892
892
  prerelease: false
893
893
  version_requirements: !ruby/object:Gem::Requirement
894
894
  requirements:
895
- - - ">="
896
- - !ruby/object:Gem::Version
897
- version: 5.10.1
898
895
  - - "~>"
899
896
  - !ruby/object:Gem::Version
900
897
  version: 5.10.3
898
+ - - ">="
899
+ - !ruby/object:Gem::Version
900
+ version: 5.10.1
901
901
  - !ruby/object:Gem::Dependency
902
902
  name: countries
903
903
  requirement: !ruby/object:Gem::Requirement
@@ -1114,14 +1114,14 @@ dependencies:
1114
1114
  requirements:
1115
1115
  - - ">="
1116
1116
  - !ruby/object:Gem::Version
1117
- version: 2.0.8
1117
+ version: 2.1.4
1118
1118
  type: :runtime
1119
1119
  prerelease: false
1120
1120
  version_requirements: !ruby/object:Gem::Requirement
1121
1121
  requirements:
1122
1122
  - - ">="
1123
1123
  - !ruby/object:Gem::Version
1124
- version: 2.0.8
1124
+ version: 2.1.4
1125
1125
  - !ruby/object:Gem::Dependency
1126
1126
  name: active_utils
1127
1127
  requirement: !ruby/object:Gem::Requirement
@@ -1855,6 +1855,7 @@ files:
1855
1855
  - lib/workarea/ext/freedom_patches/dragonfly_job_fetch_url.rb
1856
1856
  - lib/workarea/ext/freedom_patches/float.rb
1857
1857
  - lib/workarea/ext/freedom_patches/global_id.rb
1858
+ - lib/workarea/ext/freedom_patches/i18n_js.rb
1858
1859
  - lib/workarea/ext/freedom_patches/money.rb
1859
1860
  - lib/workarea/ext/freedom_patches/mongoid_localized_defaults.rb
1860
1861
  - lib/workarea/ext/freedom_patches/mongoid_simple_tags.rb
@@ -1863,6 +1864,7 @@ files:
1863
1864
  - lib/workarea/ext/freedom_patches/string.rb
1864
1865
  - lib/workarea/ext/freedom_patches/uri.rb
1865
1866
  - lib/workarea/ext/jbuilder/jbuilder_append_partials.rb
1867
+ - lib/workarea/ext/jbuilder/jbuilder_cache.rb
1866
1868
  - lib/workarea/ext/mongoid/audit_log_entry.decorator
1867
1869
  - lib/workarea/ext/mongoid/each_by.rb
1868
1870
  - lib/workarea/ext/mongoid/error.rb
@@ -1894,6 +1896,7 @@ files:
1894
1896
  - lib/workarea/ping_home_base.rb
1895
1897
  - lib/workarea/plugin.rb
1896
1898
  - lib/workarea/plugin/asset_appends_helper.rb
1899
+ - lib/workarea/queues_pauser.rb
1897
1900
  - lib/workarea/robots.rb
1898
1901
  - lib/workarea/routes_constraints/redirect.rb
1899
1902
  - lib/workarea/routes_constraints/super_admin.rb
@@ -2611,7 +2614,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
2611
2614
  - !ruby/object:Gem::Version
2612
2615
  version: '0'
2613
2616
  requirements: []
2614
- rubygems_version: 3.0.3
2617
+ rubyforge_project:
2618
+ rubygems_version: 2.6.14.1
2615
2619
  signing_key:
2616
2620
  specification_version: 4
2617
2621
  summary: Core of the Workarea Commerce Platform