spree_mollie_gateway 1.0.3 → 1.0.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8c66b3c62d5e292911139de9d48fc799a5a02b18b4f872ab972bae7229d342ff
4
- data.tar.gz: 788764fa3178195a152719dfd6b16d91f0360fadd9f9f2d7ed4cc2d66a1ee677
3
+ metadata.gz: 0597c2142e1842cd3cb8a181a1a6dd58df8bd3162baf0bc6d58139f9ca031a85
4
+ data.tar.gz: b6890c82d507eae40c1b371805b5e8eb1986c0479212cdb45317ba835a2ef0cc
5
5
  SHA512:
6
- metadata.gz: 8816155881f8c7e161b18b06e6a3a162166da205f375576894e44fe3870dd7601784d5478b367b639cceb027e2a45dbff8fb5fefbb6cebd2843349b172ea147c
7
- data.tar.gz: c099764b6dd1d44c5cb8d3574e2bf8ba1efb0ed36d678aff7dd78f35ed8ee132a9bb544c71c7c23ee6a4c3aac5f362e09d46235cdfcd5644318775a83e8a3ba2
6
+ metadata.gz: 76dec8c188757cb73b710cca266efefe500e75e69dea6ec4c67a0b00d9e4d807365137e43ddfbcd7c9ccbc6d18ac2f53432fd3a7ee8fd191d46505b68f014b32
7
+ data.tar.gz: e31b748acf562a8587c88044bd5b70055fac7e3f9f06db1525e14032a4a8797d8989f774d8fff6b90e18af210a998b574da222633658cfa97d4db9bdbb5e79a8
data/.gitignore CHANGED
@@ -6,10 +6,11 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ Gemfile.lock
9
10
 
10
11
  # rspec failure tracking
11
12
  .rspec_status
12
13
  .idea/
13
14
  *.gem
14
15
  spec/dummy
15
- .bundle/
16
+ .bundle/
@@ -2,7 +2,7 @@ Spree.user_class.class_eval do
2
2
  after_create :create_mollie_customer
3
3
 
4
4
  def create_mollie_customer
5
- # Don't create Mollie customers is spree_auth_devise is not installed.
5
+ # Don't create Mollie customers if spree_auth_devise is not installed.
6
6
  return unless defined? Spree::User
7
7
  mollie_gateway = Spree::PaymentMethod.find_by_type 'Spree::Gateway::MollieGateway'
8
8
  mollie_customer = mollie_gateway.create_customer(self)
@@ -0,0 +1,220 @@
1
+ # Integrating with the Spree API
2
+
3
+ This guide explains how the Spree checkout flow works when using the Mollie gateway in combination with the Spree API.
4
+
5
+ ## Set up your development environment
6
+
7
+ To make sure webhooks on your local machine can be called, we recommend installing `ngrok`.
8
+
9
+ Make sure `ngrok` listens to port `3000`:
10
+
11
+ ```
12
+ ❯ ./ngrok http 3000
13
+ ```
14
+
15
+ You will then see a `Forwarding URL` which is using HTTPS. Using HTTPS for webhooks is a required for webhooks.
16
+
17
+ Make sure to set the new `ngrok` URL as the Hostname in your payment gateway settings: `http://localhost:3000/admin/payment_methods/4/edit`
18
+
19
+ Start your rails server:
20
+
21
+ ```
22
+ rails server
23
+ ```
24
+
25
+ ## Checkout flow
26
+
27
+ Creating an order using the Spree API is pretty easy. You can test the order creation flow by executing the following actions:
28
+
29
+ 1. Create a new `Spree::Order`.
30
+ 2. Add items (`line_items`) to your order.
31
+ 3. Walk through the checkout flow by transitioning to different states (`address`, `delivery`, `payment`, `complete`).
32
+ 4. Create a new payment. Each `Spree::Payment` is related to one Mollie payment. You can create multiple payments for one order (in case the previous payment failed, for example).
33
+
34
+ ### Create a new `Spree::Order`
35
+
36
+ ```bash
37
+ curl -X "POST" "http://localhost:3000/api/v1/orders" \
38
+ -H 'X-Spree-Token: <token>'
39
+ ```
40
+
41
+ ## Add a new line item to your order
42
+
43
+ ```bash
44
+ curl -X "POST" "http://localhost:3000/api/v1/orders/R287180370/line_items?line_item%5Bvariant_id%5D=1&line_item%5Bquantity%5D=1" \
45
+ -H 'X-Spree-Token: <token>'
46
+ ```
47
+
48
+ ## Start the checkout process
49
+
50
+ Spree has several checkout states, the default ones are:
51
+
52
+ 1. `cart`
53
+ 2. `address`
54
+ 3. `delivery`
55
+ 4. `payment`
56
+ 5. `complete`
57
+
58
+ We're only covering the `payment` and `complete` steps. Documentation on the other checkout steps can be found [in the Spree API documentation](https://guides.spreecommerce.org/api/checkouts.html#address).
59
+
60
+ ### Listing available payment methods
61
+
62
+ You an get a list of Mollie payment methods (and its issuers if any) by making the following request:
63
+
64
+ ```bash
65
+ curl "http://localhost:3000/api/v1/mollie/methods" \
66
+ -H 'X-Spree-Token: <token>'
67
+ ```
68
+
69
+ This will return the following response:
70
+
71
+ ```json
72
+ [
73
+ {
74
+ "attributes": {
75
+ "resource": "method",
76
+ "id": "ideal",
77
+ "description": "iDEAL",
78
+ "amount": {
79
+ "minimum": "0.01",
80
+ "maximum": "50000.00"
81
+ },
82
+ "image": {
83
+ "normal": "https://www.mollie.com/images/payscreen/methods/ideal.png",
84
+ "bigger": "https://www.mollie.com/images/payscreen/methods/ideal%402x.png"
85
+ },
86
+ "issuers": [
87
+ {
88
+ "resource": "issuer",
89
+ "id": "ideal_TESTNL99",
90
+ "name": "TBM Bank",
91
+ "method": "ideal",
92
+ "image": {
93
+ "normal": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/TESTNL99.png",
94
+ "bigger": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/TESTNL99%402x.png"
95
+ }
96
+ }
97
+ ]
98
+ },
99
+ "id": "ideal",
100
+ "description": "iDEAL",
101
+ "amount": {
102
+ "minimum": "0.01",
103
+ "maximum": "50000.00"
104
+ },
105
+ "image": {
106
+ "normal": "https://www.mollie.com/images/payscreen/methods/ideal.png",
107
+ "bigger": "https://www.mollie.com/images/payscreen/methods/ideal%402x.png"
108
+ }
109
+ }
110
+ ]
111
+ ```
112
+
113
+ ### Creating a new payment
114
+
115
+ When you're about to advance your order to the `payment` state, you can do so by calling:
116
+
117
+ ```bash
118
+ curl -X "PUT" "http://localhost:3000/api/v1/checkouts/<order_id>/next" \
119
+ -H 'X-Spree-Token: <token>'
120
+ ```
121
+
122
+ This will result in the following example response:
123
+
124
+ ```
125
+ {
126
+ [...]
127
+ number: R805041440,
128
+ state: payment,
129
+ item_total: 0.01,
130
+ payment_state: null,
131
+ payments: [],
132
+ payment_methods: [
133
+ {
134
+ id: 4,
135
+ name: Mollie,
136
+ method_type: molliegateway,
137
+ }
138
+ ]
139
+ [...]
140
+ }
141
+ ```
142
+
143
+ In the example response above, the `payments ` array is empty, which means there are no payments created for the order. We need to tell Spree which `Spree::PaymentMethod` we would like to use for our payment (and which method we want to use for our payment).
144
+ We can use the ID that Spree just returned for this, in combination with the `id` of the preferred Mollie payment method (which we retrieved earlier).
145
+
146
+ ```bash
147
+ curl -X "PUT" "http://localhost:3000/api/v1/checkouts/<order_id>" \
148
+ -H 'X-Spree-Token: <token>' \
149
+ -d $'{
150
+ "order": {
151
+ "payments_attributes": [
152
+ {
153
+ "payment_method_id": "4"
154
+ }
155
+ ]
156
+ },
157
+ "payment_source": {
158
+ "4": {
159
+ "payment_method_name": "ideal"
160
+ }
161
+ }
162
+ }'
163
+ ```
164
+
165
+ Spree will respond with the following example response:
166
+
167
+ ```
168
+ {
169
+ [...]
170
+ state: 'complete',
171
+ payment_state: 'balance_due',
172
+ payments: [
173
+ {
174
+ id: 96,
175
+ source_type: "Spree::MolliePaymentSource",
176
+ source_id: 100,
177
+ amount: "0.02",
178
+ display_amount: "€0.02",
179
+ payment_method_id: 4,
180
+ state: "pending",
181
+ avs_response: null,
182
+ created_at: "2018-03-17T15:55:13.000Z",
183
+ updated_at: "2018-03-17T15:55:13.000Z",
184
+ number: "PAP5KQV3",
185
+ payment_method: { id: 4, name: "Mollie" },
186
+ source: {
187
+ id: 100,
188
+ name: "iDEAL",
189
+ payment_method_name: "ideal",
190
+ payment_url:
191
+ "https://www.mollie.com/paymentscreen/issuer/select/ideal/Hsnrg2nqqe",
192
+ },
193
+ }
194
+ ]
195
+ }
196
+ ```
197
+
198
+ The order has now been transitioned to the state `complete`, but the order has not been paid for. Also, no order confirmation mail has been sent to the customer.
199
+
200
+ In our `source` node, we get a `payment_url`. You should now redirect your users to this URL, so they can complete their payment.
201
+
202
+ If everything goes well, our order's `payment_state` will transition from `balance_due` to `paid`. The order confirmation mail will now be send to the user.
203
+
204
+ Did the payment fail? Make sure to create a new payment and redirect the user to the new `payment_url`.
205
+
206
+ ## Payment states mapping
207
+
208
+ Each Mollie payment state will transition the order to the following order state:
209
+
210
+ | Mollie state | Spree order state |
211
+ |--------------|-------------------|
212
+ | paid | complete |
213
+ | cancelled | failed |
214
+ | expired | failed |
215
+ | failed | failed |
216
+ | refunded | void |
217
+
218
+ ## Debugging the checkout flow
219
+
220
+ Each action within the Mollie gateway is logged in a separate log file. [Learn more about Debugging](https://github.com/mollie/spree-mollie-gateway/blob/master/docs/debugging.md).
data/docs/api/readme.md CHANGED
@@ -4,4 +4,5 @@ This gateway seamlessly integrates with the <a href="https://guides.spreecommerc
4
4
 
5
5
  ## Endpoints
6
6
 
7
+ - <a href="checkout.md">Integrating with the Spree API</a>
7
8
  - <a href="methods.md">Get Mollie payment methods</a>
@@ -1,3 +1,3 @@
1
1
  module SpreeMollieGateway
2
- VERSION = '1.0.3'
2
+ VERSION = '1.0.4'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_mollie_gateway
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vernon de Goede
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-04-10 00:00:00.000000000 Z
11
+ date: 2018-05-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree_core
@@ -298,7 +298,6 @@ files:
298
298
  - ".travis.yml"
299
299
  - CONTRIBUTING.md
300
300
  - Gemfile
301
- - Gemfile.lock
302
301
  - README.md
303
302
  - Rakefile
304
303
  - app/controllers/spree/api/v1/mollie_controller.rb
@@ -321,6 +320,7 @@ files:
321
320
  - config/routes.rb
322
321
  - db/migrate/20180214133044_create_spree_mollie_payment_sources.rb
323
322
  - db/migrate/20180301084841_add_mollie_customer_id_to_spree_user.rb
323
+ - docs/api/checkout.md
324
324
  - docs/api/methods.md
325
325
  - docs/api/readme.md
326
326
  - docs/debugging.md
@@ -351,7 +351,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
351
351
  version: '0'
352
352
  requirements: []
353
353
  rubyforge_project:
354
- rubygems_version: 2.7.6
354
+ rubygems_version: 2.7.7
355
355
  signing_key:
356
356
  specification_version: 4
357
357
  summary: Mollie payments for Spree Commerce.
data/Gemfile.lock DELETED
@@ -1,358 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- spree_mollie_gateway (1.0.3)
5
- mollie-api-ruby (~> 3.1, >= 3.1.4.pre.beta)
6
- spree_backend (>= 3.1.0, < 4.0)
7
- spree_core (>= 3.1.0, < 4.0)
8
- spree_extension
9
- spree_frontend (>= 3.1.0, < 4.0)
10
-
11
- GEM
12
- remote: https://rubygems.org/
13
- specs:
14
- actioncable (5.1.5)
15
- actionpack (= 5.1.5)
16
- nio4r (~> 2.0)
17
- websocket-driver (~> 0.6.1)
18
- actionmailer (5.1.5)
19
- actionpack (= 5.1.5)
20
- actionview (= 5.1.5)
21
- activejob (= 5.1.5)
22
- mail (~> 2.5, >= 2.5.4)
23
- rails-dom-testing (~> 2.0)
24
- actionpack (5.1.5)
25
- actionview (= 5.1.5)
26
- activesupport (= 5.1.5)
27
- rack (~> 2.0)
28
- rack-test (>= 0.6.3)
29
- rails-dom-testing (~> 2.0)
30
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
31
- actionview (5.1.5)
32
- activesupport (= 5.1.5)
33
- builder (~> 3.1)
34
- erubi (~> 1.4)
35
- rails-dom-testing (~> 2.0)
36
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
37
- activejob (5.1.5)
38
- activesupport (= 5.1.5)
39
- globalid (>= 0.3.6)
40
- activemerchant (1.78.0)
41
- activesupport (>= 3.2.14, < 6.x)
42
- builder (>= 2.1.2, < 4.0.0)
43
- i18n (>= 0.6.9)
44
- nokogiri (~> 1.4)
45
- activemodel (5.1.5)
46
- activesupport (= 5.1.5)
47
- activerecord (5.1.5)
48
- activemodel (= 5.1.5)
49
- activesupport (= 5.1.5)
50
- arel (~> 8.0)
51
- activesupport (5.1.5)
52
- concurrent-ruby (~> 1.0, >= 1.0.2)
53
- i18n (~> 0.7)
54
- minitest (~> 5.1)
55
- tzinfo (~> 1.1)
56
- acts-as-taggable-on (5.0.0)
57
- activerecord (>= 4.2.8)
58
- acts_as_list (0.9.11)
59
- activerecord (>= 3.0)
60
- addressable (2.5.2)
61
- public_suffix (>= 2.0.2, < 4.0)
62
- arel (8.0.0)
63
- autoprefixer-rails (8.2.0)
64
- execjs
65
- awesome_nested_set (3.1.4)
66
- activerecord (>= 4.0.0, < 5.3)
67
- bootstrap-sass (3.3.7)
68
- autoprefixer-rails (>= 5.2.1)
69
- sass (>= 3.3.4)
70
- builder (3.2.3)
71
- camertron-eprun (1.1.1)
72
- cancancan (2.1.4)
73
- canonical-rails (0.2.2)
74
- rails (>= 4.1, < 5.2)
75
- carmen (1.0.2)
76
- activesupport (>= 3.0.0)
77
- childprocess (0.9.0)
78
- ffi (~> 1.0, >= 1.0.11)
79
- cldr-plurals-runtime-rb (1.0.1)
80
- climate_control (0.2.0)
81
- cocaine (0.5.8)
82
- climate_control (>= 0.0.3, < 1.0)
83
- coffee-rails (4.2.2)
84
- coffee-script (>= 2.2.0)
85
- railties (>= 4.0.0)
86
- coffee-script (2.4.1)
87
- coffee-script-source
88
- execjs
89
- coffee-script-source (1.12.2)
90
- concurrent-ruby (1.0.5)
91
- crass (1.0.3)
92
- css_parser (1.6.0)
93
- addressable
94
- database_cleaner (1.6.2)
95
- deface (1.3.0)
96
- nokogiri (~> 1.6)
97
- polyglot
98
- rails (>= 4.1)
99
- rainbow (>= 2.1.0)
100
- diff-lcs (1.3)
101
- docile (1.3.0)
102
- erubi (1.7.1)
103
- execjs (2.7.0)
104
- factory_bot (4.8.2)
105
- activesupport (>= 3.0.0)
106
- ffaker (2.8.1)
107
- ffi (1.9.23)
108
- friendly_id (5.2.3)
109
- activerecord (>= 4.0.0)
110
- globalid (0.4.1)
111
- activesupport (>= 4.2.0)
112
- highline (1.6.21)
113
- htmlentities (4.3.4)
114
- i18n (0.9.5)
115
- concurrent-ruby (~> 1.0)
116
- jquery-rails (4.3.1)
117
- rails-dom-testing (>= 1, < 3)
118
- railties (>= 4.2.0)
119
- thor (>= 0.14, < 2.0)
120
- jquery-ui-rails (6.0.1)
121
- railties (>= 3.2.16)
122
- json (2.1.0)
123
- kaminari (1.0.1)
124
- activesupport (>= 4.1.0)
125
- kaminari-actionview (= 1.0.1)
126
- kaminari-activerecord (= 1.0.1)
127
- kaminari-core (= 1.0.1)
128
- kaminari-actionview (1.0.1)
129
- actionview
130
- kaminari-core (= 1.0.1)
131
- kaminari-activerecord (1.0.1)
132
- activerecord
133
- kaminari-core (= 1.0.1)
134
- kaminari-core (1.0.1)
135
- loofah (2.2.1)
136
- crass (~> 1.0.2)
137
- nokogiri (>= 1.5.9)
138
- mail (2.7.0)
139
- mini_mime (>= 0.1.1)
140
- method_source (0.9.0)
141
- mime-types (3.1)
142
- mime-types-data (~> 3.2015)
143
- mime-types-data (3.2016.0521)
144
- mimemagic (0.3.2)
145
- mini_mime (1.0.0)
146
- mini_portile2 (2.3.0)
147
- minitest (5.11.3)
148
- mollie-api-ruby (3.1.4.pre.beta)
149
- monetize (1.7.0)
150
- money (~> 6.9)
151
- money (6.11.0)
152
- i18n (>= 0.6.4, < 1.1)
153
- mysql2 (0.4.10)
154
- nio4r (2.3.0)
155
- nokogiri (1.8.2)
156
- mini_portile2 (~> 2.3.0)
157
- paperclip (5.2.0)
158
- activemodel (>= 4.2.0)
159
- activesupport (>= 4.2.0)
160
- cocaine (~> 0.5.5)
161
- mime-types
162
- mimemagic (~> 0.3.0)
163
- paranoia (2.3.1)
164
- activerecord (>= 4.0, < 5.2)
165
- polyamorous (1.3.3)
166
- activerecord (>= 3.0)
167
- polyglot (0.3.5)
168
- premailer (1.11.1)
169
- addressable
170
- css_parser (>= 1.6.0)
171
- htmlentities (>= 4.0.0)
172
- premailer-rails (1.10.2)
173
- actionmailer (>= 3, < 6)
174
- premailer (~> 1.7, >= 1.7.9)
175
- public_suffix (3.0.2)
176
- rabl (0.13.1)
177
- activesupport (>= 2.3.14)
178
- rack (2.0.4)
179
- rack-test (0.8.3)
180
- rack (>= 1.0, < 3)
181
- rails (5.1.5)
182
- actioncable (= 5.1.5)
183
- actionmailer (= 5.1.5)
184
- actionpack (= 5.1.5)
185
- actionview (= 5.1.5)
186
- activejob (= 5.1.5)
187
- activemodel (= 5.1.5)
188
- activerecord (= 5.1.5)
189
- activesupport (= 5.1.5)
190
- bundler (>= 1.3.0)
191
- railties (= 5.1.5)
192
- sprockets-rails (>= 2.0.0)
193
- rails-dom-testing (2.0.3)
194
- activesupport (>= 4.2.0)
195
- nokogiri (>= 1.6)
196
- rails-html-sanitizer (1.0.3)
197
- loofah (~> 2.0)
198
- railties (5.1.5)
199
- actionpack (= 5.1.5)
200
- activesupport (= 5.1.5)
201
- method_source
202
- rake (>= 0.8.7)
203
- thor (>= 0.18.1, < 2.0)
204
- rainbow (3.0.0)
205
- rake (10.5.0)
206
- ransack (1.8.8)
207
- actionpack (>= 3.0)
208
- activerecord (>= 3.0)
209
- activesupport (>= 3.0)
210
- i18n
211
- polyamorous (~> 1.3.2)
212
- rb-fsevent (0.10.3)
213
- rb-inotify (0.9.10)
214
- ffi (>= 0.5.0, < 2)
215
- responders (2.4.0)
216
- actionpack (>= 4.2.0, < 5.3)
217
- railties (>= 4.2.0, < 5.3)
218
- rspec (3.7.0)
219
- rspec-core (~> 3.7.0)
220
- rspec-expectations (~> 3.7.0)
221
- rspec-mocks (~> 3.7.0)
222
- rspec-core (3.7.1)
223
- rspec-support (~> 3.7.0)
224
- rspec-expectations (3.7.0)
225
- diff-lcs (>= 1.2.0, < 2.0)
226
- rspec-support (~> 3.7.0)
227
- rspec-mocks (3.7.0)
228
- diff-lcs (>= 1.2.0, < 2.0)
229
- rspec-support (~> 3.7.0)
230
- rspec-rails (3.7.2)
231
- actionpack (>= 3.0)
232
- activesupport (>= 3.0)
233
- railties (>= 3.0)
234
- rspec-core (~> 3.7.0)
235
- rspec-expectations (~> 3.7.0)
236
- rspec-mocks (~> 3.7.0)
237
- rspec-support (~> 3.7.0)
238
- rspec-support (3.7.1)
239
- rubyzip (1.2.1)
240
- sass (3.5.5)
241
- sass-listen (~> 4.0.0)
242
- sass-listen (4.0.0)
243
- rb-fsevent (~> 0.9, >= 0.9.4)
244
- rb-inotify (~> 0.9, >= 0.9.7)
245
- sass-rails (5.0.7)
246
- railties (>= 4.0.0, < 6)
247
- sass (~> 3.1)
248
- sprockets (>= 2.8, < 4.0)
249
- sprockets-rails (>= 2.0, < 4.0)
250
- tilt (>= 1.1, < 3)
251
- select2-rails (3.5.9.1)
252
- thor (~> 0.14)
253
- selenium-webdriver (3.11.0)
254
- childprocess (~> 0.5)
255
- rubyzip (~> 1.2)
256
- simplecov (0.16.1)
257
- docile (~> 1.1)
258
- json (>= 1.8, < 3)
259
- simplecov-html (~> 0.10.0)
260
- simplecov-html (0.10.2)
261
- spree_api (3.4.4)
262
- rabl (~> 0.13.1)
263
- spree_core (= 3.4.4)
264
- versioncake (~> 3.3.0)
265
- spree_backend (3.4.4)
266
- bootstrap-sass (~> 3.3)
267
- jquery-rails (~> 4.3)
268
- jquery-ui-rails (~> 6.0.1)
269
- select2-rails (= 3.5.9.1)
270
- spree_api (= 3.4.4)
271
- spree_core (= 3.4.4)
272
- spree_core (3.4.4)
273
- activemerchant (~> 1.67)
274
- acts-as-taggable-on (~> 5.0)
275
- acts_as_list (~> 0.8)
276
- awesome_nested_set (~> 3.1.3)
277
- cancancan (~> 2.0)
278
- carmen (~> 1.0.0)
279
- deface (~> 1.0)
280
- ffaker (~> 2.2)
281
- friendly_id (~> 5.2.1)
282
- highline (~> 1.6.18)
283
- kaminari (~> 1.0.1)
284
- monetize (~> 1.1)
285
- paperclip (~> 5.1.0)
286
- paranoia (~> 2.3.0)
287
- premailer-rails
288
- rails (~> 5.1.4)
289
- ransack (~> 1.8.0)
290
- responders
291
- sprockets-rails
292
- state_machines-activerecord (~> 0.5)
293
- stringex
294
- twitter_cldr (~> 4.3)
295
- spree_extension (0.0.5)
296
- activerecord (>= 4.2)
297
- spree_frontend (3.4.4)
298
- bootstrap-sass (>= 3.3.5.1, < 3.4)
299
- canonical-rails (~> 0.2.0)
300
- jquery-rails (~> 4.3)
301
- spree_api (= 3.4.4)
302
- spree_core (= 3.4.4)
303
- sprockets (3.7.1)
304
- concurrent-ruby (~> 1.0)
305
- rack (> 1, < 3)
306
- sprockets-rails (3.2.1)
307
- actionpack (>= 4.0)
308
- activesupport (>= 4.0)
309
- sprockets (>= 3.0.0)
310
- sqlite3 (1.3.13)
311
- state_machines (0.5.0)
312
- state_machines-activemodel (0.5.1)
313
- activemodel (>= 4.1, < 6.0)
314
- state_machines (>= 0.5.0)
315
- state_machines-activerecord (0.5.1)
316
- activerecord (>= 4.1, < 6.0)
317
- state_machines-activemodel (>= 0.5.0)
318
- stringex (2.8.4)
319
- thor (0.20.0)
320
- thread_safe (0.3.6)
321
- tilt (2.0.8)
322
- twitter_cldr (4.4.3)
323
- camertron-eprun
324
- cldr-plurals-runtime-rb (~> 1.0)
325
- tzinfo
326
- tzinfo (1.2.5)
327
- thread_safe (~> 0.1)
328
- versioncake (3.3.0)
329
- actionpack (>= 3.2)
330
- activesupport (>= 3.2)
331
- railties (>= 3.2)
332
- tzinfo
333
- websocket-driver (0.6.5)
334
- websocket-extensions (>= 0.1.0)
335
- websocket-extensions (0.1.3)
336
-
337
- PLATFORMS
338
- ruby
339
-
340
- DEPENDENCIES
341
- bundler (~> 1.16)
342
- coffee-rails
343
- database_cleaner
344
- factory_bot
345
- ffaker
346
- mollie-api-ruby (~> 3.1.4.pre.beta)
347
- mysql2
348
- rake (~> 10.0)
349
- rspec (~> 3.0)
350
- rspec-rails (~> 3.7.2)
351
- sass-rails
352
- selenium-webdriver
353
- simplecov
354
- spree_mollie_gateway!
355
- sqlite3
356
-
357
- BUNDLED WITH
358
- 1.16.1