workarea-listrak 5.0.1

Sign up to get free protection for your applications and to get access to all the features.
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