solidus_paypal_braintree 0.4.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (135) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +40 -0
  3. data/.gem_release.yml +5 -0
  4. data/.github/stale.yml +17 -0
  5. data/.gitignore +18 -0
  6. data/.rspec +2 -0
  7. data/.rubocop.yml +68 -0
  8. data/CHANGELOG.md +258 -0
  9. data/Gemfile +43 -0
  10. data/LICENSE +2 -2
  11. data/README.md +77 -23
  12. data/Rakefile +4 -25
  13. data/app/assets/javascripts/solidus_paypal_braintree/checkout.js +32 -3
  14. data/app/assets/javascripts/solidus_paypal_braintree/client.js +23 -4
  15. data/app/assets/javascripts/solidus_paypal_braintree/constants.js +19 -0
  16. data/app/assets/javascripts/solidus_paypal_braintree/frontend.js +1 -0
  17. data/app/assets/javascripts/solidus_paypal_braintree/hosted_form.js +15 -5
  18. data/app/assets/javascripts/solidus_paypal_braintree/paypal_button.js +47 -20
  19. data/app/assets/javascripts/solidus_paypal_braintree/paypal_messaging.js +22 -0
  20. data/app/decorators/controllers/solidus_paypal_braintree/admin_payments_controller_decorator.rb +11 -0
  21. data/app/decorators/controllers/solidus_paypal_braintree/checkout_controller_decorator.rb +11 -0
  22. data/app/decorators/controllers/solidus_paypal_braintree/client_tokens_controller.rb +41 -0
  23. data/app/decorators/controllers/solidus_paypal_braintree/orders_controller_decorator.rb +11 -0
  24. data/app/decorators/models/solidus_paypal_braintree/spree/store_decorator.rb +20 -0
  25. data/app/decorators/models/solidus_paypal_braintree/spree/user_decorator.rb +13 -0
  26. data/app/helpers/solidus_paypal_braintree/braintree_admin_helper.rb +23 -0
  27. data/app/helpers/solidus_paypal_braintree/braintree_checkout_helper.rb +46 -0
  28. data/app/models/application_record.rb +2 -0
  29. data/app/models/solidus_paypal_braintree/address.rb +30 -0
  30. data/app/models/solidus_paypal_braintree/configuration.rb +26 -3
  31. data/app/models/solidus_paypal_braintree/customer.rb +7 -3
  32. data/app/models/solidus_paypal_braintree/gateway.rb +52 -20
  33. data/app/models/solidus_paypal_braintree/response.rb +3 -2
  34. data/app/models/solidus_paypal_braintree/source.rb +21 -7
  35. data/app/models/solidus_paypal_braintree/transaction.rb +2 -0
  36. data/app/models/solidus_paypal_braintree/transaction_address.rb +30 -12
  37. data/app/models/solidus_paypal_braintree/transaction_import.rb +13 -9
  38. data/app/views/spree/api/payments/source_views/_paypal_braintree.json.jbuilder +3 -0
  39. data/app/views/spree/checkout/existing_payment/_paypal_braintree.html.erb +10 -0
  40. data/app/views/spree/shared/_apple_pay_button.html.erb +2 -2
  41. data/app/views/spree/shared/_braintree_errors.html.erb +11 -17
  42. data/app/views/spree/shared/_braintree_hosted_fields.html.erb +24 -9
  43. data/app/views/spree/shared/_paypal_braintree_head_scripts.html.erb +9 -6
  44. data/app/views/spree/shared/_paypal_cart_button.html.erb +16 -2
  45. data/app/views/spree/shared/_paypal_messaging.html.erb +13 -0
  46. data/bin/console +17 -0
  47. data/bin/rails +15 -0
  48. data/bin/setup +8 -0
  49. data/config/locales/en.yml +10 -0
  50. data/config/locales/it.yml +51 -8
  51. data/config/routes.rb +2 -0
  52. data/db/migrate/20160906201711_create_solidus_paypal_braintree_customers.rb +3 -1
  53. data/db/migrate/20161125172005_add_braintree_configuration_to_stores.rb +5 -7
  54. data/db/migrate/20170505193712_add_null_constraint_to_sources.rb +3 -1
  55. data/db/migrate/20190705115327_add_paypal_button_preferences_to_braintree_configurations.rb +5 -0
  56. data/db/migrate/20190911141712_add_3d_secure_to_braintree_configuration.rb +5 -0
  57. data/lib/controllers/backend/solidus_paypal_braintree/configurations_controller.rb +20 -5
  58. data/lib/controllers/frontend/solidus_paypal_braintree/checkouts_controller.rb +25 -21
  59. data/lib/controllers/frontend/solidus_paypal_braintree/transactions_controller.rb +55 -51
  60. data/lib/generators/solidus_paypal_braintree/install/install_generator.rb +7 -5
  61. data/lib/solidus_paypal_braintree.rb +4 -0
  62. data/lib/solidus_paypal_braintree/country_mapper.rb +4 -2
  63. data/lib/solidus_paypal_braintree/engine.rb +11 -11
  64. data/lib/solidus_paypal_braintree/factories.rb +8 -4
  65. data/lib/solidus_paypal_braintree/request_protection.rb +3 -0
  66. data/lib/solidus_paypal_braintree/version.rb +3 -1
  67. data/lib/views/backend/solidus_paypal_braintree/configurations/list.html.erb +30 -5
  68. data/lib/views/backend/spree/admin/payments/source_forms/_paypal_braintree.html.erb +2 -2
  69. data/lib/views/backend/spree/admin/payments/source_views/_paypal_braintree.html.erb +2 -2
  70. data/lib/views/backend_v1.2/spree/admin/payments/source_forms/_paypal_braintree.html.erb +2 -2
  71. data/lib/views/frontend/spree/checkout/payment/_paypal_braintree.html.erb +4 -2
  72. data/lib/views/frontend/spree/shared/_paypal_checkout_button.html.erb +30 -0
  73. data/solidus_paypal_braintree.gemspec +42 -0
  74. data/spec/controllers/solidus_paypal_braintree/checkouts_controller_spec.rb +99 -0
  75. data/spec/controllers/solidus_paypal_braintree/client_tokens_controller_spec.rb +55 -0
  76. data/spec/controllers/solidus_paypal_braintree/configurations_controller_spec.rb +73 -0
  77. data/spec/controllers/solidus_paypal_braintree/transactions_controller_spec.rb +183 -0
  78. data/spec/features/backend/configuration_spec.rb +23 -0
  79. data/spec/features/backend/new_payment_spec.rb +137 -0
  80. data/spec/features/frontend/braintree_credit_card_checkout_spec.rb +187 -0
  81. data/spec/features/frontend/paypal_checkout_spec.rb +166 -0
  82. data/spec/fixtures/cassettes/admin/invalid_credit_card.yml +63 -0
  83. data/spec/fixtures/cassettes/admin/resubmit_credit_card.yml +352 -0
  84. data/spec/fixtures/cassettes/admin/valid_credit_card.yml +412 -0
  85. data/spec/fixtures/cassettes/braintree/create_profile.yml +71 -0
  86. data/spec/fixtures/cassettes/braintree/generate_token.yml +63 -0
  87. data/spec/fixtures/cassettes/braintree/token.yml +63 -0
  88. data/spec/fixtures/cassettes/checkout/invalid_credit_card.yml +63 -0
  89. data/spec/fixtures/cassettes/checkout/resubmit_credit_card.yml +216 -0
  90. data/spec/fixtures/cassettes/checkout/update.yml +71 -0
  91. data/spec/fixtures/cassettes/checkout/valid_credit_card.yml +156 -0
  92. data/spec/fixtures/cassettes/gateway/authorize.yml +86 -0
  93. data/spec/fixtures/cassettes/gateway/authorize/credit_card/address.yml +86 -0
  94. data/spec/fixtures/cassettes/gateway/authorize/merchant_account/EUR.yml +154 -0
  95. data/spec/fixtures/cassettes/gateway/authorize/paypal/EUR.yml +90 -0
  96. data/spec/fixtures/cassettes/gateway/authorize/paypal/address.yml +90 -0
  97. data/spec/fixtures/cassettes/gateway/authorized_transaction.yml +73 -0
  98. data/spec/fixtures/cassettes/gateway/cancel/missing.yml +63 -0
  99. data/spec/fixtures/cassettes/gateway/cancel/refunds.yml +272 -0
  100. data/spec/fixtures/cassettes/gateway/cancel/void.yml +201 -0
  101. data/spec/fixtures/cassettes/gateway/capture.yml +141 -0
  102. data/spec/fixtures/cassettes/gateway/complete.yml +157 -0
  103. data/spec/fixtures/cassettes/gateway/credit.yml +208 -0
  104. data/spec/fixtures/cassettes/gateway/purchase.yml +87 -0
  105. data/spec/fixtures/cassettes/gateway/settled_transaction.yml +140 -0
  106. data/spec/fixtures/cassettes/gateway/void.yml +137 -0
  107. data/spec/fixtures/cassettes/source/card_type.yml +267 -0
  108. data/spec/fixtures/cassettes/source/last4.yml +267 -0
  109. data/spec/fixtures/cassettes/transaction/import/valid.yml +71 -0
  110. data/spec/fixtures/cassettes/transaction/import/valid/capture.yml +224 -0
  111. data/spec/fixtures/views/spree/orders/edit.html.erb +50 -0
  112. data/spec/helpers/solidus_paypal_braintree/braintree_admin_helper_spec.rb +17 -0
  113. data/spec/models/solidus_paypal_braintree/address_spec.rb +51 -0
  114. data/spec/models/solidus_paypal_braintree/avs_result_spec.rb +317 -0
  115. data/spec/models/solidus_paypal_braintree/gateway_spec.rb +692 -0
  116. data/spec/models/solidus_paypal_braintree/response_spec.rb +280 -0
  117. data/spec/models/solidus_paypal_braintree/source_spec.rb +360 -0
  118. data/spec/models/solidus_paypal_braintree/transaction_address_spec.rb +253 -0
  119. data/spec/models/solidus_paypal_braintree/transaction_import_spec.rb +283 -0
  120. data/spec/models/solidus_paypal_braintree/transaction_spec.rb +85 -0
  121. data/spec/models/spree/store_spec.rb +14 -0
  122. data/spec/requests/spree/api/orders_controller_spec.rb +36 -0
  123. data/spec/spec_helper.rb +26 -0
  124. data/spec/support/capybara.rb +7 -0
  125. data/spec/support/factories.rb +2 -0
  126. data/spec/support/gateway_helpers.rb +29 -0
  127. data/spec/support/order_ready_for_payment.rb +37 -0
  128. data/spec/support/vcr.rb +42 -0
  129. data/spec/support/views.rb +1 -0
  130. metadata +182 -194
  131. data/app/controllers/solidus_paypal_braintree/client_tokens_controller.rb +0 -22
  132. data/app/helpers/braintree_admin_helper.rb +0 -18
  133. data/app/models/spree/store_decorator.rb +0 -11
  134. data/app/views/spree/shared/_paypal_checkout_button.html.erb +0 -27
  135. data/config/initializers/braintree.rb +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4532cc1c243930da786249db6885159a0dbbdcd33c93cdbafc4e97bd78f14938
4
- data.tar.gz: dea753bf431d112a13398b4a62083bceccdbdb95f9cd265a08c0eaf1636f5e8c
3
+ metadata.gz: 26a7829a5a2fbf512cd75cdb2857a9c270d8e52820bd7f21a8648a856486b754
4
+ data.tar.gz: 99213770d4a6e62d92e85672f03137b3b03470ad174451688ad1846a348bd453
5
5
  SHA512:
6
- metadata.gz: ee52c4df8624682f72c3de3169284435868f3c70e502398c28142bba67648964d1cd2fcea89e3b72c94d075fcc01ac9cfd955f54b489ecb33eefd68d0553541f
7
- data.tar.gz: 4d71c81ee1f5c5d70579c84ce186df98951e91de9acb1ef8c6b68cba94b3013daf10d9869c32ce6dd4e3fb7145e5bf9c6f9c42a2e9249aa69b5a09dc21896ce1
6
+ metadata.gz: e75c8f594b1ba611ff381bdc3e1e48098bd43f3fe1ba16ce3c858bf9ba751f3336b4a8d92b5d6c84755a7000191c144e4c26db92fcdcf0809cb562a8c5383917
7
+ data.tar.gz: acd2cb974d3e49a66e0ba460d3a363f5ac39c3cf54e6e07f03d80ef84c50ed4dee5cd5ab90663d000e22c1a98a48dd76d1b773e3d68cbcd83fd044026275fb08
@@ -0,0 +1,40 @@
1
+ version: 2.1
2
+
3
+ orbs:
4
+ # Always take the latest version of the orb, this allows us to
5
+ # run specs against Solidus supported versions only without the need
6
+ # to change this configuration every time a Solidus version is released
7
+ # or goes EOL.
8
+ solidusio_extensions: solidusio/extensions@volatile
9
+
10
+ jobs:
11
+ run-specs-with-postgres:
12
+ executor: solidusio_extensions/postgres
13
+ steps:
14
+ - solidusio_extensions/run-tests
15
+ run-specs-with-mysql:
16
+ executor: solidusio_extensions/mysql
17
+ steps:
18
+ - solidusio_extensions/run-tests
19
+ lint-code:
20
+ executor: solidusio_extensions/sqlite-memory
21
+ steps:
22
+ - solidusio_extensions/lint-code
23
+
24
+ workflows:
25
+ "Run specs on supported Solidus versions":
26
+ jobs:
27
+ - run-specs-with-postgres
28
+ - run-specs-with-mysql
29
+ - lint-code
30
+ "Weekly run specs against master":
31
+ triggers:
32
+ - schedule:
33
+ cron: "0 0 * * 4" # every Thursday
34
+ filters:
35
+ branches:
36
+ only:
37
+ - master
38
+ jobs:
39
+ - run-specs-with-postgres
40
+ - run-specs-with-mysql
@@ -0,0 +1,5 @@
1
+ bump:
2
+ recurse: false
3
+ file: 'lib/solidus_paypal_braintree/version.rb'
4
+ message: Bump SolidusPaypalBraintree to %{version}
5
+ tag: true
@@ -0,0 +1,17 @@
1
+ # Number of days of inactivity before an issue becomes stale
2
+ daysUntilStale: 60
3
+ # Number of days of inactivity before a stale issue is closed
4
+ daysUntilClose: 7
5
+ # Issues with these labels will never be considered stale
6
+ exemptLabels:
7
+ - pinned
8
+ - security
9
+ # Label to use when marking an issue as stale
10
+ staleLabel: wontfix
11
+ # Comment to post when marking an issue as stale. Set to `false` to disable
12
+ markComment: >
13
+ This issue has been automatically marked as stale because it has not had
14
+ recent activity. It will be closed if no further activity occurs. Thank you
15
+ for your contributions.
16
+ # Comment to post when closing a stale issue. Set to `false` to disable
17
+ closeComment: false
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ \#*
3
+ *~
4
+ .#*
5
+ .DS_Store
6
+ .idea
7
+ .project
8
+ .sass-cache
9
+ coverage
10
+ Gemfile.lock
11
+ tmp
12
+ nbproject
13
+ pkg
14
+ *.swp
15
+ spec/dummy
16
+ spec/examples.txt
17
+ .bundle/
18
+ .env
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
@@ -0,0 +1,68 @@
1
+ require:
2
+ - solidus_dev_support/rubocop
3
+
4
+ AllCops:
5
+ NewCops: enable
6
+ TargetRubyVersion: 2.4
7
+
8
+ Layout/FirstArgumentIndentation:
9
+ EnforcedStyle: consistent
10
+
11
+ Layout/FirstArrayElementIndentation:
12
+ EnforcedStyle: consistent
13
+
14
+ Layout/FirstHashElementIndentation:
15
+ EnforcedStyle: consistent
16
+
17
+ Layout/MultilineMethodCallIndentation:
18
+ EnforcedStyle: indented
19
+
20
+ # We use this extensively, the alternatives are not viable or desirable.
21
+ RSpec/AnyInstance:
22
+ Enabled: false
23
+
24
+ # No need to make the code more complex for no real gain.
25
+ RSpec/MessageSpies:
26
+ Enabled: false
27
+
28
+ # Let's consider legitimate to have multiple expectations within an example.
29
+ RSpec/MultipleExpectations:
30
+ Enabled: false
31
+
32
+ # Allow to use subject as is, no big deal.
33
+ RSpec/NamedSubject:
34
+ Enabled: false
35
+
36
+ # Let's set this to some really exagerate value.
37
+ RSpec/NestedGroups:
38
+ Max: 8
39
+
40
+ RSpec/VerifiedDoubles:
41
+ # Sometimes you really need an "anything" double
42
+ IgnoreSymbolicNames: true
43
+
44
+ Style/FrozenStringLiteralComment:
45
+ Exclude:
46
+ - spec/**/*
47
+ - db/migrate/**/*
48
+ - bin/**/*
49
+
50
+ Style/ExplicitBlockArgument:
51
+ Exclude:
52
+ - lib/solidus_paypal_braintree/request_protection.rb
53
+
54
+ Rails/SkipsModelValidations:
55
+ Exclude:
56
+ - db/migrate/**/*
57
+
58
+ Rails/ReflectionClassName:
59
+ Exclude:
60
+ - app/models/solidus_paypal_braintree/customer.rb
61
+ - app/models/solidus_paypal_braintree/source.rb
62
+
63
+ RSpec/MultipleMemoizedHelpers:
64
+ Exclude:
65
+ - spec/models/solidus_paypal_braintree/transaction_import_spec.rb
66
+ - spec/models/solidus_paypal_braintree/response_spec.rb
67
+ - spec/models/solidus_paypal_braintree/gateway_spec.rb
68
+ - spec/controllers/solidus_paypal_braintree/client_tokens_controller_spec.rb
@@ -0,0 +1,258 @@
1
+ # Changelog
2
+
3
+ ## [v1.0.0](https://github.com/solidusio/solidus_paypal_braintree/tree/v1.0.0) (2020-11-11)
4
+
5
+ [Full Changelog](https://github.com/solidusio/solidus_paypal_braintree/compare/v0.4.0...v1.0.0)
6
+
7
+ **Implemented enhancements:**
8
+
9
+ - Respect Spree::Config\[:address\_requires\_state\] setting in frontend view rendering [\#93](https://github.com/solidusio/solidus_paypal_braintree/issues/93)
10
+
11
+ **Closed issues:**
12
+
13
+ - Make the PayPal messaging component a bit more modular [\#281](https://github.com/solidusio/solidus_paypal_braintree/issues/281)
14
+ - Error launching migrations [\#262](https://github.com/solidusio/solidus_paypal_braintree/issues/262)
15
+ - Refunds not allowed after a PayPal dispute has been resolved [\#256](https://github.com/solidusio/solidus_paypal_braintree/issues/256)
16
+ - Spree::Core::GatewayError generates error [\#254](https://github.com/solidusio/solidus_paypal_braintree/issues/254)
17
+ - Paypal button preference helper not found [\#251](https://github.com/solidusio/solidus_paypal_braintree/issues/251)
18
+ - Installer breaks during migration [\#244](https://github.com/solidusio/solidus_paypal_braintree/issues/244)
19
+ - Some card unsuccessful verification numbers are accepted and marked as paid [\#241](https://github.com/solidusio/solidus_paypal_braintree/issues/241)
20
+ - PayPal button: customize style [\#229](https://github.com/solidusio/solidus_paypal_braintree/issues/229)
21
+ - On PayPal payment user shipping address gets set with uncorrect firstname and lastname values if they contain a space [\#226](https://github.com/solidusio/solidus_paypal_braintree/issues/226)
22
+ - Default Braintree configuration on store creation overwrites custom configuration [\#224](https://github.com/solidusio/solidus_paypal_braintree/issues/224)
23
+ - Undefined local variable or method `id' error on payment page [\#222](https://github.com/solidusio/solidus_paypal_braintree/issues/222)
24
+ - Can't render JSON about an order as SolidusPaypalBraintree::Source doesn't have a `expiration\_month` method [\#221](https://github.com/solidusio/solidus_paypal_braintree/issues/221)
25
+ - Paypal payment return invalid address [\#218](https://github.com/solidusio/solidus_paypal_braintree/issues/218)
26
+ - Random Travis CI Failures [\#215](https://github.com/solidusio/solidus_paypal_braintree/issues/215)
27
+ - Add Association for spree user to customer [\#210](https://github.com/solidusio/solidus_paypal_braintree/issues/210)
28
+ - Ambiguous behavior for generate token method [\#208](https://github.com/solidusio/solidus_paypal_braintree/issues/208)
29
+ - Unable to pass specs locally when developing for gem [\#207](https://github.com/solidusio/solidus_paypal_braintree/issues/207)
30
+ - Nonce payment sources should not be reusable [\#203](https://github.com/solidusio/solidus_paypal_braintree/issues/203)
31
+ - Save and Continue button disabled for credit card payments - Rails 5.2.0 [\#202](https://github.com/solidusio/solidus_paypal_braintree/issues/202)
32
+ - when only using PayPal invalid address on return [\#195](https://github.com/solidusio/solidus_paypal_braintree/issues/195)
33
+ - Unable to set preference source [\#194](https://github.com/solidusio/solidus_paypal_braintree/issues/194)
34
+ - hard dependency on solidus instead of just solidus\_core [\#187](https://github.com/solidusio/solidus_paypal_braintree/issues/187)
35
+ - patch release 0.4.1 [\#186](https://github.com/solidusio/solidus_paypal_braintree/issues/186)
36
+ - Amount must be greater than zero. \(81531\) [\#185](https://github.com/solidusio/solidus_paypal_braintree/issues/185)
37
+ - ActiveRecord::SubclassNotFound [\#184](https://github.com/solidusio/solidus_paypal_braintree/issues/184)
38
+ - state: '\#{address.state.name}' undefined for Hong Kong address \(or countries with no states\) [\#182](https://github.com/solidusio/solidus_paypal_braintree/issues/182)
39
+ - ReferenceError: braintree is not defined [\#181](https://github.com/solidusio/solidus_paypal_braintree/issues/181)
40
+ - Page refreshes from payment -\> confirm step [\#172](https://github.com/solidusio/solidus_paypal_braintree/issues/172)
41
+ - Creditcard fields are readonly [\#171](https://github.com/solidusio/solidus_paypal_braintree/issues/171)
42
+ - Solidus 2.6 requires spree/api/payments/source\_views/\_paypal\_braintree.json.jbuilder [\#167](https://github.com/solidusio/solidus_paypal_braintree/issues/167)
43
+ - Will there be a integration of 3D Secure soon? [\#162](https://github.com/solidusio/solidus_paypal_braintree/issues/162)
44
+ - Products invisible in Admin Order view / Crash in the log [\#159](https://github.com/solidusio/solidus_paypal_braintree/issues/159)
45
+ - Invalid transactions, NoMethodError \(strip\) when cancelling order with invalid payment [\#158](https://github.com/solidusio/solidus_paypal_braintree/issues/158)
46
+ - NoMethodError in Spree::Checkout\#edit when address.state == nil [\#156](https://github.com/solidusio/solidus_paypal_braintree/issues/156)
47
+ - Cancel PayPal order causes 500 error [\#155](https://github.com/solidusio/solidus_paypal_braintree/issues/155)
48
+ - Silent failure after payment [\#153](https://github.com/solidusio/solidus_paypal_braintree/issues/153)
49
+ - Undefined local variable or method `solidus\_paypal\_braintree' [\#152](https://github.com/solidusio/solidus_paypal_braintree/issues/152)
50
+ - Braintree Callback Webhooks Supported? [\#148](https://github.com/solidusio/solidus_paypal_braintree/issues/148)
51
+ - Missing partial spree/checkout/existing\_payment/\_paypal\_braintree [\#135](https://github.com/solidusio/solidus_paypal_braintree/issues/135)
52
+ - No route if the engine is not mounted in Solidus path [\#134](https://github.com/solidusio/solidus_paypal_braintree/issues/134)
53
+ - Allow passing of styles and placeholder text into braintree hosted fields [\#121](https://github.com/solidusio/solidus_paypal_braintree/issues/121)
54
+ - When spree javascript is included at bottom of page, checkout fails [\#119](https://github.com/solidusio/solidus_paypal_braintree/issues/119)
55
+ - Document "Paypal Payee Email Map" [\#103](https://github.com/solidusio/solidus_paypal_braintree/issues/103)
56
+ - Disable backend CC submit button until ready [\#102](https://github.com/solidusio/solidus_paypal_braintree/issues/102)
57
+ - Documentation improvements [\#92](https://github.com/solidusio/solidus_paypal_braintree/issues/92)
58
+
59
+ **Merged pull requests:**
60
+
61
+ - Add note about PayPal recommendations for messaging component [\#280](https://github.com/solidusio/solidus_paypal_braintree/pull/280) ([seand7565](https://github.com/seand7565))
62
+ - Move decorators to the correct folders and add EngineExtensions [\#279](https://github.com/solidusio/solidus_paypal_braintree/pull/279) ([seand7565](https://github.com/seand7565))
63
+ - Disable PayPal messaging when vault flow is enabled [\#278](https://github.com/solidusio/solidus_paypal_braintree/pull/278) ([seand7565](https://github.com/seand7565))
64
+ - Fix deprecated solidus\_gem\_version reference in spec [\#277](https://github.com/solidusio/solidus_paypal_braintree/pull/277) ([pelargir](https://github.com/pelargir))
65
+ - Allow user to specify style and placeholder\_text of hosted\_fields [\#276](https://github.com/solidusio/solidus_paypal_braintree/pull/276) ([seand7565](https://github.com/seand7565))
66
+ - Add a PayPal messaging component partial [\#275](https://github.com/solidusio/solidus_paypal_braintree/pull/275) ([seand7565](https://github.com/seand7565))
67
+ - Sanitize user address json for PayPal button [\#274](https://github.com/solidusio/solidus_paypal_braintree/pull/274) ([seand7565](https://github.com/seand7565))
68
+ - Add PayPal messaging component to cart button partial [\#273](https://github.com/solidusio/solidus_paypal_braintree/pull/273) ([seand7565](https://github.com/seand7565))
69
+ - Update transaction\_address to support name attribute [\#271](https://github.com/solidusio/solidus_paypal_braintree/pull/271) ([seand7565](https://github.com/seand7565))
70
+ - Fix api source view path [\#270](https://github.com/solidusio/solidus_paypal_braintree/pull/270) ([seand7565](https://github.com/seand7565))
71
+ - Add info about paypal\_payee\_map to readme [\#269](https://github.com/solidusio/solidus_paypal_braintree/pull/269) ([seand7565](https://github.com/seand7565))
72
+ - Update rubocop definitions and fix violations [\#268](https://github.com/solidusio/solidus_paypal_braintree/pull/268) ([seand7565](https://github.com/seand7565))
73
+ - Update to New PayPal SDK [\#267](https://github.com/solidusio/solidus_paypal_braintree/pull/267) ([seand7565](https://github.com/seand7565))
74
+ - Fix Spree::Core lookup in gateway [\#266](https://github.com/solidusio/solidus_paypal_braintree/pull/266) ([seand7565](https://github.com/seand7565))
75
+ - Move decorators out of models folder [\#265](https://github.com/solidusio/solidus_paypal_braintree/pull/265) ([seand7565](https://github.com/seand7565))
76
+ - Fix 3DS testing [\#264](https://github.com/solidusio/solidus_paypal_braintree/pull/264) ([seand7565](https://github.com/seand7565))
77
+ - Fix value conversion method [\#263](https://github.com/solidusio/solidus_paypal_braintree/pull/263) ([seand7565](https://github.com/seand7565))
78
+ - Updated solidus\_support gem version [\#261](https://github.com/solidusio/solidus_paypal_braintree/pull/261) ([mustiag](https://github.com/mustiag))
79
+ - Fix feature specs with new CC expiration date [\#253](https://github.com/solidusio/solidus_paypal_braintree/pull/253) ([MinasMazar](https://github.com/MinasMazar))
80
+ - Fix Braintree checkout helpers [\#252](https://github.com/solidusio/solidus_paypal_braintree/pull/252) ([MinasMazar](https://github.com/MinasMazar))
81
+ - Remove AddBraintreeConfigurationToStores migration [\#249](https://github.com/solidusio/solidus_paypal_braintree/pull/249) ([MinasMazar](https://github.com/MinasMazar))
82
+ - Upgrade the extension using solidus\_dev\_support [\#248](https://github.com/solidusio/solidus_paypal_braintree/pull/248) ([blocknotes](https://github.com/blocknotes))
83
+ - Update README.md [\#246](https://github.com/solidusio/solidus_paypal_braintree/pull/246) ([bazfer](https://github.com/bazfer))
84
+ - Make http open and read timeouts configurable [\#245](https://github.com/solidusio/solidus_paypal_braintree/pull/245) ([tvdeyen](https://github.com/tvdeyen))
85
+ - Add PayPal button customizable style also for cart page [\#243](https://github.com/solidusio/solidus_paypal_braintree/pull/243) ([MinasMazar](https://github.com/MinasMazar))
86
+ - Respect vault/checkout configuration on cart paypal button [\#239](https://github.com/solidusio/solidus_paypal_braintree/pull/239) ([mamhoff](https://github.com/mamhoff))
87
+ - Only add state if available in Paypal Checkout Button View [\#237](https://github.com/solidusio/solidus_paypal_braintree/pull/237) ([mamhoff](https://github.com/mamhoff))
88
+ - Let PayPal button to receive locale/style parameters [\#236](https://github.com/solidusio/solidus_paypal_braintree/pull/236) ([MinasMazar](https://github.com/MinasMazar))
89
+ - Fix shipping contact name for ApplePay [\#234](https://github.com/solidusio/solidus_paypal_braintree/pull/234) ([cedum](https://github.com/cedum))
90
+ - Adopt CircleCI instead of Travis [\#233](https://github.com/solidusio/solidus_paypal_braintree/pull/233) ([aldesantis](https://github.com/aldesantis))
91
+ - Introduce 3D Secure support for credit cards [\#232](https://github.com/solidusio/solidus_paypal_braintree/pull/232) ([cedum](https://github.com/cedum))
92
+ - Update italian translations [\#230](https://github.com/solidusio/solidus_paypal_braintree/pull/230) ([delphaber](https://github.com/delphaber))
93
+ - Skip building default config on config presence [\#225](https://github.com/solidusio/solidus_paypal_braintree/pull/225) ([mdesantis](https://github.com/mdesantis))
94
+ - Fix undefined local variable or method `id' error [\#223](https://github.com/solidusio/solidus_paypal_braintree/pull/223) ([mdesantis](https://github.com/mdesantis))
95
+ - Simplify Solidus Dependencies [\#220](https://github.com/solidusio/solidus_paypal_braintree/pull/220) ([gmacdougall](https://github.com/gmacdougall))
96
+ - Extension maintenance [\#216](https://github.com/solidusio/solidus_paypal_braintree/pull/216) ([aitbw](https://github.com/aitbw))
97
+ - Add byebug dependency [\#214](https://github.com/solidusio/solidus_paypal_braintree/pull/214) ([skukx](https://github.com/skukx))
98
+ - Add API payment source view for Braintree payments [\#213](https://github.com/solidusio/solidus_paypal_braintree/pull/213) ([aldesantis](https://github.com/aldesantis))
99
+ - Add association from user to customer [\#211](https://github.com/solidusio/solidus_paypal_braintree/pull/211) ([skukx](https://github.com/skukx))
100
+ - Fix ambiguous behavior in generate\_token method [\#209](https://github.com/solidusio/solidus_paypal_braintree/pull/209) ([skukx](https://github.com/skukx))
101
+ - Make nonce-only payment sources non-reusable [\#204](https://github.com/solidusio/solidus_paypal_braintree/pull/204) ([fastjames](https://github.com/fastjames))
102
+ - Check for rails-ujs object when re-enabling button [\#201](https://github.com/solidusio/solidus_paypal_braintree/pull/201) ([masonjeffreys](https://github.com/masonjeffreys))
103
+ - Allow null address Paypal payload [\#199](https://github.com/solidusio/solidus_paypal_braintree/pull/199) ([alepore](https://github.com/alepore))
104
+ - Display Paypal setup errors on console [\#198](https://github.com/solidusio/solidus_paypal_braintree/pull/198) ([alepore](https://github.com/alepore))
105
+ - Fix CI build [\#193](https://github.com/solidusio/solidus_paypal_braintree/pull/193) ([kennyadsl](https://github.com/kennyadsl))
106
+ - Remove versions past EOL from .travis.yml [\#189](https://github.com/solidusio/solidus_paypal_braintree/pull/189) ([jacobherrington](https://github.com/jacobherrington))
107
+ - Add Solidus 2.7 to .travis.yml [\#188](https://github.com/solidusio/solidus_paypal_braintree/pull/188) ([jacobherrington](https://github.com/jacobherrington))
108
+ - Manage PAYPAL\_POPUP\_CLOSED JS error [\#183](https://github.com/solidusio/solidus_paypal_braintree/pull/183) ([spaghetticode](https://github.com/spaghetticode))
109
+ - Add fields to match Spree::CreditCard's interface [\#180](https://github.com/solidusio/solidus_paypal_braintree/pull/180) ([adammathys](https://github.com/adammathys))
110
+ - Add existing payments partial [\#175](https://github.com/solidusio/solidus_paypal_braintree/pull/175) ([alepore](https://github.com/alepore))
111
+ - Fix error display [\#174](https://github.com/solidusio/solidus_paypal_braintree/pull/174) ([alepore](https://github.com/alepore))
112
+ - Express Checkout support [\#168](https://github.com/solidusio/solidus_paypal_braintree/pull/168) ([aldesantis](https://github.com/aldesantis))
113
+ - Update PayPal configuration instructions [\#164](https://github.com/solidusio/solidus_paypal_braintree/pull/164) ([kennyadsl](https://github.com/kennyadsl))
114
+
115
+ ## [v0.4.0](https://github.com/solidusio/solidus_paypal_braintree/tree/v0.4.0) (2018-07-20)
116
+
117
+ [Full Changelog](https://github.com/solidusio/solidus_paypal_braintree/compare/v0.3.0...v0.4.0)
118
+
119
+ **Closed issues:**
120
+
121
+ - Move from the deprecated paypal.js library to the current paypal-checkout.js library? [\#157](https://github.com/solidusio/solidus_paypal_braintree/issues/157)
122
+
123
+ **Merged pull requests:**
124
+
125
+ - Prepare 0.4.0 release. [\#179](https://github.com/solidusio/solidus_paypal_braintree/pull/179) ([snarfmason](https://github.com/snarfmason))
126
+ - Remove Deface [\#178](https://github.com/solidusio/solidus_paypal_braintree/pull/178) ([snarfmason](https://github.com/snarfmason))
127
+ - Update CI Ruby and specs config [\#177](https://github.com/solidusio/solidus_paypal_braintree/pull/177) ([alepore](https://github.com/alepore))
128
+ - Fix Gateway\#try\_void expecting a respose code instead of a payment [\#173](https://github.com/solidusio/solidus_paypal_braintree/pull/173) ([aldesantis](https://github.com/aldesantis))
129
+ - Update Braintree and PayPal libs [\#170](https://github.com/solidusio/solidus_paypal_braintree/pull/170) ([alepore](https://github.com/alepore))
130
+ - Scope the payment method lookup to store when the id is unknown [\#150](https://github.com/solidusio/solidus_paypal_braintree/pull/150) ([dholdren](https://github.com/dholdren))
131
+ - Restart checkout when cart Paypal button is used [\#144](https://github.com/solidusio/solidus_paypal_braintree/pull/144) ([alepore](https://github.com/alepore))
132
+ - Set Braintree log level as a gateway preference [\#110](https://github.com/solidusio/solidus_paypal_braintree/pull/110) ([isaacfreeman](https://github.com/isaacfreeman))
133
+
134
+ ## [v0.3.0](https://github.com/solidusio/solidus_paypal_braintree/tree/v0.3.0) (2018-05-25)
135
+
136
+ [Full Changelog](https://github.com/solidusio/solidus_paypal_braintree/compare/v0.2.0...v0.3.0)
137
+
138
+ **Closed issues:**
139
+
140
+ - Using Only PayPal [\#166](https://github.com/solidusio/solidus_paypal_braintree/issues/166)
141
+ - Handle changed address from Paypal [\#163](https://github.com/solidusio/solidus_paypal_braintree/issues/163)
142
+ - ActiveRecord::SubclassNotFound after trying to save payment gateway record [\#147](https://github.com/solidusio/solidus_paypal_braintree/issues/147)
143
+ - uninitialized constant AVSResult [\#137](https://github.com/solidusio/solidus_paypal_braintree/issues/137)
144
+ - Missing partial spree/admin/shared/preference\_fields/\_hash [\#132](https://github.com/solidusio/solidus_paypal_braintree/issues/132)
145
+ - Allow sources to be added to the wallet on charge [\#122](https://github.com/solidusio/solidus_paypal_braintree/issues/122)
146
+ - Address deprecation warnings [\#108](https://github.com/solidusio/solidus_paypal_braintree/issues/108)
147
+
148
+ **Merged pull requests:**
149
+
150
+ - Remove unmaintained Solidus versions from the build matrix [\#169](https://github.com/solidusio/solidus_paypal_braintree/pull/169) ([aldesantis](https://github.com/aldesantis))
151
+ - Specify bourbon \<5 [\#146](https://github.com/solidusio/solidus_paypal_braintree/pull/146) ([jhawthorn](https://github.com/jhawthorn))
152
+ - Use latest Bundler while building [\#145](https://github.com/solidusio/solidus_paypal_braintree/pull/145) ([tvdeyen](https://github.com/tvdeyen))
153
+ - Recalculate payment total when order total decreases [\#142](https://github.com/solidusio/solidus_paypal_braintree/pull/142) ([dholdren](https://github.com/dholdren))
154
+ - Update TransactionAddress\#state\_code validation [\#141](https://github.com/solidusio/solidus_paypal_braintree/pull/141) ([alepore](https://github.com/alepore))
155
+ - Remove Transaction\#phone validation [\#140](https://github.com/solidusio/solidus_paypal_braintree/pull/140) ([alepore](https://github.com/alepore))
156
+ - Rescue Braintree void errors and refund instead [\#139](https://github.com/solidusio/solidus_paypal_braintree/pull/139) ([tvdeyen](https://github.com/tvdeyen))
157
+ - fix uninitialized constant AVSResult \#137 [\#138](https://github.com/solidusio/solidus_paypal_braintree/pull/138) ([afdev82](https://github.com/afdev82))
158
+ - Add a partial for the hash preference field [\#136](https://github.com/solidusio/solidus_paypal_braintree/pull/136) ([tvdeyen](https://github.com/tvdeyen))
159
+ - Support 18n for Braintree error messages [\#133](https://github.com/solidusio/solidus_paypal_braintree/pull/133) ([vassalloandrea](https://github.com/vassalloandrea))
160
+ - Follow the factory\_bot rename [\#131](https://github.com/solidusio/solidus_paypal_braintree/pull/131) ([tvdeyen](https://github.com/tvdeyen))
161
+ - Pend paypal spec if paypal popup not available [\#130](https://github.com/solidusio/solidus_paypal_braintree/pull/130) ([tvdeyen](https://github.com/tvdeyen))
162
+ - Add more versions and test both DBs on travis [\#129](https://github.com/solidusio/solidus_paypal_braintree/pull/129) ([jhawthorn](https://github.com/jhawthorn))
163
+ - Use the shared spec\_helper from solidus\_support [\#128](https://github.com/solidusio/solidus_paypal_braintree/pull/128) ([tvdeyen](https://github.com/tvdeyen))
164
+ - Try to harden the PayPal integration spec [\#127](https://github.com/solidusio/solidus_paypal_braintree/pull/127) ([tvdeyen](https://github.com/tvdeyen))
165
+ - Protect against connection errors [\#126](https://github.com/solidusio/solidus_paypal_braintree/pull/126) ([tvdeyen](https://github.com/tvdeyen))
166
+ - Adding ffaker as test dependency [\#125](https://github.com/solidusio/solidus_paypal_braintree/pull/125) ([tvdeyen](https://github.com/tvdeyen))
167
+ - Rescue Braintree::NotFound errors in source display methods [\#124](https://github.com/solidusio/solidus_paypal_braintree/pull/124) ([tvdeyen](https://github.com/tvdeyen))
168
+ - Allows the paypal\_braintree source to be added to the wallet on checkout [\#123](https://github.com/solidusio/solidus_paypal_braintree/pull/123) ([joeljackson](https://github.com/joeljackson))
169
+ - Update braintree client libs to v3.22.1 [\#118](https://github.com/solidusio/solidus_paypal_braintree/pull/118) ([tvdeyen](https://github.com/tvdeyen))
170
+ - Minor improvements to README.md [\#117](https://github.com/solidusio/solidus_paypal_braintree/pull/117) ([isaacfreeman](https://github.com/isaacfreeman))
171
+ - Better error handling [\#115](https://github.com/solidusio/solidus_paypal_braintree/pull/115) ([tvdeyen](https://github.com/tvdeyen))
172
+ - Fix the address retrieval on the PayPal payload [\#112](https://github.com/solidusio/solidus_paypal_braintree/pull/112) ([tvdeyen](https://github.com/tvdeyen))
173
+ - Fix deprecated code [\#111](https://github.com/solidusio/solidus_paypal_braintree/pull/111) ([isaacfreeman](https://github.com/isaacfreeman))
174
+ - Use transaction status to decide if payment can\_void? [\#109](https://github.com/solidusio/solidus_paypal_braintree/pull/109) ([tvdeyen](https://github.com/tvdeyen))
175
+
176
+ ## [v0.2.0](https://github.com/solidusio/solidus_paypal_braintree/tree/v0.2.0) (2017-07-20)
177
+
178
+ [Full Changelog](https://github.com/solidusio/solidus_paypal_braintree/compare/v0.1.0...v0.2.0)
179
+
180
+ **Merged pull requests:**
181
+
182
+ - JS Overhaul [\#101](https://github.com/solidusio/solidus_paypal_braintree/pull/101) ([isaacfreeman](https://github.com/isaacfreeman))
183
+
184
+ ## [v0.1.0](https://github.com/solidusio/solidus_paypal_braintree/tree/v0.1.0) (2017-07-17)
185
+
186
+ [Full Changelog](https://github.com/solidusio/solidus_paypal_braintree/compare/86edca9b8a31a0d7a092f1871d53eb3191523c4c...v0.1.0)
187
+
188
+ **Closed issues:**
189
+
190
+ - Payments in backend not working [\#74](https://github.com/solidusio/solidus_paypal_braintree/issues/74)
191
+ - Strip whitespace on payment methods form fields. [\#66](https://github.com/solidusio/solidus_paypal_braintree/issues/66)
192
+ - Generate token with existing braintree customer id. [\#63](https://github.com/solidusio/solidus_paypal_braintree/issues/63)
193
+
194
+ **Merged pull requests:**
195
+
196
+ - Show transaction link [\#107](https://github.com/solidusio/solidus_paypal_braintree/pull/107) ([isaacfreeman](https://github.com/isaacfreeman))
197
+ - Rename Gateway\#method\_type to Gateway\#partial\_name [\#105](https://github.com/solidusio/solidus_paypal_braintree/pull/105) ([isaacfreeman](https://github.com/isaacfreeman))
198
+ - Setup recipe in README.md [\#100](https://github.com/solidusio/solidus_paypal_braintree/pull/100) ([isaacfreeman](https://github.com/isaacfreeman))
199
+ - Make Paypal button bg transparent on hover [\#99](https://github.com/solidusio/solidus_paypal_braintree/pull/99) ([isaacfreeman](https://github.com/isaacfreeman))
200
+ - Backend payments [\#97](https://github.com/solidusio/solidus_paypal_braintree/pull/97) ([isaacfreeman](https://github.com/isaacfreeman))
201
+ - Support Rails 5.1 [\#95](https://github.com/solidusio/solidus_paypal_braintree/pull/95) ([isaacfreeman](https://github.com/isaacfreeman))
202
+ - Set payment type for credit cards [\#91](https://github.com/solidusio/solidus_paypal_braintree/pull/91) ([Senjai](https://github.com/Senjai))
203
+ - Add translation for Credit Card payment type [\#89](https://github.com/solidusio/solidus_paypal_braintree/pull/89) ([luukveenis](https://github.com/luukveenis))
204
+ - Asset pipeline fixes [\#88](https://github.com/solidusio/solidus_paypal_braintree/pull/88) ([tvdeyen](https://github.com/tvdeyen))
205
+ - Attempt to stop infinite dep resolution [\#87](https://github.com/solidusio/solidus_paypal_braintree/pull/87) ([Senjai](https://github.com/Senjai))
206
+ - Use flashes for displaying frontend errors [\#86](https://github.com/solidusio/solidus_paypal_braintree/pull/86) ([Senjai](https://github.com/Senjai))
207
+ - Always use the same zipcode in address factory [\#84](https://github.com/solidusio/solidus_paypal_braintree/pull/84) ([tvdeyen](https://github.com/tvdeyen))
208
+ - Ensure payment\_method\_id cannot be null on sources [\#83](https://github.com/solidusio/solidus_paypal_braintree/pull/83) ([Senjai](https://github.com/Senjai))
209
+ - Use Spree user class handle [\#82](https://github.com/solidusio/solidus_paypal_braintree/pull/82) ([tvdeyen](https://github.com/tvdeyen))
210
+ - Send billing address with credit card transactions [\#81](https://github.com/solidusio/solidus_paypal_braintree/pull/81) ([tvdeyen](https://github.com/tvdeyen))
211
+ - Coverage [\#78](https://github.com/solidusio/solidus_paypal_braintree/pull/78) ([Senjai](https://github.com/Senjai))
212
+ - Test 2.1 and 2.2 [\#77](https://github.com/solidusio/solidus_paypal_braintree/pull/77) ([Senjai](https://github.com/Senjai))
213
+ - Add alias for last\_4 [\#76](https://github.com/solidusio/solidus_paypal_braintree/pull/76) ([adammathys](https://github.com/adammathys))
214
+ - Submit shipping address with PayPal transactions [\#75](https://github.com/solidusio/solidus_paypal_braintree/pull/75) ([luukveenis](https://github.com/luukveenis))
215
+ - Spec fixes [\#73](https://github.com/solidusio/solidus_paypal_braintree/pull/73) ([Senjai](https://github.com/Senjai))
216
+ - Handle processor and gateway error responses [\#72](https://github.com/solidusio/solidus_paypal_braintree/pull/72) ([luukveenis](https://github.com/luukveenis))
217
+ - Fix credit card spec [\#71](https://github.com/solidusio/solidus_paypal_braintree/pull/71) ([adammathys](https://github.com/adammathys))
218
+ - Handle errors when creating customer [\#70](https://github.com/solidusio/solidus_paypal_braintree/pull/70) ([adammathys](https://github.com/adammathys))
219
+ - Download phantomjs from github mirror [\#69](https://github.com/solidusio/solidus_paypal_braintree/pull/69) ([omnistegan](https://github.com/omnistegan))
220
+ - Remove vendored assets [\#67](https://github.com/solidusio/solidus_paypal_braintree/pull/67) ([adammathys](https://github.com/adammathys))
221
+ - Only setup Apple Pay if HTTPS [\#65](https://github.com/solidusio/solidus_paypal_braintree/pull/65) ([adammathys](https://github.com/adammathys))
222
+ - Bump Braintree JS to 3.9.0 [\#64](https://github.com/solidusio/solidus_paypal_braintree/pull/64) ([adammathys](https://github.com/adammathys))
223
+ - Couple of minor improvements [\#62](https://github.com/solidusio/solidus_paypal_braintree/pull/62) ([adammathys](https://github.com/adammathys))
224
+ - Clean-up vendor assets [\#61](https://github.com/solidusio/solidus_paypal_braintree/pull/61) ([adammathys](https://github.com/adammathys))
225
+ - Add convenience methods for card details [\#60](https://github.com/solidusio/solidus_paypal_braintree/pull/60) ([adammathys](https://github.com/adammathys))
226
+ - Some minor project fixes [\#59](https://github.com/solidusio/solidus_paypal_braintree/pull/59) ([adammathys](https://github.com/adammathys))
227
+ - Add dependent :destroy to configuration association [\#58](https://github.com/solidusio/solidus_paypal_braintree/pull/58) ([luukveenis](https://github.com/luukveenis))
228
+ - Bump rubocop and add exclude blocklength from spec [\#57](https://github.com/solidusio/solidus_paypal_braintree/pull/57) ([cbrunsdon](https://github.com/cbrunsdon))
229
+ - Add 'channel' param to payment requests [\#56](https://github.com/solidusio/solidus_paypal_braintree/pull/56) ([luukveenis](https://github.com/luukveenis))
230
+ - Fix error when saving braintree payment method [\#55](https://github.com/solidusio/solidus_paypal_braintree/pull/55) ([luukveenis](https://github.com/luukveenis))
231
+ - Adds '\n' to the routes.rb addition [\#54](https://github.com/solidusio/solidus_paypal_braintree/pull/54) ([seantaylor](https://github.com/seantaylor))
232
+ - Some small spec fixes [\#53](https://github.com/solidusio/solidus_paypal_braintree/pull/53) ([adammathys](https://github.com/adammathys))
233
+ - Add Apple Pay section to README [\#52](https://github.com/solidusio/solidus_paypal_braintree/pull/52) ([adammathys](https://github.com/adammathys))
234
+ - Update usage instructions in README [\#51](https://github.com/solidusio/solidus_paypal_braintree/pull/51) ([luukveenis](https://github.com/luukveenis))
235
+ - Add proper intro to README [\#50](https://github.com/solidusio/solidus_paypal_braintree/pull/50) ([adammathys](https://github.com/adammathys))
236
+ - Pass order state to transaction import [\#48](https://github.com/solidusio/solidus_paypal_braintree/pull/48) ([luukveenis](https://github.com/luukveenis))
237
+ - Validate the address on a transaction if it exists [\#47](https://github.com/solidusio/solidus_paypal_braintree/pull/47) ([luukveenis](https://github.com/luukveenis))
238
+ - Set PayPal payee emails as preference on gateway [\#46](https://github.com/solidusio/solidus_paypal_braintree/pull/46) ([luukveenis](https://github.com/luukveenis))
239
+ - Fix Apple Pay feature spec [\#45](https://github.com/solidusio/solidus_paypal_braintree/pull/45) ([luukveenis](https://github.com/luukveenis))
240
+ - Add Braintree configuration to Spree::Store model [\#44](https://github.com/solidusio/solidus_paypal_braintree/pull/44) ([luukveenis](https://github.com/luukveenis))
241
+ - Map country names to ISO codes [\#43](https://github.com/solidusio/solidus_paypal_braintree/pull/43) ([luukveenis](https://github.com/luukveenis))
242
+ - Enable PayPal as a payment method [\#42](https://github.com/solidusio/solidus_paypal_braintree/pull/42) ([luukveenis](https://github.com/luukveenis))
243
+ - Submit transactions via AJAX [\#41](https://github.com/solidusio/solidus_paypal_braintree/pull/41) ([luukveenis](https://github.com/luukveenis))
244
+ - Support tokens without specifying payment\_method [\#40](https://github.com/solidusio/solidus_paypal_braintree/pull/40) ([cbrunsdon](https://github.com/cbrunsdon))
245
+ - Enable Braintree credit card payments via hosted fields [\#39](https://github.com/solidusio/solidus_paypal_braintree/pull/39) ([luukveenis](https://github.com/luukveenis))
246
+ - Address improvements [\#38](https://github.com/solidusio/solidus_paypal_braintree/pull/38) ([cbrunsdon](https://github.com/cbrunsdon))
247
+ - Add a javascript method to fetch braintree tokens [\#37](https://github.com/solidusio/solidus_paypal_braintree/pull/37) ([cbrunsdon](https://github.com/cbrunsdon))
248
+ - Braintree nonce and cassettes update [\#36](https://github.com/solidusio/solidus_paypal_braintree/pull/36) ([omnistegan](https://github.com/omnistegan))
249
+ - Update transaction\_import to work correctly on solidus master [\#35](https://github.com/solidusio/solidus_paypal_braintree/pull/35) ([omnistegan](https://github.com/omnistegan))
250
+ - Support multiple merchant account ids by currency [\#33](https://github.com/solidusio/solidus_paypal_braintree/pull/33) ([cbrunsdon](https://github.com/cbrunsdon))
251
+ - Default to US country code [\#32](https://github.com/solidusio/solidus_paypal_braintree/pull/32) ([adammathys](https://github.com/adammathys))
252
+ - Allow JSON requests to transactions controller [\#31](https://github.com/solidusio/solidus_paypal_braintree/pull/31) ([luukveenis](https://github.com/luukveenis))
253
+ - Vcr improvements [\#30](https://github.com/solidusio/solidus_paypal_braintree/pull/30) ([cbrunsdon](https://github.com/cbrunsdon))
254
+ - Implement API Controller to generate client tokens [\#28](https://github.com/solidusio/solidus_paypal_braintree/pull/28) ([stewart](https://github.com/stewart))
255
+
256
+
257
+
258
+ \* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
data/Gemfile ADDED
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
5
+
6
+ branch = ENV.fetch('SOLIDUS_BRANCH', 'master')
7
+ gem 'solidus', github: 'solidusio/solidus', branch: branch
8
+
9
+ # Needed to help Bundler figure out how to resolve dependencies,
10
+ # otherwise it takes forever to resolve them.
11
+ # See https://github.com/bundler/bundler/issues/6677
12
+ gem 'rails', '>0.a'
13
+
14
+ # Provides basic authentication functionality for testing parts of your engine
15
+ gem 'solidus_auth_devise'
16
+
17
+ # Asset compilation speed
18
+ gem 'mini_racer'
19
+ gem 'sassc-rails', platforms: :mri
20
+
21
+ # bourbon 5 doesn't work under sassc
22
+ # https://github.com/thoughtbot/bourbon/issues/1047
23
+ gem 'bourbon', '<5'
24
+
25
+ case ENV['DB']
26
+ when 'mysql'
27
+ gem 'mysql2'
28
+ when 'postgresql'
29
+ gem 'pg'
30
+ else
31
+ gem 'sqlite3'
32
+ end
33
+
34
+ group :test do
35
+ gem 'rails-controller-testing'
36
+ gem 'webdrivers'
37
+ end
38
+
39
+ gemspec
40
+
41
+ # Use a local Gemfile to include development dependencies that might not be
42
+ # relevant for the project or for other contributors, e.g.: `gem 'pry-debug'`.
43
+ eval_gemfile 'Gemfile-local' if File.exist? 'Gemfile-local'