workarea-core 3.5.0.beta.1 → 3.5.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 (66) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/workarea/current_tracking.rb +4 -0
  3. data/app/models/workarea/checkout/collect_payment.rb +5 -5
  4. data/app/models/workarea/data_file/operation.rb +4 -0
  5. data/app/models/workarea/fulfillment/policies/base.rb +0 -4
  6. data/app/models/workarea/fulfillment/policies/{ignore.rb → shipping.rb} +2 -2
  7. data/app/models/workarea/fulfillment/sku.rb +0 -2
  8. data/app/models/workarea/insights/trending_searches.rb +8 -1
  9. data/app/models/workarea/metrics/search_by_day.rb +2 -0
  10. data/app/models/workarea/order.rb +12 -2
  11. data/app/models/workarea/order/item.rb +28 -2
  12. data/app/models/workarea/pricing/calculators/tax_calculator.rb +2 -2
  13. data/app/models/workarea/pricing/discount.rb +3 -2
  14. data/app/models/workarea/releasable.rb +3 -5
  15. data/app/models/workarea/reports/custom_event.rb +22 -0
  16. data/app/models/workarea/search/admin/releasable.rb +18 -6
  17. data/app/models/workarea/segment/life_cycle.rb +5 -5
  18. data/app/models/workarea/segment/rules/last_order.rb +9 -2
  19. data/app/models/workarea/segment/rules/traffic_referrer.rb +16 -5
  20. data/app/models/workarea/segmentable.rb +13 -0
  21. data/app/models/workarea/traffic_referrer.rb +3 -0
  22. data/app/queries/workarea/alerts.rb +21 -0
  23. data/app/queries/workarea/order_item_details.rb +16 -16
  24. data/app/queries/workarea/search/admin_index_search.rb +2 -1
  25. data/app/queries/workarea/search/product_display_rules.rb +0 -2
  26. data/app/services/workarea/direct_upload.rb +5 -0
  27. data/app/services/workarea/packaging.rb +1 -1
  28. data/app/workers/workarea/deactivate_stale_discounts.rb +1 -1
  29. data/app/workers/workarea/synchronize_user_metrics.rb +9 -0
  30. data/config/locales/en.yml +22 -0
  31. data/lib/tasks/migrate.rake +9 -12
  32. data/lib/workarea/configuration.rb +6 -6
  33. data/lib/workarea/configuration/redis.rb +21 -3
  34. data/lib/workarea/core.rb +3 -0
  35. data/lib/workarea/ext/freedom_patches/referer_parser.rb +7 -0
  36. data/lib/workarea/ext/mongoid/embedded_children.rb +20 -0
  37. data/lib/workarea/latest_version.rb +24 -0
  38. data/lib/workarea/ping_home_base.rb +0 -1
  39. data/lib/workarea/version.rb +1 -1
  40. data/lib/workarea/visit.rb +5 -2
  41. data/lib/workarea/warnings.rb +6 -6
  42. data/test/lib/workarea/ext/mongoid/embedded_children_test.rb +32 -0
  43. data/test/lib/workarea/latest_version_test.rb +11 -0
  44. data/test/models/workarea/checkout/collect_payment_test.rb +6 -6
  45. data/test/models/workarea/data_file/csv_test.rb +15 -0
  46. data/test/models/workarea/fulfillment/sku_test.rb +5 -5
  47. data/test/models/workarea/insights/cold_searches_test.rb +13 -11
  48. data/test/models/workarea/insights/hot_searches_test.rb +13 -11
  49. data/test/models/workarea/insights/searches_to_improve_test.rb +9 -6
  50. data/test/models/workarea/insights/star_searches_test.rb +5 -4
  51. data/test/models/workarea/insights/trending_searches_test.rb +12 -9
  52. data/test/models/workarea/pricing/calculators/tax_calculator_test.rb +1 -1
  53. data/test/models/workarea/search/admin/releasable_test.rb +5 -7
  54. data/test/models/workarea/segment/life_cycle_test.rb +5 -0
  55. data/test/models/workarea/segment/rules/last_order_test.rb +15 -3
  56. data/test/models/workarea/segment/rules/traffic_referrer_test.rb +10 -8
  57. data/test/models/workarea/segmentable_test.rb +18 -0
  58. data/test/queries/workarea/alerts_test.rb +11 -0
  59. data/test/queries/workarea/order_item_details_test.rb +4 -12
  60. data/test/services/workarea/direct_upload_test.rb +3 -0
  61. data/test/vcr_cassettes/get_latest_version.yml +90 -0
  62. data/test/workers/workarea/deactivate_stale_discounts_test.rb +2 -2
  63. data/workarea-core.gemspec +2 -3
  64. metadata +16 -25
  65. data/app/controllers/workarea/current_referrer.rb +0 -14
  66. data/app/models/workarea/fulfillment/policies/ship.rb +0 -15
@@ -128,7 +128,7 @@ module Workarea
128
128
  order = Order.new(
129
129
  items: [
130
130
  {
131
- requires_shipping: false,
131
+ fulfillment: 'download',
132
132
  price_adjustments: [
133
133
  {
134
134
  price: 'item',
@@ -9,23 +9,21 @@ module Workarea
9
9
  end
10
10
 
11
11
  def test_facets
12
- releasable = create_page(name: 'Foo')
12
+ releasable = create_page(name: 'Foo', active_segment_ids: %w(foo bar))
13
+ content = Workarea::Content.for(releasable)
14
+ content.blocks.create!(type: 'html', active_segment_ids: %w(bar baz))
13
15
 
14
16
  release_one = create_release
15
17
  release_two = create_release
16
18
  release_three = create_release
17
19
 
18
20
  release_one.as_current { releasable.update_attributes!(name: 'Bar') }
19
-
20
- release_two.as_current do
21
- content = Workarea::Content.for(releasable)
22
- content.update_attributes!(browser_title: 'Foo')
23
- end
24
-
21
+ release_two.as_current { content.update_attributes!(browser_title: 'Foo') }
25
22
  release_three.as_current { releasable.update_attributes!(name: 'Bar') }
26
23
  release_three.update_attributes!(published_at: Time.current)
27
24
 
28
25
  search_model = Foo.new(releasable)
26
+ assert_equal(search_model.facets[:active_by_segment], %w(foo bar baz))
29
27
  assert_includes(search_model.facets[:upcoming_changes], release_one.id)
30
28
  assert_includes(search_model.facets[:upcoming_changes], release_two.id)
31
29
  refute_includes(search_model.facets[:upcoming_changes], release_three.id)
@@ -8,6 +8,11 @@ module Workarea
8
8
  self.default_rules = [Rules::Orders.new(maximum: 0)]
9
9
  end
10
10
 
11
+ def test_name_given
12
+ life_cycle = FooSegment.instance # create it
13
+ assert_equal('Foo Segment', life_cycle.name)
14
+ end
15
+
11
16
  def test_cannot_destroy
12
17
  life_cycle = FooSegment.instance # create it
13
18
 
@@ -16,15 +16,27 @@ module Workarea
16
16
 
17
17
  metrics.update_attributes!(last_order_at: 8.days.ago)
18
18
  visit = create_visit(email: 'bcrouse@workarea.com')
19
- refute(LastOrder.new(days: 7).qualifies?(visit))
19
+ refute(LastOrder.new(days: 7, within: true).qualifies?(visit))
20
+
21
+ metrics.update_attributes!(last_order_at: 7.days.ago)
22
+ visit = create_visit(email: 'bcrouse@workarea.com')
23
+ assert(LastOrder.new(days: 7, within: true).qualifies?(visit))
24
+
25
+ metrics.update_attributes!(last_order_at: 6.days.ago)
26
+ visit = create_visit(email: 'bcrouse@workarea.com')
27
+ assert(LastOrder.new(days: 7, within: true).qualifies?(visit))
28
+
29
+ metrics.update_attributes!(last_order_at: 8.days.ago)
30
+ visit = create_visit(email: 'bcrouse@workarea.com')
31
+ assert(LastOrder.new(days: 7, within: false).qualifies?(visit))
20
32
 
21
33
  metrics.update_attributes!(last_order_at: 7.days.ago)
22
34
  visit = create_visit(email: 'bcrouse@workarea.com')
23
- assert(LastOrder.new(days: 7).qualifies?(visit))
35
+ refute(LastOrder.new(days: 7, within: false).qualifies?(visit))
24
36
 
25
37
  metrics.update_attributes!(last_order_at: 6.days.ago)
26
38
  visit = create_visit(email: 'bcrouse@workarea.com')
27
- assert(LastOrder.new(days: 7).qualifies?(visit))
39
+ refute(LastOrder.new(days: 7, within: false).qualifies?(visit))
28
40
  end
29
41
  end
30
42
  end
@@ -12,18 +12,20 @@ module Workarea
12
12
  refute(TrafficReferrer.new.qualifies?(visit))
13
13
 
14
14
  visit = create_visit('HTTP_REFERER' => 'https://www.google.com/')
15
- assert(TrafficReferrer.new(source: 'google').qualifies?(visit))
16
- assert(TrafficReferrer.new(source: ' Google').qualifies?(visit))
15
+ assert(TrafficReferrer.new(source: %w(Google)).qualifies?(visit))
16
+ refute(TrafficReferrer.new(source: %w(Yahoo!)).qualifies?(visit))
17
17
  assert(TrafficReferrer.new(medium: 'Search').qualifies?(visit))
18
- refute(TrafficReferrer.new(source: 'Facebook ').qualifies?(visit))
19
- refute(TrafficReferrer.new(source: 'social').qualifies?(visit))
18
+ refute(TrafficReferrer.new(medium: 'Social').qualifies?(visit))
19
+ assert(TrafficReferrer.new(url: 'google').qualifies?(visit))
20
+ refute(TrafficReferrer.new(url: 'twitter').qualifies?(visit))
20
21
 
21
22
  visit = create_visit('HTTP_REFERER' => 'https://www.facebook.com/')
22
- refute(TrafficReferrer.new(source: ' Google').qualifies?(visit))
23
- refute(TrafficReferrer.new(medium: 'search').qualifies?(visit))
24
- assert(TrafficReferrer.new(source: 'facebook ').qualifies?(visit))
23
+ assert(TrafficReferrer.new(source: %w(Facebook)).qualifies?(visit))
24
+ refute(TrafficReferrer.new(source: %w(Google)).qualifies?(visit))
25
25
  assert(TrafficReferrer.new(medium: 'Social').qualifies?(visit))
26
- assert(TrafficReferrer.new(medium: 'Social', source: 'facebook|twitter').qualifies?(visit))
26
+ refute(TrafficReferrer.new(medium: 'Search').qualifies?(visit))
27
+ assert(TrafficReferrer.new(url: 'www').qualifies?(visit))
28
+ refute(TrafficReferrer.new(url: 'facebook$').qualifies?(visit))
27
29
  end
28
30
  end
29
31
  end
@@ -6,6 +6,13 @@ module Workarea
6
6
  include Mongoid::Document
7
7
  include Releasable
8
8
  include Segmentable
9
+ embeds_many :bars
10
+ end
11
+
12
+ class Bar
13
+ include Mongoid::Document
14
+ include Releasable
15
+ include Segmentable
9
16
  end
10
17
 
11
18
  def test_active_by_segment
@@ -70,5 +77,16 @@ module Workarea
70
77
  Segment.with_current(segment_one) { assert(model.reload.active?) }
71
78
  Segment.with_current(segment_two) { refute(model.reload.active?) }
72
79
  end
80
+
81
+ def test_active_segment_ids_with_children
82
+ model = Foo.new
83
+ assert_equal([], model.active_segment_ids_with_children)
84
+
85
+ model.active_segment_ids = %w(foo)
86
+ assert_equal(%w(foo), model.active_segment_ids_with_children)
87
+
88
+ model.bars = [{ active_segment_ids: %w(bar) }, { active_segment_ids: %w(baz) }]
89
+ assert_equal(%w(foo bar baz), model.active_segment_ids_with_children)
90
+ end
73
91
  end
74
92
  end
@@ -127,5 +127,16 @@ module Workarea
127
127
 
128
128
  assert_equal([empty], Alerts.new.empty_upcoming_releases)
129
129
  end
130
+
131
+ def test_missing_segments
132
+ segment = create_segment
133
+ product = create_product(active: true, active_segment_ids: [segment.id])
134
+ IndexAdminSearch.perform(product)
135
+
136
+ assert_equal([], Alerts.new.missing_segments)
137
+
138
+ segment.destroy!
139
+ assert_equal([segment.id.to_s], Alerts.new.missing_segments)
140
+ end
130
141
  end
131
142
  end
@@ -12,20 +12,12 @@ module Workarea
12
12
  assert_nil(OrderItemDetails.find('SKU1'))
13
13
  end
14
14
 
15
- def test_requires_shipping?
15
+ def test_fulfillment
16
16
  product = create_product(variants: [{ sku: 'SKU', regular: 5.00 }])
17
+ assert_equal('shipping', OrderItemDetails.find('SKU').to_h[:fulfillment])
17
18
 
18
- assert(OrderItemDetails.find('SKU').requires_shipping?)
19
-
20
- product.update(digital: true)
21
- refute(OrderItemDetails.find('SKU').requires_shipping?)
22
-
23
- product.update(digital: false)
24
- sku = create_fulfillment_sku(id: 'SKU', policy: :ignore)
25
- refute(OrderItemDetails.find('SKU').requires_shipping?)
26
-
27
- sku.update(policy: :download, file: product_image_file)
28
- refute(OrderItemDetails.find('SKU').requires_shipping?)
19
+ sku = create_fulfillment_sku(id: 'SKU', policy: 'download', file: product_image_file)
20
+ assert_equal('download', OrderItemDetails.find('SKU').to_h[:fulfillment])
29
21
  end
30
22
 
31
23
  def test_to_h
@@ -83,8 +83,11 @@ module Workarea
83
83
 
84
84
 
85
85
  assert(DirectUpload.ensure_cors!('http://test.host/admin/content_assets'))
86
+ assert_equal('true', Workarea.redis.get('cors_http_test_host'))
86
87
  assert(DirectUpload.ensure_cors!('http://localhost:3000/admin/content_assets'))
88
+ assert_equal('true', Workarea.redis.get('cors_http_localhost_3000'))
87
89
  assert(DirectUpload.ensure_cors!('https://example.com/admin/direct_uploads'))
90
+ assert_equal('true', Workarea.redis.get('cors_https_example_com'))
88
91
  end
89
92
 
90
93
  private
@@ -0,0 +1,90 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://rubygems.org/api/v1/gems/workarea.json
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ Content-Type:
17
+ - application/json
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ X-Frame-Options:
26
+ - SAMEORIGIN
27
+ X-Xss-Protection:
28
+ - 1; mode=block
29
+ X-Content-Type-Options:
30
+ - nosniff
31
+ X-Download-Options:
32
+ - noopen
33
+ X-Permitted-Cross-Domain-Policies:
34
+ - none
35
+ Referrer-Policy:
36
+ - strict-origin-when-cross-origin
37
+ Access-Control-Allow-Origin:
38
+ - "*"
39
+ Access-Control-Allow-Methods:
40
+ - GET
41
+ Access-Control-Max-Age:
42
+ - '1728000'
43
+ Cache-Control:
44
+ - max-age=0, private, must-revalidate
45
+ X-Request-Id:
46
+ - d6394d50-39fa-47e9-8bf2-95934b5a81f2
47
+ X-Runtime:
48
+ - '0.016960'
49
+ Strict-Transport-Security:
50
+ - max-age=120
51
+ X-Backend:
52
+ - F_Rails 54.186.104.15:443
53
+ Accept-Ranges:
54
+ - bytes
55
+ - bytes
56
+ Age:
57
+ - '0'
58
+ - '0'
59
+ Transfer-Encoding:
60
+ - chunked
61
+ Date:
62
+ - Wed, 20 Nov 2019 17:06:57 GMT
63
+ Via:
64
+ - 1.1 varnish
65
+ Connection:
66
+ - keep-alive
67
+ X-Served-By:
68
+ - cache-mia17625-MIA
69
+ X-Cache:
70
+ - MISS
71
+ X-Cache-Hits:
72
+ - '0'
73
+ X-Timer:
74
+ - S1574269618.874178,VS0,VE106
75
+ Vary:
76
+ - Accept-Encoding,Fastly-SSL
77
+ Etag:
78
+ - '"867cab3200a545c2c4f8be4b5ae4398a"'
79
+ Server:
80
+ - RubyGems.org
81
+ body:
82
+ encoding: ASCII-8BIT
83
+ string: '{"name":"workarea","downloads":6177,"version":"3.4.21","version_downloads":240,"platform":"ruby","authors":"Ben
84
+ Crouse","info":"Workarea is an enterprise-grade Ruby on Rails commerce platform.","licenses":["Business
85
+ Software License"],"metadata":{},"yanked":false,"sha":"ec79083b5dde751f4bca7a384ef132afbded16660344d4343144b0b3f4d3b57d","project_uri":"https://rubygems.org/gems/workarea","gem_uri":"https://rubygems.org/gems/workarea-3.4.21.gem","homepage_uri":"http://www.workarea.com","wiki_uri":null,"documentation_uri":"http://www.rubydoc.info/gems/workarea/3.4.21","mailing_list_uri":null,"source_code_uri":null,"bug_tracker_uri":null,"changelog_uri":null,"dependencies":{"development":[],"runtime":[{"name":"workarea-admin","requirements":"=
86
+ 3.4.21"},{"name":"workarea-core","requirements":"= 3.4.21"},{"name":"workarea-storefront","requirements":"=
87
+ 3.4.21"},{"name":"workarea-testing","requirements":"= 3.4.21"}]}}'
88
+ http_version:
89
+ recorded_at: Wed, 20 Nov 2019 17:06:57 GMT
90
+ recorded_with: VCR 2.9.3
@@ -4,7 +4,7 @@ module Workarea
4
4
  class DeactivateStaleDiscountsTest < TestCase
5
5
  def create_category_discount(attributes = {})
6
6
  before_ttl = (Workarea.config.discount_staleness_ttl + 1.day).ago
7
- super(attributes.reverse_merge(created_at: before_ttl))
7
+ super(attributes.reverse_merge(updated_at: before_ttl))
8
8
  end
9
9
 
10
10
  def test_perform
@@ -71,7 +71,7 @@ module Workarea
71
71
  end
72
72
 
73
73
  def test_all_active_discount_ids
74
- too_new = create_category_discount(active: true, created_at: Time.current)
74
+ too_new = create_category_discount(active: true, updated_at: Time.current)
75
75
  active = create_category_discount(active: true)
76
76
 
77
77
  worker = DeactivateStaleDiscounts.new
@@ -17,7 +17,6 @@ Gem::Specification.new do |s|
17
17
  s.add_dependency 'bundler', '>= 1.8.0' # 1.8.0 added env variable for secrets
18
18
  s.add_dependency 'rails', '~> 5.2.0'
19
19
  s.add_dependency 'mongoid', '~> 6.4.0'
20
- s.add_dependency 'bson', '~> 4.3.0'
21
20
  s.add_dependency 'bcrypt', '~> 3.1.10'
22
21
  s.add_dependency 'money-rails', '~> 1.12.0'
23
22
  s.add_dependency 'mongoid-audit_log', '>= 0.5.0'
@@ -35,7 +34,7 @@ Gem::Specification.new do |s|
35
34
  s.add_dependency 'sidekiq-unique-jobs', '~> 6.0.6'
36
35
  s.add_dependency 'sidekiq-throttled', '~> 0.8.2'
37
36
  s.add_dependency 'geocoder', '~> 1.4.4'
38
- s.add_dependency 'redis-rack-cache', '~> 2.0.2'
37
+ s.add_dependency 'redis-rack-cache', '~> 2.2.0'
39
38
  s.add_dependency 'easymon', '~> 1.4.0'
40
39
  s.add_dependency 'image_optim', '~> 0.26.0'
41
40
  s.add_dependency 'image_optim_pack', '0.5.0.20171101'
@@ -92,7 +91,7 @@ Gem::Specification.new do |s|
92
91
  s.add_dependency 'referer-parser', '~> 0.3.0'
93
92
  s.add_dependency 'serviceworker-rails', '~> 0.5.5'
94
93
  s.add_dependency 'logstasher', '~> 1.2.2'
95
- s.add_dependency 'chartkick', '~> 3.2.0'
94
+ s.add_dependency 'chartkick', '~> 3.3.0'
96
95
  s.add_dependency 'puma', '~> 4.0'
97
96
  s.add_dependency 'browser', '~> 2.6.1'
98
97
 
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.5.0.beta.1
4
+ version: 3.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Crouse
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-07 00:00:00.000000000 Z
11
+ date: 2019-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 6.4.0
55
- - !ruby/object:Gem::Dependency
56
- name: bson
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: 4.3.0
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: 4.3.0
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: bcrypt
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -310,14 +296,14 @@ dependencies:
310
296
  requirements:
311
297
  - - "~>"
312
298
  - !ruby/object:Gem::Version
313
- version: 2.0.2
299
+ version: 2.2.0
314
300
  type: :runtime
315
301
  prerelease: false
316
302
  version_requirements: !ruby/object:Gem::Requirement
317
303
  requirements:
318
304
  - - "~>"
319
305
  - !ruby/object:Gem::Version
320
- version: 2.0.2
306
+ version: 2.2.0
321
307
  - !ruby/object:Gem::Dependency
322
308
  name: easymon
323
309
  requirement: !ruby/object:Gem::Requirement
@@ -1114,14 +1100,14 @@ dependencies:
1114
1100
  requirements:
1115
1101
  - - "~>"
1116
1102
  - !ruby/object:Gem::Version
1117
- version: 3.2.0
1103
+ version: 3.3.0
1118
1104
  type: :runtime
1119
1105
  prerelease: false
1120
1106
  version_requirements: !ruby/object:Gem::Requirement
1121
1107
  requirements:
1122
1108
  - - "~>"
1123
1109
  - !ruby/object:Gem::Version
1124
- version: 3.2.0
1110
+ version: 3.3.0
1125
1111
  - !ruby/object:Gem::Dependency
1126
1112
  name: puma
1127
1113
  requirement: !ruby/object:Gem::Requirement
@@ -1222,7 +1208,6 @@ files:
1222
1208
  - app/controllers/workarea/application_controller.rb
1223
1209
  - app/controllers/workarea/authentication.rb
1224
1210
  - app/controllers/workarea/authorization.rb
1225
- - app/controllers/workarea/current_referrer.rb
1226
1211
  - app/controllers/workarea/current_release.rb
1227
1212
  - app/controllers/workarea/current_segments.rb
1228
1213
  - app/controllers/workarea/current_tracking.rb
@@ -1329,8 +1314,7 @@ files:
1329
1314
  - app/models/workarea/fulfillment/package.rb
1330
1315
  - app/models/workarea/fulfillment/policies/base.rb
1331
1316
  - app/models/workarea/fulfillment/policies/download.rb
1332
- - app/models/workarea/fulfillment/policies/ignore.rb
1333
- - app/models/workarea/fulfillment/policies/ship.rb
1317
+ - app/models/workarea/fulfillment/policies/shipping.rb
1334
1318
  - app/models/workarea/fulfillment/sku.rb
1335
1319
  - app/models/workarea/fulfillment/status.rb
1336
1320
  - app/models/workarea/fulfillment/token.rb
@@ -1516,6 +1500,7 @@ files:
1516
1500
  - app/models/workarea/release/preview.rb
1517
1501
  - app/models/workarea/release/status.rb
1518
1502
  - app/models/workarea/release_session.rb
1503
+ - app/models/workarea/reports/custom_event.rb
1519
1504
  - app/models/workarea/reports/export.rb
1520
1505
  - app/models/workarea/search/admin.rb
1521
1506
  - app/models/workarea/search/admin/catalog_category.rb
@@ -1939,12 +1924,14 @@ files:
1939
1924
  - lib/workarea/ext/freedom_patches/mongoid_simple_tags.rb
1940
1925
  - lib/workarea/ext/freedom_patches/net_http_ssl_connection.rb
1941
1926
  - lib/workarea/ext/freedom_patches/premailer.rb
1927
+ - lib/workarea/ext/freedom_patches/referer_parser.rb
1942
1928
  - lib/workarea/ext/freedom_patches/routes_reloader.rb
1943
1929
  - lib/workarea/ext/freedom_patches/string.rb
1944
1930
  - lib/workarea/ext/freedom_patches/uri.rb
1945
1931
  - lib/workarea/ext/jbuilder/jbuilder_append_partials.rb
1946
1932
  - lib/workarea/ext/mongoid/audit_log_entry.decorator
1947
1933
  - lib/workarea/ext/mongoid/each_by.rb
1934
+ - lib/workarea/ext/mongoid/embedded_children.rb
1948
1935
  - lib/workarea/ext/mongoid/error.rb
1949
1936
  - lib/workarea/ext/mongoid/except.rb
1950
1937
  - lib/workarea/ext/mongoid/find_ordered.rb
@@ -1957,6 +1944,7 @@ files:
1957
1944
  - lib/workarea/geolocation.rb
1958
1945
  - lib/workarea/i18n.rb
1959
1946
  - lib/workarea/image_optim_processor.rb
1947
+ - lib/workarea/latest_version.rb
1960
1948
  - lib/workarea/lint.rb
1961
1949
  - lib/workarea/lint/inconsistent_details.rb
1962
1950
  - lib/workarea/lint/products_missing_images.rb
@@ -2095,11 +2083,13 @@ files:
2095
2083
  - test/lib/workarea/ext/freedom_patches/mongoid_simple_tags_test.rb
2096
2084
  - test/lib/workarea/ext/mongoid/audit_log_entry_test.rb
2097
2085
  - test/lib/workarea/ext/mongoid/each_by_test.rb
2086
+ - test/lib/workarea/ext/mongoid/embedded_children_test.rb
2098
2087
  - test/lib/workarea/ext/mongoid/except_test.rb
2099
2088
  - test/lib/workarea/ext/mongoid/find_ordered_test.rb
2100
2089
  - test/lib/workarea/ext/mongoid/list_field_test.rb
2101
2090
  - test/lib/workarea/ext/mongoid/lookup_hash_test.rb
2102
2091
  - test/lib/workarea/geolocation_test.rb
2092
+ - test/lib/workarea/latest_version_test.rb
2103
2093
  - test/lib/workarea/lint/inconsistent_details_test.rb
2104
2094
  - test/lib/workarea/lint/products_missing_images_test.rb
2105
2095
  - test/lib/workarea/lint/products_missing_variants_test.rb
@@ -2443,6 +2433,7 @@ files:
2443
2433
  - test/teaspoon_env.rb
2444
2434
  - test/test_helper.rb
2445
2435
  - test/vcr_cassettes/csv_image_upload.yml
2436
+ - test/vcr_cassettes/get_latest_version.yml
2446
2437
  - test/view_models/workarea/shipping_carrier_view_model_test.rb
2447
2438
  - test/workarea_test.rb
2448
2439
  - test/workers/sidekiq/callbacks_test.rb
@@ -2722,9 +2713,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
2722
2713
  version: 2.7.0
2723
2714
  required_rubygems_version: !ruby/object:Gem::Requirement
2724
2715
  requirements:
2725
- - - ">"
2716
+ - - ">="
2726
2717
  - !ruby/object:Gem::Version
2727
- version: 1.3.1
2718
+ version: '0'
2728
2719
  requirements: []
2729
2720
  rubygems_version: 3.0.6
2730
2721
  signing_key: