workarea-emarsys 1.0.2

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 (114) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +20 -0
  3. data/.github/ISSUE_TEMPLATE/bug_report.md +37 -0
  4. data/.github/ISSUE_TEMPLATE/documentation-request.md +17 -0
  5. data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  6. data/.gitignore +22 -0
  7. data/CHANGELOG.md +28 -0
  8. data/CODE_OF_CONDUCT.md +3 -0
  9. data/CONTRIBUTING.md +3 -0
  10. data/Gemfile +12 -0
  11. data/LICENSE +52 -0
  12. data/LICENSE.md +3 -0
  13. data/README.md +93 -0
  14. data/Rakefile +60 -0
  15. data/app/assets/images/emarsys/.keep +0 -0
  16. data/app/assets/javascripts/emarsys/.keep +0 -0
  17. data/app/assets/javascripts/workarea/storefront/emarsys/modules/web_extend_adapter.js +128 -0
  18. data/app/assets/stylesheets/emarsys/.keep +0 -0
  19. data/app/controllers/.keep +0 -0
  20. data/app/controllers/workarea/admin/configurations_controller.rb +33 -0
  21. data/app/controllers/workarea/storefront/email_signups_controller.decorator +16 -0
  22. data/app/controllers/workarea/storefront/users/addresses_controller.decorator +13 -0
  23. data/app/helpers/.keep +0 -0
  24. data/app/helpers/workarea/storefront/emarsys_analytics_helper.rb +13 -0
  25. data/app/lib/workarea/emarsys/bogus_gateway.rb +36 -0
  26. data/app/lib/workarea/emarsys/gateway.rb +94 -0
  27. data/app/lib/workarea/emarsys/response.rb +18 -0
  28. data/app/lib/workarea/emarsys/sales_data_bogus_gateway.rb +29 -0
  29. data/app/lib/workarea/emarsys/sales_data_gateway.rb +51 -0
  30. data/app/models/emarsys/configuration.rb +16 -0
  31. data/app/models/emarsys/country.rb +220 -0
  32. data/app/models/workarea/email/signup.decorator +8 -0
  33. data/app/models/workarea/order.decorator +8 -0
  34. data/app/models/workarea/user.decorator +8 -0
  35. data/app/services/emarsys/contact/order.rb +31 -0
  36. data/app/services/emarsys/contact/user.rb +25 -0
  37. data/app/services/emarsys/contact.rb +55 -0
  38. data/app/view_models/workarea/admin/emarsys_configuration_view_model.rb +20 -0
  39. data/app/views/workarea/admin/emarsys/configurations/edit.html.haml +68 -0
  40. data/app/views/workarea/admin/shared/_emarsys_configuration_link.html.haml +1 -0
  41. data/app/views/workarea/storefront/_emarsys_tracking.html.haml +11 -0
  42. data/app/views/workarea/storefront/emarsys/_current_user_emarsys_cart.json.jbuilder +6 -0
  43. data/app/workers/workarea/emarsys/save_email_signup.rb +40 -0
  44. data/app/workers/workarea/emarsys/save_order.rb +32 -0
  45. data/app/workers/workarea/emarsys/save_user.rb +44 -0
  46. data/app/workers/workarea/emarsys/sync_orders.rb +50 -0
  47. data/bin/rails +20 -0
  48. data/config/initializers/appends.rb +19 -0
  49. data/config/initializers/scheduled_jobs.rb +6 -0
  50. data/config/initializers/workarea.rb +16 -0
  51. data/config/locales/en.yml +28 -0
  52. data/config/routes.rb +7 -0
  53. data/lib/workarea/emarsys/engine.rb +12 -0
  54. data/lib/workarea/emarsys/version.rb +5 -0
  55. data/lib/workarea/emarsys.rb +59 -0
  56. data/test/dummy/Rakefile +6 -0
  57. data/test/dummy/app/assets/config/manifest.js +4 -0
  58. data/test/dummy/app/assets/images/.keep +0 -0
  59. data/test/dummy/app/assets/javascripts/application.js +13 -0
  60. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  61. data/test/dummy/app/controllers/application_controller.rb +3 -0
  62. data/test/dummy/app/controllers/concerns/.keep +0 -0
  63. data/test/dummy/app/helpers/application_helper.rb +2 -0
  64. data/test/dummy/app/jobs/application_job.rb +2 -0
  65. data/test/dummy/app/mailers/application_mailer.rb +4 -0
  66. data/test/dummy/app/models/concerns/.keep +0 -0
  67. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  68. data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
  69. data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
  70. data/test/dummy/bin/bundle +3 -0
  71. data/test/dummy/bin/rails +4 -0
  72. data/test/dummy/bin/rake +4 -0
  73. data/test/dummy/bin/setup +30 -0
  74. data/test/dummy/bin/update +26 -0
  75. data/test/dummy/bin/yarn +11 -0
  76. data/test/dummy/config/application.rb +30 -0
  77. data/test/dummy/config/boot.rb +5 -0
  78. data/test/dummy/config/cable.yml +10 -0
  79. data/test/dummy/config/environment.rb +5 -0
  80. data/test/dummy/config/environments/development.rb +51 -0
  81. data/test/dummy/config/environments/production.rb +88 -0
  82. data/test/dummy/config/environments/test.rb +44 -0
  83. data/test/dummy/config/initializers/application_controller_renderer.rb +8 -0
  84. data/test/dummy/config/initializers/assets.rb +14 -0
  85. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  86. data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  87. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  88. data/test/dummy/config/initializers/inflections.rb +16 -0
  89. data/test/dummy/config/initializers/mime_types.rb +4 -0
  90. data/test/dummy/config/initializers/workarea.rb +5 -0
  91. data/test/dummy/config/initializers/wrap_parameters.rb +9 -0
  92. data/test/dummy/config/locales/en.yml +33 -0
  93. data/test/dummy/config/puma.rb +56 -0
  94. data/test/dummy/config/routes.rb +5 -0
  95. data/test/dummy/config/secrets.yml +32 -0
  96. data/test/dummy/config/spring.rb +6 -0
  97. data/test/dummy/config.ru +5 -0
  98. data/test/dummy/db/seeds.rb +2 -0
  99. data/test/dummy/lib/assets/.keep +0 -0
  100. data/test/dummy/log/.keep +0 -0
  101. data/test/integration/workarea/admin/emarsys_configuration_integration_test.rb +25 -0
  102. data/test/lib/workarea/emarsys/gateway_test.rb +26 -0
  103. data/test/services/emarsys/contact_test.rb +44 -0
  104. data/test/support/workarea/emarsys_api_config.rb +19 -0
  105. data/test/system/workarea/storefront/emarsys_tracking_system_test.rb +25 -0
  106. data/test/teaspoon_env.rb +6 -0
  107. data/test/test_helper.rb +10 -0
  108. data/test/vcr_cassettes/emarsys/add_contact.yml +67 -0
  109. data/test/vcr_cassettes/emarsys/get_contact.yml +129 -0
  110. data/test/vcr_cassettes/emarsys/sales/send_data.yml +42 -0
  111. data/test/workers/workarea/emarsys/save_user_test.rb +30 -0
  112. data/test/workers/workarea/emarsys/sync_orders_test.rb +38 -0
  113. data/workarea-emarsys.gemspec +24 -0
  114. metadata +211 -0
@@ -0,0 +1,129 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: put
5
+ uri: https://api-proxy.s.emarsys.com/api/v2/internal/215861890/contact/?create_if_not_exists=1
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"contacts":[{"3":"jyucis-emarsys-get@workarea.com"}]}'
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.15.4
12
+ Content-Type:
13
+ - application/json
14
+ X-Ems-Date:
15
+ - 20190313T195319Z
16
+ X-Ems-Auth:
17
+ - EMS-HMAC-SHA256 Credential=suite_workarea_v1/20190313/eu/suite/ems_request,
18
+ SignedHeaders=host;x-ems-date, Signature=b
19
+ Accept-Encoding:
20
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
21
+ Accept:
22
+ - "*/*"
23
+ response:
24
+ status:
25
+ code: 200
26
+ message: OK
27
+ headers:
28
+ Cache-Control:
29
+ - max-age=0, no-cache, no-store, must-revalidate
30
+ Content-Length:
31
+ - '76'
32
+ Content-Type:
33
+ - application/json
34
+ Date:
35
+ - Wed, 13 Mar 2019 19:53:20 GMT
36
+ Pragma:
37
+ - no-cache
38
+ Server:
39
+ - openresty/1.11.2.1
40
+ Strict-Transport-Security:
41
+ - max-age=86400; includeSubDomains; preload
42
+ Vary:
43
+ - Accept-Encoding
44
+ Via:
45
+ - kong/0.14.1
46
+ X-Emarsys-Request-Id:
47
+ - 71e137ab-b703-4f06-8a33-acf9b8a1097a#4171
48
+ X-Fe:
49
+ - suitesapipxy01.emarsys.at
50
+ X-Kong-Proxy-Latency:
51
+ - '17'
52
+ X-Kong-Upstream-Latency:
53
+ - '697'
54
+ X-Ratelimit-Limit:
55
+ - '200'
56
+ X-Ratelimit-Remaining:
57
+ - '199'
58
+ X-Ratelimit-Reset:
59
+ - '1552506840'
60
+ X-Suite-Response-Time:
61
+ - '655'
62
+ body:
63
+ encoding: ASCII-8BIT
64
+ string: '{"replyCode":0,"replyText":"OK","data":{"ids":["504947875"]}}'
65
+ http_version:
66
+ recorded_at: Wed, 13 Mar 2019 19:53:20 GMT
67
+ - request:
68
+ method: post
69
+ uri: https://api-proxy.s.emarsys.com/api/v2/internal/215861890/contact/getdata
70
+ body:
71
+ encoding: UTF-8
72
+ string: '{"keyID":"3","keyValues":["jyucis-emarsys-get@workarea.com"],"fields":null}'
73
+ headers:
74
+ User-Agent:
75
+ - Faraday v0.15.4
76
+ Content-Type:
77
+ - application/json
78
+ X-Ems-Date:
79
+ - 20190313T195320Z
80
+ X-Ems-Auth:
81
+ - EMS-HMAC-SHA256 Credential=suite_workarea_v1/20190313/eu/suite/ems_request,
82
+ SignedHeaders=host;x-ems-date, Signature=ed8e9505a29c80fbf411f09c9903943a9b2e8af0e5de9221daaccfd588b67a7a
83
+ Accept-Encoding:
84
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
85
+ Accept:
86
+ - "*/*"
87
+ response:
88
+ status:
89
+ code: 400
90
+ message: Bad Request
91
+ headers:
92
+ Cache-Control:
93
+ - max-age=0, no-cache, no-store, must-revalidate
94
+ Content-Length:
95
+ - '79'
96
+ Content-Type:
97
+ - application/json
98
+ Date:
99
+ - Wed, 13 Mar 2019 19:53:21 GMT
100
+ Pragma:
101
+ - no-cache
102
+ Server:
103
+ - openresty/1.11.2.1
104
+ Strict-Transport-Security:
105
+ - max-age=86400; includeSubDomains; preload
106
+ Vary:
107
+ - Accept-Encoding
108
+ Via:
109
+ - kong/0.14.1
110
+ X-Emarsys-Request-Id:
111
+ - 71e137ab-b703-4f06-8a33-acf9b8a1097a#4172
112
+ X-Kong-Proxy-Latency:
113
+ - '26'
114
+ X-Kong-Upstream-Latency:
115
+ - '62'
116
+ X-Ratelimit-Limit:
117
+ - '200'
118
+ X-Ratelimit-Remaining:
119
+ - '198'
120
+ X-Ratelimit-Reset:
121
+ - '1552506840'
122
+ X-Suite-Response-Time:
123
+ - '21'
124
+ body:
125
+ encoding: ASCII-8BIT
126
+ string: '{"replyCode":2004,"replyText":"Invalid key field id: ","data":""}'
127
+ http_version:
128
+ recorded_at: Wed, 13 Mar 2019 19:53:21 GMT
129
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,42 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://admin.scarabresearch.com/hapi/merchant/19CAA097101B372A/sales-data/api
6
+ body:
7
+ encoding: UTF-8
8
+ string: |
9
+ order,email,item,price,quantity,timestamp
10
+ 1234,bcrouse-new@workarea.com,SKU,10.00,2,2019-04-05T14:38:40Z
11
+ headers:
12
+ Content-Type:
13
+ - text/csv
14
+ Accept:
15
+ - text/plain
16
+ Authorization:
17
+ - Bearer c
18
+ User-Agent:
19
+ - Faraday v0.15.4
20
+ Accept-Encoding:
21
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
22
+ response:
23
+ status:
24
+ code: 200
25
+ message: OK
26
+ headers:
27
+ Content-Type:
28
+ - text/plain
29
+ Server:
30
+ - Jetty(9.2.17.v20160517)
31
+ Content-Length:
32
+ - '16'
33
+ Connection:
34
+ - keep-alive
35
+ body:
36
+ encoding: UTF-8
37
+ string: 'Upload accepted
38
+
39
+ '
40
+ http_version:
41
+ recorded_at: Fri, 05 Apr 2019 14:38:41 GMT
42
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,30 @@
1
+ require 'test_helper'
2
+
3
+ module Workarea
4
+ class Emarsys::SaveUserTest < TestCase
5
+
6
+ def test_save_user_sets_time_stamp
7
+ Workarea::Emarsys::Configuration.create(customer_id: '1234')
8
+ user = create_user
9
+
10
+ Workarea::Emarsys::SaveUser.new.perform(user.id)
11
+
12
+ user.reload
13
+
14
+ assert(user.emarsys_exported_at.present?)
15
+ assert(user.emarsys_external_id.present?)
16
+ end
17
+
18
+ def test_save_user_does_nothing_without_customer_id_set
19
+ Workarea::Emarsys::Configuration.create(customer_id: nil)
20
+ user = create_user
21
+
22
+ Workarea::Emarsys::SaveUser.new.perform(user.id)
23
+
24
+ user.reload
25
+
26
+ refute(user.emarsys_exported_at.present?)
27
+ refute(user.emarsys_external_id.present?)
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,38 @@
1
+ require 'test_helper'
2
+
3
+ module Workarea
4
+ class Emarsys::SyncOrdersTest < TestCase
5
+ include EmarsysApiConfig
6
+
7
+ def test_sync_orders_sends_file
8
+ VCR.use_cassette("emarsys/sales/send_data", match_requests_on: [:method, :uri]) do
9
+ Workarea.with_config do |config|
10
+ merchant_id = Workarea::Emarsys::Configuration.create!(merchant_id: "19CAA097101B372A").merchant_id
11
+
12
+ api_url = "https://admin.scarabresearch.com/hapi/merchant/#{merchant_id}/sales-data/api"
13
+
14
+ config.emarsys.merchant_id = merchant_id
15
+
16
+ create_placed_order
17
+
18
+ Workarea::Emarsys::SyncOrders.new.perform
19
+
20
+ assert_requested :post, api_url
21
+ end
22
+ end
23
+ end
24
+
25
+ def test_sync_orders_sends_nothing_when_no_orders
26
+ Workarea.with_config do |config|
27
+ merchant_id = Workarea::Emarsys::Configuration.create!(merchant_id: "19CAA097101B372A").merchant_id
28
+ api_url = "https://admin.scarabresearch.com/hapi/merchant/#{merchant_id}/sales-data/api"
29
+
30
+ config.emarsys.merchant_id = merchant_id
31
+
32
+ Workarea::Emarsys::SyncOrders.new.perform
33
+
34
+ refute_requested :post, api_url
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,24 @@
1
+ $:.push File.expand_path("../lib", __FILE__)
2
+
3
+ # Maintain your gem's version:
4
+ require "workarea/emarsys/version"
5
+
6
+ # Describe your gem and declare its dependencies:
7
+ Gem::Specification.new do |s|
8
+ s.name = "workarea-emarsys"
9
+ s.version = Workarea::Emarsys::VERSION
10
+ s.authors = ["Jeff Yucis"]
11
+ s.email = ["jyucis@weblinc.com"]
12
+ s.homepage = "https://github.com/workarea-commerce/workarea-emarsys"
13
+ s.summary = "Emarsys email service provider"
14
+ s.description = "Workarea Integration with Emarsys"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+
18
+ s.license = 'Business Software License'
19
+
20
+ s.add_dependency 'workarea', '~> 3.x'
21
+ s.add_dependency 'workarea-google_product_feed', '~> 3.x'
22
+ s.add_dependency "escher"
23
+ s.add_dependency "faraday", "~> 0.10"
24
+ end
metadata ADDED
@@ -0,0 +1,211 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: workarea-emarsys
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Jeff Yucis
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-08-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: workarea
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 3.x
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 3.x
27
+ - !ruby/object:Gem::Dependency
28
+ name: workarea-google_product_feed
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 3.x
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 3.x
41
+ - !ruby/object:Gem::Dependency
42
+ name: escher
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: faraday
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.10'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.10'
69
+ description: Workarea Integration with Emarsys
70
+ email:
71
+ - jyucis@weblinc.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - ".editorconfig"
77
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
78
+ - ".github/ISSUE_TEMPLATE/documentation-request.md"
79
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
80
+ - ".gitignore"
81
+ - CHANGELOG.md
82
+ - CODE_OF_CONDUCT.md
83
+ - CONTRIBUTING.md
84
+ - Gemfile
85
+ - LICENSE
86
+ - LICENSE.md
87
+ - README.md
88
+ - Rakefile
89
+ - app/assets/images/emarsys/.keep
90
+ - app/assets/javascripts/emarsys/.keep
91
+ - app/assets/javascripts/workarea/storefront/emarsys/modules/web_extend_adapter.js
92
+ - app/assets/stylesheets/emarsys/.keep
93
+ - app/controllers/.keep
94
+ - app/controllers/workarea/admin/configurations_controller.rb
95
+ - app/controllers/workarea/storefront/email_signups_controller.decorator
96
+ - app/controllers/workarea/storefront/users/addresses_controller.decorator
97
+ - app/helpers/.keep
98
+ - app/helpers/workarea/storefront/emarsys_analytics_helper.rb
99
+ - app/lib/workarea/emarsys/bogus_gateway.rb
100
+ - app/lib/workarea/emarsys/gateway.rb
101
+ - app/lib/workarea/emarsys/response.rb
102
+ - app/lib/workarea/emarsys/sales_data_bogus_gateway.rb
103
+ - app/lib/workarea/emarsys/sales_data_gateway.rb
104
+ - app/models/emarsys/configuration.rb
105
+ - app/models/emarsys/country.rb
106
+ - app/models/workarea/email/signup.decorator
107
+ - app/models/workarea/order.decorator
108
+ - app/models/workarea/user.decorator
109
+ - app/services/emarsys/contact.rb
110
+ - app/services/emarsys/contact/order.rb
111
+ - app/services/emarsys/contact/user.rb
112
+ - app/view_models/workarea/admin/emarsys_configuration_view_model.rb
113
+ - app/views/workarea/admin/emarsys/configurations/edit.html.haml
114
+ - app/views/workarea/admin/shared/_emarsys_configuration_link.html.haml
115
+ - app/views/workarea/storefront/_emarsys_tracking.html.haml
116
+ - app/views/workarea/storefront/emarsys/_current_user_emarsys_cart.json.jbuilder
117
+ - app/workers/workarea/emarsys/save_email_signup.rb
118
+ - app/workers/workarea/emarsys/save_order.rb
119
+ - app/workers/workarea/emarsys/save_user.rb
120
+ - app/workers/workarea/emarsys/sync_orders.rb
121
+ - bin/rails
122
+ - config/initializers/appends.rb
123
+ - config/initializers/scheduled_jobs.rb
124
+ - config/initializers/workarea.rb
125
+ - config/locales/en.yml
126
+ - config/routes.rb
127
+ - lib/workarea/emarsys.rb
128
+ - lib/workarea/emarsys/engine.rb
129
+ - lib/workarea/emarsys/version.rb
130
+ - test/dummy/Rakefile
131
+ - test/dummy/app/assets/config/manifest.js
132
+ - test/dummy/app/assets/images/.keep
133
+ - test/dummy/app/assets/javascripts/application.js
134
+ - test/dummy/app/assets/stylesheets/application.css
135
+ - test/dummy/app/controllers/application_controller.rb
136
+ - test/dummy/app/controllers/concerns/.keep
137
+ - test/dummy/app/helpers/application_helper.rb
138
+ - test/dummy/app/jobs/application_job.rb
139
+ - test/dummy/app/mailers/application_mailer.rb
140
+ - test/dummy/app/models/concerns/.keep
141
+ - test/dummy/app/views/layouts/application.html.erb
142
+ - test/dummy/app/views/layouts/mailer.html.erb
143
+ - test/dummy/app/views/layouts/mailer.text.erb
144
+ - test/dummy/bin/bundle
145
+ - test/dummy/bin/rails
146
+ - test/dummy/bin/rake
147
+ - test/dummy/bin/setup
148
+ - test/dummy/bin/update
149
+ - test/dummy/bin/yarn
150
+ - test/dummy/config.ru
151
+ - test/dummy/config/application.rb
152
+ - test/dummy/config/boot.rb
153
+ - test/dummy/config/cable.yml
154
+ - test/dummy/config/environment.rb
155
+ - test/dummy/config/environments/development.rb
156
+ - test/dummy/config/environments/production.rb
157
+ - test/dummy/config/environments/test.rb
158
+ - test/dummy/config/initializers/application_controller_renderer.rb
159
+ - test/dummy/config/initializers/assets.rb
160
+ - test/dummy/config/initializers/backtrace_silencers.rb
161
+ - test/dummy/config/initializers/cookies_serializer.rb
162
+ - test/dummy/config/initializers/filter_parameter_logging.rb
163
+ - test/dummy/config/initializers/inflections.rb
164
+ - test/dummy/config/initializers/mime_types.rb
165
+ - test/dummy/config/initializers/workarea.rb
166
+ - test/dummy/config/initializers/wrap_parameters.rb
167
+ - test/dummy/config/locales/en.yml
168
+ - test/dummy/config/puma.rb
169
+ - test/dummy/config/routes.rb
170
+ - test/dummy/config/secrets.yml
171
+ - test/dummy/config/spring.rb
172
+ - test/dummy/db/seeds.rb
173
+ - test/dummy/lib/assets/.keep
174
+ - test/dummy/log/.keep
175
+ - test/integration/workarea/admin/emarsys_configuration_integration_test.rb
176
+ - test/lib/workarea/emarsys/gateway_test.rb
177
+ - test/services/emarsys/contact_test.rb
178
+ - test/support/workarea/emarsys_api_config.rb
179
+ - test/system/workarea/storefront/emarsys_tracking_system_test.rb
180
+ - test/teaspoon_env.rb
181
+ - test/test_helper.rb
182
+ - test/vcr_cassettes/emarsys/add_contact.yml
183
+ - test/vcr_cassettes/emarsys/get_contact.yml
184
+ - test/vcr_cassettes/emarsys/sales/send_data.yml
185
+ - test/workers/workarea/emarsys/save_user_test.rb
186
+ - test/workers/workarea/emarsys/sync_orders_test.rb
187
+ - workarea-emarsys.gemspec
188
+ homepage: https://github.com/workarea-commerce/workarea-emarsys
189
+ licenses:
190
+ - Business Software License
191
+ metadata: {}
192
+ post_install_message:
193
+ rdoc_options: []
194
+ require_paths:
195
+ - lib
196
+ required_ruby_version: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
201
+ required_rubygems_version: !ruby/object:Gem::Requirement
202
+ requirements:
203
+ - - ">="
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
206
+ requirements: []
207
+ rubygems_version: 3.0.4
208
+ signing_key:
209
+ specification_version: 4
210
+ summary: Emarsys email service provider
211
+ test_files: []