workarea-listrak 5.0.1

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 (163) hide show
  1. checksums.yaml +7 -0
  2. data/.eslintrc.json +36 -0
  3. data/.esvmrc +5 -0
  4. data/.gitignore +32 -0
  5. data/CHANGELOG.md +322 -0
  6. data/Gemfile +14 -0
  7. data/README.md +130 -0
  8. data/Rakefile +53 -0
  9. data/app/assets/javascripts/workarea/admin/modules/listrak/list_events_select.js +83 -0
  10. data/app/assets/javascripts/workarea/storefront/listrak/adapters/listrak_adapter.js +110 -0
  11. data/app/assets/javascripts/workarea/storefront/listrak/listrak_config.js.erb +13 -0
  12. data/app/assets/javascripts/workarea/storefront/listrak/modules/listrak.js +64 -0
  13. data/app/controllers/workarea/admin/listrak/configurations_controller.rb +30 -0
  14. data/app/controllers/workarea/admin/listrak/events_controller.rb +17 -0
  15. data/app/helpers/workarea/listrak/analytics/helper.rb +44 -0
  16. data/app/models/workarea/listrak/configuration.rb +19 -0
  17. data/app/queries/workarea/categorization.decorator +7 -0
  18. data/app/services/workarea/listrak/data_api/customers.rb +26 -0
  19. data/app/services/workarea/listrak/data_api/orders.rb +26 -0
  20. data/app/services/workarea/listrak/data_api/products.rb +26 -0
  21. data/app/services/workarea/listrak/data_api.rb +63 -0
  22. data/app/services/workarea/listrak/email_api/contacts.rb +73 -0
  23. data/app/services/workarea/listrak/email_api/events.rb +44 -0
  24. data/app/services/workarea/listrak/email_api/lists.rb +21 -0
  25. data/app/services/workarea/listrak/email_api/messages.rb +50 -0
  26. data/app/services/workarea/listrak/email_api/transactional_messages.rb +32 -0
  27. data/app/services/workarea/listrak/email_api.rb +71 -0
  28. data/app/services/workarea/listrak/models/address.rb +83 -0
  29. data/app/services/workarea/listrak/models/contact.rb +67 -0
  30. data/app/services/workarea/listrak/models/contact_form.rb +24 -0
  31. data/app/services/workarea/listrak/models/customer_form.rb +209 -0
  32. data/app/services/workarea/listrak/models/event.rb +45 -0
  33. data/app/services/workarea/listrak/models/event_form.rb +25 -0
  34. data/app/services/workarea/listrak/models/list.rb +204 -0
  35. data/app/services/workarea/listrak/models/message_form.rb +147 -0
  36. data/app/services/workarea/listrak/models/order_form.rb +352 -0
  37. data/app/services/workarea/listrak/models/order_item.rb +197 -0
  38. data/app/services/workarea/listrak/models/product_form.rb +369 -0
  39. data/app/services/workarea/listrak/models/transactional_message_form.rb +21 -0
  40. data/app/services/workarea/listrak/oauth.rb +45 -0
  41. data/app/services/workarea/listrak/transactional_message.rb +83 -0
  42. data/app/view_models/workarea/admin/listrak_configuration_view_model.rb +17 -0
  43. data/app/views/workarea/admin/listrak/configurations/edit.html.haml +28 -0
  44. data/app/views/workarea/admin/listrak/events/index.json.jbuilder +4 -0
  45. data/app/views/workarea/admin/shared/_listrak_configuration_link.html.haml +1 -0
  46. data/app/views/workarea/storefront/checkouts/_listrak.html.haml +2 -0
  47. data/app/workers/workarea/listrak/customer_exporter.rb +22 -0
  48. data/app/workers/workarea/listrak/order_exporter.rb +22 -0
  49. data/app/workers/workarea/listrak/product_exporter.rb +50 -0
  50. data/app/workers/workarea/listrak/subscribe_email_signup.rb +34 -0
  51. data/app/workers/workarea/listrak/unsubscribe_email_signup.rb +27 -0
  52. data/bin/rails +18 -0
  53. data/bin/rake +16 -0
  54. data/bin/rspec +16 -0
  55. data/bin/rubocop +16 -0
  56. data/config/initializers/append_points.rb +28 -0
  57. data/config/initializers/configuration.rb +8 -0
  58. data/config/locales/en.yml +17 -0
  59. data/config/routes.rb +10 -0
  60. data/docs/Listrak Technical Integration Guide.docx +0 -0
  61. data/lib/generators/workarea/listrak/message/USAGE +9 -0
  62. data/lib/generators/workarea/listrak/message/message_generator.rb +15 -0
  63. data/lib/generators/workarea/listrak/message/templates/message.rb.erb +24 -0
  64. data/lib/workarea/listrak/analytics.rb +17 -0
  65. data/lib/workarea/listrak/bogus_data_api/customers.rb +9 -0
  66. data/lib/workarea/listrak/bogus_data_api/orders.rb +9 -0
  67. data/lib/workarea/listrak/bogus_data_api/products.rb +9 -0
  68. data/lib/workarea/listrak/bogus_data_api/proxy_client.rb +29 -0
  69. data/lib/workarea/listrak/bogus_data_api.rb +46 -0
  70. data/lib/workarea/listrak/bogus_email_api/contacts.rb +8 -0
  71. data/lib/workarea/listrak/bogus_email_api/events.rb +23 -0
  72. data/lib/workarea/listrak/bogus_email_api/lists.rb +63 -0
  73. data/lib/workarea/listrak/bogus_email_api/proxy_client.rb +29 -0
  74. data/lib/workarea/listrak/bogus_email_api/transactional_messages.rb +9 -0
  75. data/lib/workarea/listrak/bogus_email_api.rb +51 -0
  76. data/lib/workarea/listrak/engine.rb +12 -0
  77. data/lib/workarea/listrak/error.rb +39 -0
  78. data/lib/workarea/listrak/version.rb +5 -0
  79. data/lib/workarea/listrak.rb +57 -0
  80. data/readme/listrak-admin.png +0 -0
  81. data/script/admin_ci +9 -0
  82. data/script/ci +11 -0
  83. data/script/core_ci +9 -0
  84. data/script/plugins_ci +9 -0
  85. data/script/storefront_ci +9 -0
  86. data/test/dummy/Rakefile +6 -0
  87. data/test/dummy/bin/bundle +3 -0
  88. data/test/dummy/bin/rails +4 -0
  89. data/test/dummy/bin/rake +4 -0
  90. data/test/dummy/bin/setup +34 -0
  91. data/test/dummy/bin/update +29 -0
  92. data/test/dummy/config/application.rb +18 -0
  93. data/test/dummy/config/boot.rb +5 -0
  94. data/test/dummy/config/cable.yml +9 -0
  95. data/test/dummy/config/environment.rb +5 -0
  96. data/test/dummy/config/environments/development.rb +54 -0
  97. data/test/dummy/config/environments/production.rb +86 -0
  98. data/test/dummy/config/environments/test.rb +43 -0
  99. data/test/dummy/config/initializers/application_controller_renderer.rb +6 -0
  100. data/test/dummy/config/initializers/assets.rb +11 -0
  101. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  102. data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  103. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  104. data/test/dummy/config/initializers/inflections.rb +16 -0
  105. data/test/dummy/config/initializers/mime_types.rb +4 -0
  106. data/test/dummy/config/initializers/new_framework_defaults.rb +21 -0
  107. data/test/dummy/config/initializers/session_store.rb +3 -0
  108. data/test/dummy/config/initializers/workarea.rb +5 -0
  109. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  110. data/test/dummy/config/locales/en.yml +23 -0
  111. data/test/dummy/config/puma.rb +47 -0
  112. data/test/dummy/config/routes.rb +5 -0
  113. data/test/dummy/config/secrets.yml +38 -0
  114. data/test/dummy/config/spring.rb +6 -0
  115. data/test/dummy/config.ru +5 -0
  116. data/test/dummy/db/seeds.rb +2 -0
  117. data/test/dummy/public/404.html +67 -0
  118. data/test/dummy/public/422.html +67 -0
  119. data/test/dummy/public/500.html +66 -0
  120. data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
  121. data/test/dummy/public/apple-touch-icon.png +0 -0
  122. data/test/dummy/public/favicon.ico +0 -0
  123. data/test/factories/workarea/factories/listrak.rb +15 -0
  124. data/test/helpers/workarea/listrak/analytics/helper_test.rb +38 -0
  125. data/test/integration/workarea/admin/listrak/configuration_integration_test.rb +26 -0
  126. data/test/integration/workarea/admin/listrak/events_integration_test.rb +21 -0
  127. data/test/lib/generators/workarea/listrak/message_generator_test.rb +26 -0
  128. data/test/queries/workarea/categorization_test.decorator +15 -0
  129. data/test/services/workarea/listrak/data_api/customers_test.rb +35 -0
  130. data/test/services/workarea/listrak/data_api/orders_test.rb +24 -0
  131. data/test/services/workarea/listrak/data_api/products_test.rb +27 -0
  132. data/test/services/workarea/listrak/email_api/contacts_test.rb +55 -0
  133. data/test/services/workarea/listrak/email_api/events_test.rb +51 -0
  134. data/test/services/workarea/listrak/email_api/lists_test.rb +45 -0
  135. data/test/services/workarea/listrak/email_api/messages_test.rb +28 -0
  136. data/test/services/workarea/listrak/email_api/transactional_messages_test.rb +50 -0
  137. data/test/services/workarea/listrak/oauth_test.rb +27 -0
  138. data/test/services/workarea/listrak/transactional_message_test.rb +48 -0
  139. data/test/support/workarea/listrak/test_order_confirmation_email.rb +116 -0
  140. data/test/support/workarea/listrak/vcr_config.rb +31 -0
  141. data/test/system/workarea/listrak_system_test.rb +75 -0
  142. data/test/test_helper.rb +16 -0
  143. data/test/vcr_cassettes/listrak/data_api/customers_import-successful.yml +88 -0
  144. data/test/vcr_cassettes/listrak/data_api/orders_import-successful.yml +90 -0
  145. data/test/vcr_cassettes/listrak/data_api/products_import-successful.yml +88 -0
  146. data/test/vcr_cassettes/listrak/email_api/contacts_get-successful.yml +87 -0
  147. data/test/vcr_cassettes/listrak/email_api/contacts_upsert-already_unsubscribed.yml +90 -0
  148. data/test/vcr_cassettes/listrak/email_api/contacts_upsert-successful.yml +87 -0
  149. data/test/vcr_cassettes/listrak/email_api/events_create-invalid_parameter.yml +90 -0
  150. data/test/vcr_cassettes/listrak/email_api/events_create-successful.yml +87 -0
  151. data/test/vcr_cassettes/listrak/email_api/events_get-successful.yml +88 -0
  152. data/test/vcr_cassettes/listrak/email_api/lists_all-successful.yml +88 -0
  153. data/test/vcr_cassettes/listrak/email_api/messages_create-successful.yml +88 -0
  154. data/test/vcr_cassettes/listrak/email_api/transactional_messages_create-successful.yml +89 -0
  155. data/test/vcr_cassettes/listrak/oauth-successful.yml +44 -0
  156. data/test/vcr_cassettes/listrak/oauth-unsuccessful.yml +46 -0
  157. data/test/vcr_cassettes/listrak/system_tests/footer_email_signup-successful.yml +171 -0
  158. data/test/vcr_cassettes/listrak/system_tests/footer_email_signup_overrides_unsubscribe.yml +255 -0
  159. data/test/vcr_cassettes/listrak/system_tests/unsubscribing.yml +593 -0
  160. data/test/workers/workarea/listrak/order_exporter_test.rb +31 -0
  161. data/test/workers/workarea/listrak/product_exporter_test.rb +62 -0
  162. data/workarea-listrak.gemspec +16 -0
  163. metadata +223 -0
@@ -0,0 +1,593 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://auth.listrak.com/OAuth2/Token
6
+ body:
7
+ encoding: US-ASCII
8
+ string: grant_type=client_credentials&client_id=a&client_secret=b
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/x-www-form-urlencoded
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Cache-Control:
24
+ - no-cache
25
+ Pragma:
26
+ - no-cache
27
+ Content-Type:
28
+ - application/json;charset=UTF-8
29
+ Expires:
30
+ - "-1"
31
+ Server:
32
+ - Microsoft-IIS/8.5
33
+ X-Powered-By:
34
+ - ASP.NET
35
+ Date:
36
+ - Mon, 14 Jan 2019 17:44:33 GMT
37
+ Content-Length:
38
+ - '486'
39
+ body:
40
+ encoding: UTF-8
41
+ string: '{"access_token":"mn49oWGxijkPhEja3DfS1JXpq7P_P_ZtsAYiqPNohYQ-G2ZDnvCk2LMaH4ItLiiALFtZZ85uBqwpb8pGis_9s7Fr1qzivm69M7KLf1aERn5CMQRvMSEdUTfahJ0UfIRW5L3DgiLtGY1-KhhuavLMh6PpKal4vAJN22q694SACIF2-s4Vl3ah77bygjspbl0pRvngO9XPEPR_XCT45z7h1s1orkQwetf3WtxrQ4S6cBW20-Q0qZvF57j_5nd_N5sq4L-4AmcMFAS5GiNeDVLtmtBW1mignJCWs6AMsz7KMkDN4dHiRn8trHn29XbXj1JUcpZmioTcr38RRKK0mSDnl-J07g4brr-m3zucpw0of9wJiTMqAaNMWyeSjoZYMXr_fEy9cwIB_TFz78m7FcbDlf-G1j0jFoy2hsvB0fE-2mg","token_type":"bearer","expires_in":3599}'
42
+ http_version:
43
+ recorded_at: Mon, 14 Jan 2019 17:44:34 GMT
44
+ - request:
45
+ method: post
46
+ uri: https://api.listrak.com/data/v1/Customer
47
+ body:
48
+ encoding: UTF-8
49
+ string: '[{"customerNumber":"5c3cca8287c68be526bc","email":"employee+2@weblinc.com","registered":true}]'
50
+ headers:
51
+ Accept-Encoding:
52
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
53
+ Accept:
54
+ - application/json
55
+ User-Agent:
56
+ - Ruby
57
+ Authorization:
58
+ - Bearer mn49oWGxijkPhEja3DfS1JXpq7P_P_ZtsAYiqPNohYQ-G2ZDnvCk2LMaH4ItLiiALFtZZ85uBqwpb8pGis_9s7Fr1qzivm69M7KLf1aERn5CMQRvMSEdUTfahJ0UfIRW5L3DgiLtGY1-KhhuavLMh6PpKal4vAJN22q694SACIF2-s4Vl3ah77bygjspbl0pRvngO9XPEPR_XCT45z7h1s1orkQwetf3WtxrQ4S6cBW20-Q0qZvF57j_5nd_N5sq4L-4AmcMFAS5GiNeDVLtmtBW1mignJCWs6AMsz7KMkDN4dHiRn8trHn29XbXj1JUcpZmioTcr38RRKK0mSDnl-J07g4brr-m3zucpw0of9wJiTMqAaNMWyeSjoZYMXr_fEy9cwIB_TFz78m7FcbDlf-G1j0jFoy2hsvB0fE-2mg
59
+ Content-Type:
60
+ - application/json
61
+ response:
62
+ status:
63
+ code: 201
64
+ message: Created
65
+ headers:
66
+ Cache-Control:
67
+ - no-cache
68
+ Pragma:
69
+ - no-cache
70
+ Content-Length:
71
+ - '32'
72
+ Content-Type:
73
+ - application/json; charset=utf-8
74
+ Expires:
75
+ - "-1"
76
+ Server:
77
+ - Microsoft-IIS/8.5
78
+ X-Powered-By:
79
+ - ASP.NET
80
+ Date:
81
+ - Mon, 14 Jan 2019 17:44:34 GMT
82
+ body:
83
+ encoding: UTF-8
84
+ string: '{"status":201,"resourceId":null}'
85
+ http_version:
86
+ recorded_at: Mon, 14 Jan 2019 17:44:35 GMT
87
+ - request:
88
+ method: post
89
+ uri: https://api.listrak.com/data/v1/Customer
90
+ body:
91
+ encoding: UTF-8
92
+ string: '[{"customerNumber":"5c3cca8287c68be526bc","email":"employee+2@weblinc.com","registered":true}]'
93
+ headers:
94
+ Accept-Encoding:
95
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
96
+ Accept:
97
+ - application/json
98
+ User-Agent:
99
+ - Ruby
100
+ Authorization:
101
+ - Bearer mn49oWGxijkPhEja3DfS1JXpq7P_P_ZtsAYiqPNohYQ-G2ZDnvCk2LMaH4ItLiiALFtZZ85uBqwpb8pGis_9s7Fr1qzivm69M7KLf1aERn5CMQRvMSEdUTfahJ0UfIRW5L3DgiLtGY1-KhhuavLMh6PpKal4vAJN22q694SACIF2-s4Vl3ah77bygjspbl0pRvngO9XPEPR_XCT45z7h1s1orkQwetf3WtxrQ4S6cBW20-Q0qZvF57j_5nd_N5sq4L-4AmcMFAS5GiNeDVLtmtBW1mignJCWs6AMsz7KMkDN4dHiRn8trHn29XbXj1JUcpZmioTcr38RRKK0mSDnl-J07g4brr-m3zucpw0of9wJiTMqAaNMWyeSjoZYMXr_fEy9cwIB_TFz78m7FcbDlf-G1j0jFoy2hsvB0fE-2mg
102
+ Content-Type:
103
+ - application/json
104
+ response:
105
+ status:
106
+ code: 201
107
+ message: Created
108
+ headers:
109
+ Cache-Control:
110
+ - no-cache
111
+ Pragma:
112
+ - no-cache
113
+ Content-Length:
114
+ - '32'
115
+ Content-Type:
116
+ - application/json; charset=utf-8
117
+ Expires:
118
+ - "-1"
119
+ Server:
120
+ - Microsoft-IIS/8.5
121
+ X-Powered-By:
122
+ - ASP.NET
123
+ Date:
124
+ - Mon, 14 Jan 2019 17:44:34 GMT
125
+ body:
126
+ encoding: UTF-8
127
+ string: '{"status":201,"resourceId":null}'
128
+ http_version:
129
+ recorded_at: Mon, 14 Jan 2019 17:44:35 GMT
130
+ - request:
131
+ method: post
132
+ uri: https://api.listrak.com/data/v1/Customer
133
+ body:
134
+ encoding: UTF-8
135
+ string: '[{"customerNumber":"5c3cca8287c68be526bc","email":"employee+2@weblinc.com","registered":true}]'
136
+ headers:
137
+ Accept-Encoding:
138
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
139
+ Accept:
140
+ - application/json
141
+ User-Agent:
142
+ - Ruby
143
+ Authorization:
144
+ - Bearer mn49oWGxijkPhEja3DfS1JXpq7P_P_ZtsAYiqPNohYQ-G2ZDnvCk2LMaH4ItLiiALFtZZ85uBqwpb8pGis_9s7Fr1qzivm69M7KLf1aERn5CMQRvMSEdUTfahJ0UfIRW5L3DgiLtGY1-KhhuavLMh6PpKal4vAJN22q694SACIF2-s4Vl3ah77bygjspbl0pRvngO9XPEPR_XCT45z7h1s1orkQwetf3WtxrQ4S6cBW20-Q0qZvF57j_5nd_N5sq4L-4AmcMFAS5GiNeDVLtmtBW1mignJCWs6AMsz7KMkDN4dHiRn8trHn29XbXj1JUcpZmioTcr38RRKK0mSDnl-J07g4brr-m3zucpw0of9wJiTMqAaNMWyeSjoZYMXr_fEy9cwIB_TFz78m7FcbDlf-G1j0jFoy2hsvB0fE-2mg
145
+ Content-Type:
146
+ - application/json
147
+ response:
148
+ status:
149
+ code: 201
150
+ message: Created
151
+ headers:
152
+ Cache-Control:
153
+ - no-cache
154
+ Pragma:
155
+ - no-cache
156
+ Content-Length:
157
+ - '32'
158
+ Content-Type:
159
+ - application/json; charset=utf-8
160
+ Expires:
161
+ - "-1"
162
+ Server:
163
+ - Microsoft-IIS/8.5
164
+ X-Powered-By:
165
+ - ASP.NET
166
+ Date:
167
+ - Mon, 14 Jan 2019 17:44:34 GMT
168
+ body:
169
+ encoding: UTF-8
170
+ string: '{"status":201,"resourceId":null}'
171
+ http_version:
172
+ recorded_at: Mon, 14 Jan 2019 17:44:35 GMT
173
+ - request:
174
+ method: post
175
+ uri: https://auth.listrak.com/OAuth2/Token
176
+ body:
177
+ encoding: US-ASCII
178
+ string: grant_type=client_credentials&client_id=doyfni0aw64ogd84ld6t&client_secret=LxdEE4Gu4aSJv5tS9osd8WudjGbJ%2BEIPYvZBS7bc5JU
179
+ headers:
180
+ Accept-Encoding:
181
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
182
+ Accept:
183
+ - "*/*"
184
+ User-Agent:
185
+ - Ruby
186
+ Content-Type:
187
+ - application/x-www-form-urlencoded
188
+ response:
189
+ status:
190
+ code: 200
191
+ message: OK
192
+ headers:
193
+ Cache-Control:
194
+ - no-cache
195
+ Pragma:
196
+ - no-cache
197
+ Content-Type:
198
+ - application/json;charset=UTF-8
199
+ Expires:
200
+ - "-1"
201
+ Server:
202
+ - Microsoft-IIS/8.5
203
+ X-Powered-By:
204
+ - ASP.NET
205
+ Date:
206
+ - Mon, 14 Jan 2019 17:44:36 GMT
207
+ Content-Length:
208
+ - '486'
209
+ body:
210
+ encoding: UTF-8
211
+ string: '{"access_token":"FziLUXqoHwKGslov3qOcdi9TKfMzAGiDzxIdeyjNluXpZTlpxybj9P-CCQd3TzPRHGpiFjy4NgEnOcGqp1VbxQUtulGuKEOnR5YjUnBpuFSs5XGexEUPE3pdj47-7qawzr5WF-_orX-7UEeV7hks7NPFwlpPm5jHPSA0MsJ9uejby03PMBl0VOwEj3w63Dhc3iwBmR_OSC4upIcH1LpMhAPw3YvyHFPQSQGtDqmZb9jKzq4fcqUpUTHVliusHER6ZBS7iRTNTINsMuDjJKJ4Nhb6xYkOqouYCS6gSPKt1OBfyFp8fyGdLBaFqOf8lqVZw3QQ967sgUqDB1kkXsJcvs1nYtnrmpkpSCCLzYzf-ChWvu43rWRykKhEEHl_fkYngUFIWwGgNX5cOIS_3AvxIvyRh1bpciOk8YRfaGegO_w","token_type":"bearer","expires_in":3599}'
212
+ http_version:
213
+ recorded_at: Mon, 14 Jan 2019 17:44:36 GMT
214
+ - request:
215
+ method: post
216
+ uri: https://api.listrak.com/email/v1/List/349984/Contact?overrideUnsubscribe=true
217
+ body:
218
+ encoding: UTF-8
219
+ string: '{"emailAddress":"employee+2@weblinc.com","subscriptionState":"Subscribed","segmentationFieldValues":null}'
220
+ headers:
221
+ Accept-Encoding:
222
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
223
+ Accept:
224
+ - application/json
225
+ User-Agent:
226
+ - Ruby
227
+ Authorization:
228
+ - Bearer FziLUXqoHwKGslov3qOcdi9TKfMzAGiDzxIdeyjNluXpZTlpxybj9P-CCQd3TzPRHGpiFjy4NgEnOcGqp1VbxQUtulGuKEOnR5YjUnBpuFSs5XGexEUPE3pdj47-7qawzr5WF-_orX-7UEeV7hks7NPFwlpPm5jHPSA0MsJ9uejby03PMBl0VOwEj3w63Dhc3iwBmR_OSC4upIcH1LpMhAPw3YvyHFPQSQGtDqmZb9jKzq4fcqUpUTHVliusHER6ZBS7iRTNTINsMuDjJKJ4Nhb6xYkOqouYCS6gSPKt1OBfyFp8fyGdLBaFqOf8lqVZw3QQ967sgUqDB1kkXsJcvs1nYtnrmpkpSCCLzYzf-ChWvu43rWRykKhEEHl_fkYngUFIWwGgNX5cOIS_3AvxIvyRh1bpciOk8YRfaGegO_w
229
+ Content-Type:
230
+ - application/json
231
+ response:
232
+ status:
233
+ code: 200
234
+ message: OK
235
+ headers:
236
+ Cache-Control:
237
+ - no-cache
238
+ Pragma:
239
+ - no-cache
240
+ Content-Length:
241
+ - '52'
242
+ Content-Type:
243
+ - application/json; charset=utf-8
244
+ Expires:
245
+ - "-1"
246
+ Server:
247
+ - Microsoft-IIS/8.5
248
+ X-Powered-By:
249
+ - ASP.NET
250
+ Date:
251
+ - Mon, 14 Jan 2019 17:44:36 GMT
252
+ body:
253
+ encoding: UTF-8
254
+ string: '{"status":200,"resourceId":"employee+2@weblinc.com"}'
255
+ http_version:
256
+ recorded_at: Mon, 14 Jan 2019 17:44:36 GMT
257
+ - request:
258
+ method: post
259
+ uri: https://auth.listrak.com/OAuth2/Token
260
+ body:
261
+ encoding: US-ASCII
262
+ string: grant_type=client_credentials&client_id=doyfni0aw64ogd84ld6t&client_secret=LxdEE4Gu4aSJv5tS9osd8WudjGbJ%2BEIPYvZBS7bc5JU
263
+ headers:
264
+ Accept-Encoding:
265
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
266
+ Accept:
267
+ - "*/*"
268
+ User-Agent:
269
+ - Ruby
270
+ Content-Type:
271
+ - application/x-www-form-urlencoded
272
+ response:
273
+ status:
274
+ code: 200
275
+ message: OK
276
+ headers:
277
+ Cache-Control:
278
+ - no-cache
279
+ Pragma:
280
+ - no-cache
281
+ Content-Type:
282
+ - application/json;charset=UTF-8
283
+ Expires:
284
+ - "-1"
285
+ Server:
286
+ - Microsoft-IIS/8.5
287
+ X-Powered-By:
288
+ - ASP.NET
289
+ Date:
290
+ - Mon, 14 Jan 2019 17:44:37 GMT
291
+ Content-Length:
292
+ - '486'
293
+ body:
294
+ encoding: UTF-8
295
+ string: '{"access_token":"U92YfRA1je9ubSlJI2QgwlAgdzmD7bakIiAsh16xjMf68nJeqe-bDoR9q2e27St0SDrnPZjezauxErynUOO6pGvixRtJrn_sR8OScgVkv1Uq_UP3m4_Af0UWNhztzdsxxw8mPBIATddpD29JfgeA4Ci_Jd_zbwPh8jjz2YRasdNx2xI3Z3i3bShUny_awigpJ1NM5bWekDAxWFcE8sGebnhHGfU8iSfSqGPAmtDrvdjG3YYnd_w26RpG4qYYsgPsjmzJiGGOlRx5qVzr3zEm0lU12Idml44lAMv-9KQBq7qxmbJ_7oUCjcxCY_mUjZUQZ0kjWg81F0UOaXdqTkmW71QWMlFSzKutLmGujqAo_2MA33fljLfDGMNLZ31u5uXpIoVdu5KL7Smxb3Ve8zwtGgmdhtar9teRWBHso6UfBrA","token_type":"bearer","expires_in":3599}'
296
+ http_version:
297
+ recorded_at: Mon, 14 Jan 2019 17:44:37 GMT
298
+ - request:
299
+ method: get
300
+ uri: https://api.listrak.com/email/v1/List/349984/Contact/employee+2@weblinc.com
301
+ body:
302
+ encoding: US-ASCII
303
+ string: ''
304
+ headers:
305
+ Accept-Encoding:
306
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
307
+ Accept:
308
+ - application/json
309
+ User-Agent:
310
+ - Ruby
311
+ Authorization:
312
+ - Bearer U92YfRA1je9ubSlJI2QgwlAgdzmD7bakIiAsh16xjMf68nJeqe-bDoR9q2e27St0SDrnPZjezauxErynUOO6pGvixRtJrn_sR8OScgVkv1Uq_UP3m4_Af0UWNhztzdsxxw8mPBIATddpD29JfgeA4Ci_Jd_zbwPh8jjz2YRasdNx2xI3Z3i3bShUny_awigpJ1NM5bWekDAxWFcE8sGebnhHGfU8iSfSqGPAmtDrvdjG3YYnd_w26RpG4qYYsgPsjmzJiGGOlRx5qVzr3zEm0lU12Idml44lAMv-9KQBq7qxmbJ_7oUCjcxCY_mUjZUQZ0kjWg81F0UOaXdqTkmW71QWMlFSzKutLmGujqAo_2MA33fljLfDGMNLZ31u5uXpIoVdu5KL7Smxb3Ve8zwtGgmdhtar9teRWBHso6UfBrA
313
+ Content-Type:
314
+ - application/json
315
+ response:
316
+ status:
317
+ code: 200
318
+ message: OK
319
+ headers:
320
+ Cache-Control:
321
+ - no-cache
322
+ Pragma:
323
+ - no-cache
324
+ Content-Length:
325
+ - '285'
326
+ Content-Type:
327
+ - application/json; charset=utf-8
328
+ Expires:
329
+ - "-1"
330
+ Server:
331
+ - Microsoft-IIS/8.5
332
+ X-Powered-By:
333
+ - ASP.NET
334
+ Date:
335
+ - Mon, 14 Jan 2019 17:44:37 GMT
336
+ body:
337
+ encoding: UTF-8
338
+ string: '{"status":200,"data":{"emailAddress":"employee+2@weblinc.com","emailKey":"84C5648D15B0646C14EF6519E6","subscriptionState":"Subscribed","subscribeDate":"2018-12-17T13:29:48","subscribeMethod":"Administrator","unsubscribeDate":null,"unsubscribeMethod":null,"segmentationFieldValues":[]}}'
339
+ http_version:
340
+ recorded_at: Mon, 14 Jan 2019 17:44:37 GMT
341
+ - request:
342
+ method: post
343
+ uri: https://auth.listrak.com/OAuth2/Token
344
+ body:
345
+ encoding: US-ASCII
346
+ string: grant_type=client_credentials&client_id=a&client_secret=b
347
+ headers:
348
+ Accept-Encoding:
349
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
350
+ Accept:
351
+ - "*/*"
352
+ User-Agent:
353
+ - Ruby
354
+ Content-Type:
355
+ - application/x-www-form-urlencoded
356
+ response:
357
+ status:
358
+ code: 200
359
+ message: OK
360
+ headers:
361
+ Cache-Control:
362
+ - no-cache
363
+ Pragma:
364
+ - no-cache
365
+ Content-Type:
366
+ - application/json;charset=UTF-8
367
+ Expires:
368
+ - "-1"
369
+ Server:
370
+ - Microsoft-IIS/8.5
371
+ X-Powered-By:
372
+ - ASP.NET
373
+ Date:
374
+ - Mon, 14 Jan 2019 17:44:38 GMT
375
+ Content-Length:
376
+ - '486'
377
+ body:
378
+ encoding: UTF-8
379
+ string: '{"access_token":"TZvY-_1aBzHxOThBqQp69V5tD59uia6E2VFJAEEdRX5a5NTeKOtD-y3XEUdsQpQATeCjcsGApWswmjNt6Z1ARM_3PK4z8MP9J4cOpZdiCCR1qra3cM7c34vpKc5PE_ren7sV6r5LPNoYxQpS41SW9hFSorYTbmkAl51sT1q5CN77DeibNu5i2g1IqAS18Z7WAPVrpnv6uN8B7ZHmLSlzWxdtBaG7K3ZHeFIS2EOTxS5YPaKNfu_rcYvygLjS79pK-BXL_jRHzhe7yFButaTYjKCKpbb7SVjiBjIRQ8QWGxWD6-ofKDaiPJYkJDn1F81SoqYa_gu_ji96mL9VOvTCiuyjHZF5SFVnm-N1gwyWasVInrEGpIqcT1JvKzTY1zsKOGhVO50DGhyy1kgI0fb6nbFreMxY3nM9d5lhtdfFVtM","token_type":"bearer","expires_in":3599}'
380
+ http_version:
381
+ recorded_at: Mon, 14 Jan 2019 17:44:39 GMT
382
+ - request:
383
+ method: post
384
+ uri: https://api.listrak.com/data/v1/Customer
385
+ body:
386
+ encoding: UTF-8
387
+ string: '[{"customerNumber":"5c3cca8287c68be526bc","email":"employee+2@weblinc.com","firstName":"","lastName":"","registered":true}]'
388
+ headers:
389
+ Accept-Encoding:
390
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
391
+ Accept:
392
+ - application/json
393
+ User-Agent:
394
+ - Ruby
395
+ Authorization:
396
+ - Bearer TZvY-_1aBzHxOThBqQp69V5tD59uia6E2VFJAEEdRX5a5NTeKOtD-y3XEUdsQpQATeCjcsGApWswmjNt6Z1ARM_3PK4z8MP9J4cOpZdiCCR1qra3cM7c34vpKc5PE_ren7sV6r5LPNoYxQpS41SW9hFSorYTbmkAl51sT1q5CN77DeibNu5i2g1IqAS18Z7WAPVrpnv6uN8B7ZHmLSlzWxdtBaG7K3ZHeFIS2EOTxS5YPaKNfu_rcYvygLjS79pK-BXL_jRHzhe7yFButaTYjKCKpbb7SVjiBjIRQ8QWGxWD6-ofKDaiPJYkJDn1F81SoqYa_gu_ji96mL9VOvTCiuyjHZF5SFVnm-N1gwyWasVInrEGpIqcT1JvKzTY1zsKOGhVO50DGhyy1kgI0fb6nbFreMxY3nM9d5lhtdfFVtM
397
+ Content-Type:
398
+ - application/json
399
+ response:
400
+ status:
401
+ code: 201
402
+ message: Created
403
+ headers:
404
+ Cache-Control:
405
+ - no-cache
406
+ Pragma:
407
+ - no-cache
408
+ Content-Length:
409
+ - '32'
410
+ Content-Type:
411
+ - application/json; charset=utf-8
412
+ Expires:
413
+ - "-1"
414
+ Server:
415
+ - Microsoft-IIS/8.5
416
+ X-Powered-By:
417
+ - ASP.NET
418
+ Date:
419
+ - Mon, 14 Jan 2019 17:44:38 GMT
420
+ body:
421
+ encoding: UTF-8
422
+ string: '{"status":201,"resourceId":null}'
423
+ http_version:
424
+ recorded_at: Mon, 14 Jan 2019 17:44:39 GMT
425
+ - request:
426
+ method: post
427
+ uri: https://auth.listrak.com/OAuth2/Token
428
+ body:
429
+ encoding: US-ASCII
430
+ string: grant_type=client_credentials&client_id=doyfni0aw64ogd84ld6t&client_secret=LxdEE4Gu4aSJv5tS9osd8WudjGbJ%2BEIPYvZBS7bc5JU
431
+ headers:
432
+ Accept-Encoding:
433
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
434
+ Accept:
435
+ - "*/*"
436
+ User-Agent:
437
+ - Ruby
438
+ Content-Type:
439
+ - application/x-www-form-urlencoded
440
+ response:
441
+ status:
442
+ code: 200
443
+ message: OK
444
+ headers:
445
+ Cache-Control:
446
+ - no-cache
447
+ Pragma:
448
+ - no-cache
449
+ Content-Type:
450
+ - application/json;charset=UTF-8
451
+ Expires:
452
+ - "-1"
453
+ Server:
454
+ - Microsoft-IIS/8.5
455
+ X-Powered-By:
456
+ - ASP.NET
457
+ Date:
458
+ - Mon, 14 Jan 2019 17:44:39 GMT
459
+ Content-Length:
460
+ - '486'
461
+ body:
462
+ encoding: UTF-8
463
+ string: '{"access_token":"RvtV37VEwTyKsQcaMDjjPXbKQFNuqlnNpNnguBPnF-ajoAcJ0yiW5svoifiwOHIjgg-gCGjmIJLf4iBE9K9TTeGXmxPadm3ySzheMGLxmEwgCvYNbdoIAV2I6e741MP0DrDsxFdZjAOtyMLfT7EpGOHscYOTir1YnEuTHyrBQWu331Otf_YrlEibkyGMvpnMolQYza1o3mnuG0cjbfocKY7k6ZhZIk8hYlztDULAWBxWk3AdSK-7-CAQzx1l84jt6ITuHmeqc9XggnM7Y21iLvVUdhAf0TQKAGfjPmd6It6gE-YXdxPnpPjPSf9GfXwTU5N_PDdbMaEdejLxsOKOhnma9x5wMZoilV7_85dYSWmzBuR3MTe8JyL5RdisOan745OCGgtn0gXyuOvDhX78kxWRRXV1aK99jldOdIgoWcA","token_type":"bearer","expires_in":3599}'
464
+ http_version:
465
+ recorded_at: Mon, 14 Jan 2019 17:44:39 GMT
466
+ - request:
467
+ method: post
468
+ uri: https://api.listrak.com/email/v1/List/349984/Contact?overrideUnsubscribe=true
469
+ body:
470
+ encoding: UTF-8
471
+ string: '{"emailAddress":"employee+2@weblinc.com","subscriptionState":"Unsubscribed","segmentationFieldValues":null}'
472
+ headers:
473
+ Accept-Encoding:
474
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
475
+ Accept:
476
+ - application/json
477
+ User-Agent:
478
+ - Ruby
479
+ Authorization:
480
+ - Bearer RvtV37VEwTyKsQcaMDjjPXbKQFNuqlnNpNnguBPnF-ajoAcJ0yiW5svoifiwOHIjgg-gCGjmIJLf4iBE9K9TTeGXmxPadm3ySzheMGLxmEwgCvYNbdoIAV2I6e741MP0DrDsxFdZjAOtyMLfT7EpGOHscYOTir1YnEuTHyrBQWu331Otf_YrlEibkyGMvpnMolQYza1o3mnuG0cjbfocKY7k6ZhZIk8hYlztDULAWBxWk3AdSK-7-CAQzx1l84jt6ITuHmeqc9XggnM7Y21iLvVUdhAf0TQKAGfjPmd6It6gE-YXdxPnpPjPSf9GfXwTU5N_PDdbMaEdejLxsOKOhnma9x5wMZoilV7_85dYSWmzBuR3MTe8JyL5RdisOan745OCGgtn0gXyuOvDhX78kxWRRXV1aK99jldOdIgoWcA
481
+ Content-Type:
482
+ - application/json
483
+ response:
484
+ status:
485
+ code: 200
486
+ message: OK
487
+ headers:
488
+ Cache-Control:
489
+ - no-cache
490
+ Pragma:
491
+ - no-cache
492
+ Content-Length:
493
+ - '52'
494
+ Content-Type:
495
+ - application/json; charset=utf-8
496
+ Expires:
497
+ - "-1"
498
+ Server:
499
+ - Microsoft-IIS/8.5
500
+ X-Powered-By:
501
+ - ASP.NET
502
+ Date:
503
+ - Mon, 14 Jan 2019 17:44:40 GMT
504
+ body:
505
+ encoding: UTF-8
506
+ string: '{"status":200,"resourceId":"employee+2@weblinc.com"}'
507
+ http_version:
508
+ recorded_at: Mon, 14 Jan 2019 17:44:40 GMT
509
+ - request:
510
+ method: post
511
+ uri: https://auth.listrak.com/OAuth2/Token
512
+ body:
513
+ encoding: US-ASCII
514
+ string: grant_type=client_credentials&client_id=doyfni0aw64ogd84ld6t&client_secret=LxdEE4Gu4aSJv5tS9osd8WudjGbJ%2BEIPYvZBS7bc5JU
515
+ headers:
516
+ Accept-Encoding:
517
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
518
+ Accept:
519
+ - "*/*"
520
+ User-Agent:
521
+ - Ruby
522
+ Content-Type:
523
+ - application/x-www-form-urlencoded
524
+ response:
525
+ status:
526
+ code: 200
527
+ message: OK
528
+ headers:
529
+ Cache-Control:
530
+ - no-cache
531
+ Pragma:
532
+ - no-cache
533
+ Content-Type:
534
+ - application/json;charset=UTF-8
535
+ Expires:
536
+ - "-1"
537
+ Server:
538
+ - Microsoft-IIS/8.5
539
+ X-Powered-By:
540
+ - ASP.NET
541
+ Date:
542
+ - Mon, 14 Jan 2019 17:44:41 GMT
543
+ Content-Length:
544
+ - '486'
545
+ body:
546
+ encoding: UTF-8
547
+ string: '{"access_token":"k_v05KGWA0P85o5m7Tsz9oJiczl1EJ9-G1SignCNBa0XDIH3ZUPw94FqmaBoZqM8Wa7CcTABpijyfGWAOvSlVwNAulb8ogKSRS9BzMCBR9VX-qxqzMrbvJeGKAE9_ijHzmaHT_zTEo92XMF5YTPMrVR2gYnqflB84jUB5Cq_UsHBUFQd5t_6vqlE-lBcKC9f_Qzn4ZlfaKonVqtpBXAyrzBmjT9Yq_ggyTuMnkJ1Tl02yjBVRka5KH-VCVSO89xFhzrulXNCOotRX_aMbaQUl3Z0Eg8wIs9VlhtfWxF-lUO-bfzG89Kuay0yGYQ1tPCXD55xf300DI4TZ8xWAQH2SYQGLJVKLtRidK3N-NnlIFe10_VyMQSG_nMhNexnGvvzVPoC-dIeffp_7xK_wlDxGsiEUlMw-jXaWZIs5d5yOJI","token_type":"bearer","expires_in":3599}'
548
+ http_version:
549
+ recorded_at: Mon, 14 Jan 2019 17:44:41 GMT
550
+ - request:
551
+ method: get
552
+ uri: https://api.listrak.com/email/v1/List/349984/Contact/employee+2@weblinc.com
553
+ body:
554
+ encoding: US-ASCII
555
+ string: ''
556
+ headers:
557
+ Accept-Encoding:
558
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
559
+ Accept:
560
+ - application/json
561
+ User-Agent:
562
+ - Ruby
563
+ Authorization:
564
+ - Bearer k_v05KGWA0P85o5m7Tsz9oJiczl1EJ9-G1SignCNBa0XDIH3ZUPw94FqmaBoZqM8Wa7CcTABpijyfGWAOvSlVwNAulb8ogKSRS9BzMCBR9VX-qxqzMrbvJeGKAE9_ijHzmaHT_zTEo92XMF5YTPMrVR2gYnqflB84jUB5Cq_UsHBUFQd5t_6vqlE-lBcKC9f_Qzn4ZlfaKonVqtpBXAyrzBmjT9Yq_ggyTuMnkJ1Tl02yjBVRka5KH-VCVSO89xFhzrulXNCOotRX_aMbaQUl3Z0Eg8wIs9VlhtfWxF-lUO-bfzG89Kuay0yGYQ1tPCXD55xf300DI4TZ8xWAQH2SYQGLJVKLtRidK3N-NnlIFe10_VyMQSG_nMhNexnGvvzVPoC-dIeffp_7xK_wlDxGsiEUlMw-jXaWZIs5d5yOJI
565
+ Content-Type:
566
+ - application/json
567
+ response:
568
+ status:
569
+ code: 200
570
+ message: OK
571
+ headers:
572
+ Cache-Control:
573
+ - no-cache
574
+ Pragma:
575
+ - no-cache
576
+ Content-Length:
577
+ - '304'
578
+ Content-Type:
579
+ - application/json; charset=utf-8
580
+ Expires:
581
+ - "-1"
582
+ Server:
583
+ - Microsoft-IIS/8.5
584
+ X-Powered-By:
585
+ - ASP.NET
586
+ Date:
587
+ - Mon, 14 Jan 2019 17:44:41 GMT
588
+ body:
589
+ encoding: UTF-8
590
+ string: '{"status":200,"data":{"emailAddress":"employee+2@weblinc.com","emailKey":"84C5648D15B0646C14EF6519E6","subscriptionState":"Unsubscribed","subscribeDate":"2018-12-17T13:29:48","subscribeMethod":null,"unsubscribeDate":"2019-01-14T12:44:40","unsubscribeMethod":"Administrator","segmentationFieldValues":[]}}'
591
+ http_version:
592
+ recorded_at: Mon, 14 Jan 2019 17:44:42 GMT
593
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,31 @@
1
+ require 'test_helper'
2
+
3
+ module Workarea
4
+ module Listrak
5
+ class OrderExporterTest < TestCase
6
+ include Workers
7
+
8
+ setup :store_bogus_client_requests
9
+ teardown :reset_bogus_client_requests
10
+
11
+ def test_exporting_an_order
12
+ Sidekiq::Callbacks.enable(Listrak::OrderExporter) do
13
+ create_placed_order
14
+
15
+ assert_equal 1, BogusDataApi.requests[:orders][:import].size
16
+ end
17
+ end
18
+
19
+ private
20
+
21
+ def store_bogus_client_requests
22
+ Workarea::Listrak::BogusDataApi.store_requests = true
23
+ Workarea::Listrak::BogusDataApi.reset_requests!
24
+ end
25
+
26
+ def reset_bogus_client_requests
27
+ Workarea::Listrak::BogusDataApi.store_requests = false
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,62 @@
1
+ require 'test_helper'
2
+
3
+ module Workarea
4
+ module Listrak
5
+ class ProductExporterTest < TestCase
6
+ include Workers
7
+
8
+ setup :store_bogus_client_requests
9
+ teardown :reset_bogus_client_requests
10
+
11
+ def test_exporting_from_product_save
12
+ Sidekiq::Callbacks.enable(Listrak::ProductExporter) do
13
+
14
+ create_product(
15
+ variants: [
16
+ { sku: 'SKU1', regular: 5.00 },
17
+ { sku: 'SKU2', regular: 5.00 },
18
+ ]
19
+ )
20
+ Pricing::Sku.find("SKU2").tap do |sku|
21
+ sku.prices.first.regular = 6.00
22
+ sku.save
23
+ end
24
+
25
+ assert_equal 2, BogusDataApi.requests[:products][:import].size
26
+ end
27
+ end
28
+
29
+ def test_exporting_from_updating_price
30
+ create_product(
31
+ variants: [
32
+ { sku: 'SKU1', regular: 5.00 }
33
+ ]
34
+ )
35
+ pricing_sku = Pricing::Sku.find('SKU1')
36
+ price = pricing_sku.prices.first
37
+
38
+ Sidekiq::Callbacks.enable(Listrak::ProductExporter) do
39
+ price.update_attributes(
40
+ regular: 0.44,
41
+ sale: 0.30,
42
+ min_quantity: 1,
43
+ active: true
44
+ )
45
+
46
+ assert_equal 1, BogusDataApi.requests[:products][:import].size
47
+ end
48
+ end
49
+
50
+ private
51
+
52
+ def store_bogus_client_requests
53
+ Workarea::Listrak::BogusDataApi.store_requests = true
54
+ Workarea::Listrak::BogusDataApi.reset_requests!
55
+ end
56
+
57
+ def reset_bogus_client_requests
58
+ Workarea::Listrak::BogusDataApi.store_requests = false
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,16 @@
1
+ $LOAD_PATH.push File.expand_path("../lib", __FILE__)
2
+
3
+ require "workarea/listrak/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "workarea-listrak"
7
+ s.version = Workarea::Listrak::VERSION
8
+ s.authors = ["Eric Pigeon"]
9
+ s.email = ["epigeon@workarea.com"]
10
+ s.homepage = "http://www.workarea.com"
11
+ s.summary = "Listrak plugin for Workarea"
12
+ s.description = "Integrates with Listrak services"
13
+ s.files = `git ls-files`.split("\n")
14
+
15
+ s.add_dependency "workarea", "~> 3.x", ">= 3.0.5"
16
+ end