solidus_stripe 4.4.1 → 5.0.0.alpha.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (153) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +92 -52
  3. data/.gitignore +3 -0
  4. data/.rubocop.yml +94 -4
  5. data/.yardopts +1 -0
  6. data/Gemfile +10 -30
  7. data/LICENSE +2 -2
  8. data/Procfile.dev +3 -0
  9. data/README.md +145 -215
  10. data/Rakefile +5 -44
  11. data/app/assets/javascripts/spree/backend/solidus_stripe.js +2 -0
  12. data/app/assets/stylesheets/spree/backend/solidus_stripe.css +4 -0
  13. data/app/controllers/solidus_stripe/intents_controller.rb +36 -52
  14. data/app/controllers/solidus_stripe/webhooks_controller.rb +28 -0
  15. data/app/models/concerns/solidus_stripe/log_entries.rb +31 -0
  16. data/app/models/solidus_stripe/customer.rb +21 -0
  17. data/app/models/solidus_stripe/gateway.rb +231 -0
  18. data/app/models/solidus_stripe/payment_intent.rb +111 -0
  19. data/app/models/solidus_stripe/payment_method.rb +106 -0
  20. data/app/models/solidus_stripe/payment_source.rb +31 -0
  21. data/app/models/solidus_stripe/slug_entry.rb +20 -0
  22. data/app/models/solidus_stripe.rb +7 -0
  23. data/app/subscribers/solidus_stripe/webhook/charge_subscriber.rb +28 -0
  24. data/app/subscribers/solidus_stripe/webhook/payment_intent_subscriber.rb +112 -0
  25. data/app/views/spree/admin/payments/source_forms/_stripe.html.erb +29 -0
  26. data/app/views/spree/admin/payments/source_forms/existing_payment/_stripe.html.erb +14 -0
  27. data/app/views/spree/admin/payments/source_forms/existing_payment/stripe/_card.html.erb +8 -0
  28. data/app/views/spree/admin/payments/source_forms/existing_payment/stripe/_default.html.erb +7 -0
  29. data/app/views/spree/admin/payments/source_views/_stripe.html.erb +15 -0
  30. data/app/views/spree/api/payments/source_views/_stripe.json.jbuilder +8 -0
  31. data/bin/dev +13 -0
  32. data/bin/dummy-app +29 -0
  33. data/bin/rails +38 -3
  34. data/bin/rails-dummy-app +3 -0
  35. data/bin/rails-engine +1 -11
  36. data/bin/rails-new +55 -0
  37. data/bin/rails-sandbox +1 -14
  38. data/bin/rspec +10 -0
  39. data/bin/sandbox +12 -74
  40. data/bin/setup +1 -0
  41. data/bin/update-migrations +56 -0
  42. data/codecov.yml +12 -0
  43. data/config/locales/en.yml +16 -1
  44. data/config/routes.rb +5 -11
  45. data/coverage.rb +42 -0
  46. data/db/migrate/20230109183332_create_solidus_stripe_payment_sources.rb +10 -0
  47. data/db/migrate/20230303154931_create_solidus_stripe_setup_intent.rb +10 -0
  48. data/db/migrate/20230306105520_create_solidus_stripe_payment_intents.rb +10 -0
  49. data/db/migrate/20230308122414_create_solidus_stripe_webhook_endpoints.rb +10 -0
  50. data/db/migrate/20230310152615_add_payment_method_reference_to_stripe_intents.rb +6 -0
  51. data/db/migrate/20230310171444_normalize_stripe_intent_id_attributes.rb +6 -0
  52. data/db/migrate/20230313150008_create_solidus_stripe_customers.rb +16 -0
  53. data/db/migrate/20230323154931_drop_solidus_stripe_setup_intent.rb +13 -0
  54. data/db/migrate/20230403094916_rename_webhook_endpoint_to_payment_method_slug_entries.rb +5 -0
  55. data/db/seeds.rb +6 -24
  56. data/lib/generators/solidus_stripe/install/install_generator.rb +121 -14
  57. data/lib/generators/solidus_stripe/install/templates/app/assets/stylesheets/spree/frontend/solidus_stripe.css +13 -0
  58. data/lib/generators/solidus_stripe/install/templates/app/javascript/controllers/solidus_stripe_confirm_controller.js +39 -0
  59. data/lib/generators/solidus_stripe/install/templates/app/javascript/controllers/solidus_stripe_payment_controller.js +89 -0
  60. data/lib/generators/solidus_stripe/install/templates/app/views/checkouts/existing_payment/_stripe.html.erb +16 -0
  61. data/lib/generators/solidus_stripe/install/templates/app/views/checkouts/existing_payment/stripe/_card.html.erb +8 -0
  62. data/lib/generators/solidus_stripe/install/templates/app/views/checkouts/existing_payment/stripe/_default.html.erb +7 -0
  63. data/lib/generators/solidus_stripe/install/templates/app/views/checkouts/payment/_stripe.html.erb +39 -0
  64. data/lib/generators/solidus_stripe/install/templates/app/views/orders/payment_info/_stripe.html.erb +20 -0
  65. data/lib/generators/solidus_stripe/install/templates/config/initializers/solidus_stripe.rb +31 -0
  66. data/lib/solidus_stripe/configuration.rb +24 -3
  67. data/lib/solidus_stripe/engine.rb +19 -6
  68. data/lib/solidus_stripe/money_to_stripe_amount_converter.rb +109 -0
  69. data/lib/solidus_stripe/refunds_synchronizer.rb +96 -0
  70. data/lib/solidus_stripe/seeds.rb +19 -0
  71. data/lib/solidus_stripe/testing_support/factories.rb +153 -0
  72. data/lib/solidus_stripe/version.rb +1 -1
  73. data/lib/solidus_stripe/webhook/event.rb +90 -0
  74. data/lib/solidus_stripe.rb +0 -2
  75. data/solidus_stripe.gemspec +29 -6
  76. data/spec/lib/solidus_stripe/configuration_spec.rb +21 -0
  77. data/spec/lib/solidus_stripe/money_to_stripe_amount_converter_spec.rb +133 -0
  78. data/spec/lib/solidus_stripe/refunds_synchronizer_spec.rb +238 -0
  79. data/spec/lib/solidus_stripe/seeds_spec.rb +43 -0
  80. data/spec/lib/solidus_stripe/webhook/event_spec.rb +134 -0
  81. data/spec/models/concerns/solidus_stripe/log_entries_spec.rb +54 -0
  82. data/spec/models/solidus_stripe/customer_spec.rb +47 -0
  83. data/spec/models/solidus_stripe/gateway_spec.rb +283 -0
  84. data/spec/models/solidus_stripe/payment_intent_spec.rb +17 -0
  85. data/spec/models/solidus_stripe/payment_method_spec.rb +137 -0
  86. data/spec/models/solidus_stripe/payment_source_spec.rb +25 -0
  87. data/spec/requests/solidus_stripe/intents_controller_spec.rb +29 -0
  88. data/spec/requests/solidus_stripe/webhooks_controller/charge/refunded_spec.rb +31 -0
  89. data/spec/requests/solidus_stripe/webhooks_controller/payment_intent/canceled_spec.rb +23 -0
  90. data/spec/requests/solidus_stripe/webhooks_controller/payment_intent/payment_failed_spec.rb +23 -0
  91. data/spec/requests/solidus_stripe/webhooks_controller/payment_intent/succeeded_spec.rb +29 -0
  92. data/spec/requests/solidus_stripe/webhooks_controller_spec.rb +52 -0
  93. data/spec/solidus_stripe_spec_helper.rb +10 -0
  94. data/spec/subscribers/solidus_stripe/webhook/charge_subscriber_spec.rb +33 -0
  95. data/spec/subscribers/solidus_stripe/webhook/payment_intent_subscriber_spec.rb +297 -0
  96. data/spec/support/solidus_stripe/backend_test_helper.rb +210 -0
  97. data/spec/support/solidus_stripe/checkout_test_helper.rb +339 -0
  98. data/spec/support/solidus_stripe/factories.rb +5 -0
  99. data/spec/support/solidus_stripe/webhook/data_fixtures.rb +106 -0
  100. data/spec/support/solidus_stripe/webhook/event_with_context_factory.rb +82 -0
  101. data/spec/support/solidus_stripe/webhook/request_helper.rb +32 -0
  102. data/spec/system/backend/solidus_stripe/orders/payments_spec.rb +119 -0
  103. data/spec/system/frontend/.keep +0 -0
  104. data/spec/system/frontend/solidus_stripe/checkout_spec.rb +187 -0
  105. data/tmp/.keep +0 -0
  106. metadata +202 -78
  107. data/.rubocop_todo.yml +0 -298
  108. data/.travis.yml +0 -28
  109. data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-cart-page-checkout.js +0 -122
  110. data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-elements.js +0 -148
  111. data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-init.js +0 -20
  112. data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-payment-intents.js +0 -84
  113. data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-payment-request-button-shared.js +0 -160
  114. data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-payment.js +0 -16
  115. data/app/assets/javascripts/spree/frontend/solidus_stripe.js +0 -6
  116. data/app/controllers/solidus_stripe/payment_request_controller.rb +0 -52
  117. data/app/controllers/spree/stripe_controller.rb +0 -13
  118. data/app/decorators/models/spree/order_update_attributes_decorator.rb +0 -39
  119. data/app/decorators/models/spree/payment_decorator.rb +0 -11
  120. data/app/decorators/models/spree/refund_decorator.rb +0 -9
  121. data/app/models/solidus_stripe/address_from_params_service.rb +0 -72
  122. data/app/models/solidus_stripe/create_intents_payment_service.rb +0 -114
  123. data/app/models/solidus_stripe/prepare_order_for_payment_service.rb +0 -46
  124. data/app/models/solidus_stripe/shipping_rates_service.rb +0 -46
  125. data/app/models/spree/payment_method/stripe_credit_card.rb +0 -230
  126. data/bin/r +0 -13
  127. data/bin/sandbox_rails +0 -18
  128. data/db/migrate/20181010123508_update_stripe_payment_method_type_to_credit_card.rb +0 -21
  129. data/lib/assets/stylesheets/spree/frontend/solidus_stripe.scss +0 -11
  130. data/lib/solidus_stripe/testing_support/card_input_helper.rb +0 -34
  131. data/lib/tasks/solidus_stripe/db/seed.rake +0 -14
  132. data/lib/views/api/spree/api/payments/source_views/_stripe.json.jbuilder +0 -3
  133. data/lib/views/backend/spree/admin/log_entries/_stripe.html.erb +0 -28
  134. data/lib/views/backend/spree/admin/payments/source_forms/_stripe.html.erb +0 -1
  135. data/lib/views/backend/spree/admin/payments/source_views/_stripe.html.erb +0 -1
  136. data/lib/views/frontend/spree/checkout/existing_payment/_stripe.html.erb +0 -1
  137. data/lib/views/frontend/spree/checkout/payment/_stripe.html.erb +0 -8
  138. data/lib/views/frontend/spree/checkout/payment/v2/_javascript.html.erb +0 -78
  139. data/lib/views/frontend/spree/checkout/payment/v3/_elements.html.erb +0 -1
  140. data/lib/views/frontend/spree/checkout/payment/v3/_form_elements.html.erb +0 -40
  141. data/lib/views/frontend/spree/checkout/payment/v3/_intents.html.erb +0 -1
  142. data/lib/views/frontend/spree/checkout/payment/v3/_stripe.html.erb +0 -2
  143. data/lib/views/frontend/spree/orders/_stripe_payment_request_button.html.erb +0 -14
  144. data/spec/features/stripe_checkout_spec.rb +0 -486
  145. data/spec/models/solidus_stripe/address_from_params_service_spec.rb +0 -87
  146. data/spec/models/solidus_stripe/create_intents_payment_service_spec.rb +0 -127
  147. data/spec/models/solidus_stripe/prepare_order_for_payment_service_spec.rb +0 -65
  148. data/spec/models/solidus_stripe/shipping_rates_service_spec.rb +0 -54
  149. data/spec/models/spree/payment_method/stripe_credit_card_spec.rb +0 -354
  150. data/spec/requests/payment_requests_spec.rb +0 -152
  151. data/spec/solidus_frontend_app_template.rb +0 -17
  152. data/spec/spec_helper.rb +0 -37
  153. data/spec/support/solidus_address_helper.rb +0 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 348461d7e783545d8c247ab5d0793cff60fd7313b6d268ab96d3ef1b8e0b6b2e
4
- data.tar.gz: 48196238b9bcdb0af904edb0e9dcc0cdb52e2521adb07c3e3a9bf68a8063786a
3
+ metadata.gz: 58adb3a4786a07b4728a38452a8b45389e4947078a6696c421e66d9202bec935
4
+ data.tar.gz: ceb39ec60811d59e8544cef740d470b41fdfa2b7dad668c557e5f7a55622536c
5
5
  SHA512:
6
- metadata.gz: b98a0822761ab828f600e751287335d251fccd00b0b35bc44a472edd1a63004fda9246576da9444c518cdbb5c3852d96b993cd7232f2e1bc1b39fce6f1bee260
7
- data.tar.gz: 88b9c12851bca115cd2e3819d58447ce94cb460682a38ebd88843255193fe4bc908fc9f99470174a468be4fd83b6779c457da095a27c638ca37663d165298675
6
+ metadata.gz: c2964495f7edeab038c993972069bd72788b7c978a738889277eecfe2c688c62a124e25e9b511d483ee6df67accb33d0bdb311f718cb97d883a6f9bd306de09e
7
+ data.tar.gz: 24547d5de71774cfdb1c82b955118067f9abb27a472a2d0d767ed5d21a12f997d5e60cdef3ebbe0298bb2916ec789d850a80bb3d9fd3d1310941d4c7b26be7b5
data/.circleci/config.yml CHANGED
@@ -1,8 +1,8 @@
1
1
  version: 2.1
2
2
 
3
3
  orbs:
4
- # Required for feature specs.
5
4
  browser-tools: circleci/browser-tools@1.1
5
+ codecov: codecov/codecov@3.2.4
6
6
 
7
7
  # Always take the latest version of the orb, this allows us to
8
8
  # run specs against Solidus supported versions only without the need
@@ -11,65 +11,105 @@ orbs:
11
11
  solidusio_extensions: solidusio/extensions@volatile
12
12
 
13
13
  jobs:
14
- run-specs-with-postgres:
14
+ run-specs:
15
+ parameters:
16
+ database:
17
+ type: string
18
+ default: postgres
19
+ ruby:
20
+ type: string
21
+ default: "3.2"
22
+ coverage:
23
+ type: boolean
24
+ default: false
15
25
  executor:
16
- name: solidusio_extensions/postgres
17
- ruby_version: "3.2"
18
- environment:
19
- FRONTEND: "/home/circleci/project/spec/solidus_frontend_app_template.rb"
20
- AUTHENTICATION: "devise"
26
+ name: solidusio_extensions/<< parameters.database >>
27
+ ruby_version: << parameters.ruby >>
21
28
  steps:
22
- - browser-tools/install-chrome
23
- - checkout
24
- - solidusio_extensions/dependencies
25
- - solidusio_extensions/run-tests-solidus-main
26
- - solidusio_extensions/store-test-results
27
-
28
- run-specs-with-mysql:
29
- executor:
30
- name: solidusio_extensions/mysql
31
- ruby_version: "3.1"
32
- environment:
33
- FRONTEND: "/home/circleci/project/spec/solidus_frontend_app_template.rb"
34
- steps:
35
- - browser-tools/install-chrome
36
29
  - checkout
37
- - solidusio_extensions/dependencies
38
- - solidusio_extensions/run-tests-solidus-current
39
- - solidusio_extensions/store-test-results
40
- run-specs-with-sqlite:
41
- executor:
42
- name: solidusio_extensions/sqlite
43
- ruby_version: "3.0"
44
- steps:
45
30
  - browser-tools/install-chrome
46
- - checkout
47
- - solidusio_extensions/dependencies
48
- - solidusio_extensions/run-tests-solidus-older
49
- - solidusio_extensions/store-test-results
31
+ - run:
32
+ name: Install libvips
33
+ command: |
34
+ sudo apt-get update
35
+ sudo apt-get install -yq libvips-dev
36
+ - run:
37
+ name: "Update Rubygems"
38
+ command: |
39
+ sudo gem update --system --no-document
40
+ gem install bundler --no-document
41
+ gem environment path
42
+ - run:
43
+ name: "Store tool versions"
44
+ command: |
45
+ rm -rf /tmp/.tool-versions
46
+ ruby -v >> /tmp/.tool-versions
47
+ gem search -eq rails >> /tmp/.tool-versions # get the latest rails from rubygems
48
+ gem search -eq solidus >> /tmp/.tool-versions # get the latest solidus from rubygems
49
+ cat /tmp/.tool-versions
50
+ - restore_cache:
51
+ keys:
52
+ - solidus-stripe-gems-v1-{{ checksum "/tmp/.tool-versions" }}
53
+ - solidus-stripe-gems-v1-
54
+ - run:
55
+ name: "Install gems"
56
+ command: |
57
+ bundle install
58
+ - run:
59
+ name: "Install dummy app"
60
+ command: |
61
+ <<#parameters.coverage>>export COVERAGE=true<</parameters.coverage>>
62
+ bin/dummy-app
63
+ environment:
64
+ FRONTEND: starter
65
+ SOLIDUS_BRANCH: master
66
+ - save_cache:
67
+ key: solidus-stripe-gems-v1-{{ checksum "/tmp/.tool-versions" }}
68
+ paths:
69
+ - /home/circleci/.rubygems
70
+ - run:
71
+ name: "Runs specs"
72
+ command: |
73
+ <<#parameters.coverage>>export COVERAGE=true<</parameters.coverage>>
74
+ bin/rspec --format progress --format RspecJunitFormatter --out "$PWD/test-results/results.xml"
75
+ - when:
76
+ condition: <<parameters.coverage>>
77
+ steps: ["codecov/upload"]
78
+ path: test-results
79
+ - store_artifacts:
80
+ path: /home/circleci/project/dummy-app/tmp/capybara/
81
+ destination: capybara
82
+ - store_artifacts:
83
+ path: /home/circleci/project/coverage/
84
+ destination: coverage
50
85
  lint-code:
51
- executor:
86
+ parameters:
87
+ ruby:
88
+ type: string
89
+ default: "3.2"
90
+ executor:
52
91
  name: solidusio_extensions/sqlite-memory
53
- ruby_version: "3.0"
92
+ ruby_version: << parameters.ruby >>
54
93
  steps:
55
94
  - solidusio_extensions/lint-code
95
+ - run:
96
+ name: Generate documentation
97
+ command: |
98
+ bundle exec yardoc
99
+ - store_artifacts:
100
+ path: /home/circleci/project/doc
101
+ destination: doc
56
102
 
57
103
  workflows:
58
- "Run specs on supported Solidus versions":
59
- jobs:
60
- - run-specs-with-postgres
61
- - run-specs-with-mysql
62
- - run-specs-with-sqlite
63
- - lint-code
64
-
65
- "Weekly run specs against master":
66
- triggers:
67
- - schedule:
68
- cron: "0 0 * * 4" # every Thursday
69
- filters:
70
- branches:
71
- only:
72
- - master
104
+ build:
73
105
  jobs:
74
- - run-specs-with-postgres
75
- - run-specs-with-mysql
106
+ - run-specs:
107
+ name: "run-specs-ruby-<<matrix.ruby>>-db-<<matrix.database>>"
108
+ context: stripe-test-credentials
109
+ matrix:
110
+ parameters:
111
+ ruby: ["3.2"] # TODO: ['3.2', '3.1', '3.0']
112
+ database: ["sqlite"] # TODO: ['mysql', 'sqlite', 'postgres']
113
+ coverage: [true]
114
+ - lint-code:
115
+ ruby: "3.0"
data/.gitignore CHANGED
@@ -6,6 +6,7 @@
6
6
  .idea
7
7
  .project
8
8
  .sass-cache
9
+ .yardoc
9
10
  coverage
10
11
  Gemfile.lock
11
12
  tmp
@@ -15,6 +16,8 @@ pkg
15
16
  spec/dummy
16
17
  spec/examples.txt
17
18
  /sandbox
19
+ /dummy-app
20
+ /doc
18
21
  .rvmrc
19
22
  .ruby-version
20
23
  .ruby-gemset
data/.rubocop.yml CHANGED
@@ -1,7 +1,97 @@
1
- inherit_from: .rubocop_todo.yml
2
-
3
- require:
4
- - solidus_dev_support/rubocop
1
+ require: ["rubocop-rspec", "rubocop-rails", "rubocop-performance"]
5
2
 
6
3
  AllCops:
7
4
  NewCops: disable
5
+ TargetRubyVersion: '3.0'
6
+ Exclude:
7
+ - vendor/**/*
8
+ - sandbox/**/*
9
+ - dummy-app/**/*
10
+ - spec/dummy/**/*
11
+
12
+ Layout/ArgumentAlignment: {EnforcedStyle: with_fixed_indentation}
13
+ Layout/DotPosition: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#layoutdotposition"}
14
+ Layout/EmptyLinesAroundAttributeAccessor: {Enabled: true}
15
+ Layout/FirstArgumentIndentation: {EnforcedStyle: "consistent"}
16
+ Layout/FirstArrayElementIndentation: {EnforcedStyle: "consistent"}
17
+ Layout/LineLength: {Enabled: true, Max: 120, Exclude: [ "db/migrate/**/*" ]}
18
+ Layout/MultilineMethodCallIndentation: {EnforcedStyle: indented} # Gain space by indenting from the start of the line, instead of the end of the method name.
19
+ Layout/MultilineOperationIndentation: {Enabled: false}
20
+ Layout/SpaceAroundMethodCallOperator: {Enabled: true}
21
+ Layout/SpaceBeforeBlockBraces: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#layoutspacebeforeblockbraces"}
22
+ Layout/SpaceInsideParens: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#layoutspaceinsideparens"}
23
+ Lint/AmbiguousRegexpLiteral: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#lintambiguousregexpliteral"}
24
+ Lint/AssignmentInCondition: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#lintassignmentincondition"}
25
+ Lint/DeprecatedOpenSSLConstant: {Enabled: true}
26
+ Lint/MixedRegexpCaptureTypes: {Enabled: true}
27
+ Lint/RaiseException: {Enabled: true}
28
+ Lint/StructNewOverride: {Enabled: true}
29
+ Metrics/AbcSize: {Enabled: false}
30
+ Metrics/BlockLength: {Enabled: false}
31
+ Metrics/BlockNesting: {Enabled: false}
32
+ Metrics/ClassLength: {Enabled: false}
33
+ Metrics/CyclomaticComplexity: {Enabled: false}
34
+ Metrics/MethodLength: {Enabled: false}
35
+ Metrics/ModuleLength: {Enabled: false}
36
+ Metrics/ParameterLists: {Enabled: false}
37
+ Metrics/PerceivedComplexity: {Enabled: false}
38
+ Performance/AncestorsInclude: {Enabled: true}
39
+ Performance/BigDecimalWithNumericArgument: {Enabled: true}
40
+ Performance/RedundantSortBlock: {Enabled: true}
41
+ Performance/RedundantStringChars: {Enabled: true}
42
+ Performance/ReverseFirst: {Enabled: true}
43
+ Performance/SortReverse: {Enabled: true}
44
+ Performance/Squeeze: {Enabled: true}
45
+ Performance/StringInclude: {Enabled: true}
46
+ Rails/NotNullColumn: {Exclude: ["db/migrate/20230310152615_add_payment_method_reference_to_stripe_intents.rb"]}
47
+ Rails/SkipsModelValidations: {Exclude: ["spec/**/*"]}
48
+ RSpec/DescribeClass: {Exclude: ["spec/features/**/*", "spec/system/**/*", "spec/system/**/*"]} # Feature/System specs are not describing any class or module.
49
+ RSpec/ExampleLength: {Enabled: false}
50
+ RSpec/FilePath: {Exclude: ["spec/requests/solidus_stripe/webhooks_controller/**/*"]}
51
+ RSpec/MultipleExpectations: {Enabled: false} # More is more.
52
+ Style/AccessorGrouping: {Enabled: true}
53
+ Style/Alias: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylealias"}
54
+ Style/AsciiComments: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#styleasciicomments"}
55
+ Style/BeginBlock: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylebeginblock"}
56
+ Style/BisectedAttrAccessor: {Enabled: true}
57
+ Style/BlockDelimiters: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#styleblockdelimiters"}
58
+ Style/ClassAndModuleChildren: {Enabled: false} # Avoiding the nested namespaces can avoid some ambiguities, forcing full references. Also saves horizontal space.
59
+ Style/CommentAnnotation: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylecommentannotation"}
60
+ Style/Documentation: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#styledocumentation"}
61
+ Style/DoubleNegation: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#styledoublenegation"}
62
+ Style/EndBlock: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#styleendblock"}
63
+ Style/ExponentialNotation: {Enabled: true}
64
+ Style/FormatString: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#styleformatstring"}
65
+ Style/FrozenStringLiteralComment: {Exclude: ["spec/**/*", "db/migrate/**/*", "bin/**/*"]}
66
+ Style/HashEachMethods: {Enabled: true}
67
+ Style/HashTransformKeys: {Enabled: true}
68
+ Style/HashTransformValues: {Enabled: true}
69
+ Style/IfUnlessModifier: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#styleifunlessmodifier"}
70
+ Style/Lambda: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylelambda"}
71
+ Style/ModuleFunction: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylemodulefunction"}
72
+ Style/MultilineBlockChain: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylemultilineblockchain"}
73
+ Style/MultilineTernaryOperator: {Enabled: false}
74
+ Style/NegatedIf: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylenegatedif"}
75
+ Style/NegatedWhile: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylenegatedwhile"}
76
+ Style/NumericPredicate: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylenumericpredicate"}
77
+ Style/ParallelAssignment: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#styleparallelassignment"}
78
+ Style/PercentLiteralDelimiters: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylepercentliteraldelimiters"}
79
+ Style/PerlBackrefs: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#styleperlbackrefs"}
80
+ Style/RedundantAssignment: {Enabled: true}
81
+ Style/RedundantFetchBlock: {Enabled: true}
82
+ Style/RedundantRegexpCharacterClass: {Enabled: true}
83
+ Style/RedundantRegexpEscape: {Enabled: true}
84
+ Style/Semicolon: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylesemicolon"}
85
+ Style/SignalException: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylesignalexception"}
86
+ Style/SingleLineBlockParams: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylesinglelineblockparams"}
87
+ Style/SingleLineMethods: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylesinglelinemethods"}
88
+ Style/SlicingWithRange: {Enabled: true}
89
+ Style/SpecialGlobalVars: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylespecialglobalvars"}
90
+ Style/StringLiterals: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylestringliterals"}
91
+ Style/SymbolArray: {Enabled: false, StyleGuide: "http://relaxed.ruby.style/#stylesymbolarray"}
92
+ Style/TrailingCommaInArguments: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#styletrailingcommainarguments"}
93
+ Style/TrailingCommaInArrayLiteral: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#styletrailingcommainarrayliteral"}
94
+ Style/TrailingCommaInHashLiteral: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#styletrailingcommainhashliteral"}
95
+ Style/TrailingUnderscoreVariable: {Enabled: false} # This was suggesting to use the dangling comma instead, which is super cryptic 🙈.
96
+ Style/WhileUntilModifier: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylewhileuntilmodifier"}
97
+ Style/WordArray: {Enabled: false, StyleGuide: "https://relaxed.ruby.style/#stylewordarray"}
data/.yardopts ADDED
@@ -0,0 +1 @@
1
+ {lib,app}/**/*.rb --fail-on-warning --markup markdown
data/Gemfile CHANGED
@@ -1,38 +1,18 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  source 'https://rubygems.org'
4
- git_source(:github) { |repo| "https://github.com/#{repo}.git" }
5
4
 
6
- branch = ENV.fetch('SOLIDUS_BRANCH', 'master')
7
- gem 'solidus', github: 'solidusio/solidus', branch: branch
8
-
9
- # The solidus_frontend gem has been pulled out since v3.2
10
- if (branch == 'master') || (branch >= 'v3.2')
11
- gem 'solidus_frontend', github: 'solidusio/solidus_frontend', branch: branch
12
- end
13
-
14
- # Needed to help Bundler figure out how to resolve dependencies,
15
- # otherwise it takes forever to resolve them.
16
- # See https://github.com/bundler/bundler/issues/6677
17
- gem 'rails', '>0.a'
5
+ gemspec
18
6
 
19
- # Provides basic authentication functionality for testing parts of your engine
20
- gem 'solidus_auth_devise'
7
+ # Those are due to the "stdlib gemification" that's
8
+ # happening between versions of ruby.
9
+ gem 'stringio'
10
+ gem 'timeout'
21
11
 
22
- case ENV.fetch('DB', nil)
23
- when 'mysql'
24
- gem 'mysql2'
25
- when 'postgresql'
26
- gem 'pg'
27
- else
28
- gem 'sqlite3'
29
- end
12
+ gem 'listen'
30
13
 
31
- gemspec
14
+ gem 'activestorage'
32
15
 
33
- # Use a local Gemfile to include development dependencies that might not be
34
- # relevant for the project or for other contributors, e.g. pry-byebug.
35
- #
36
- # We use `send` instead of calling `eval_gemfile` to work around an issue with
37
- # how Dependabot parses projects: https://github.com/dependabot/dependabot-core/issues/1658.
38
- send(:eval_gemfile, 'Gemfile-local') if File.exist? 'Gemfile-local'
16
+ gem 'rspec_junit_formatter', require: false
17
+ gem 'simplecov', '~> 0.22', require: false
18
+ gem 'simplecov-cobertura', require: false
data/LICENSE CHANGED
@@ -1,5 +1,5 @@
1
- Copyright (c) 2014 Spree Commerce Inc. and other contributors.
2
- Copyright (c) 2021 Solidus Team and other contributors.
1
+ Copyright (c) 2014 Spree Commerce Inc., released under the New BSD License
2
+ Copyright (c) 2021 Solidus Team, released under the New BSD License.
3
3
  All rights reserved.
4
4
 
5
5
  Redistribution and use in source and binary forms, with or without modification,
data/Procfile.dev ADDED
@@ -0,0 +1,3 @@
1
+ web: env RUBY_DEBUG_OPEN=true bin/rails-sandbox server
2
+ watch: bin/rails-sandbox g solidus_stripe:install --force --watch
3
+ stripe: stripe listen --forward-to http://localhost:3000/solidus_stripe/test/webhooks --events charge.refunded,payment_intent.succeeded,payment_intent.payment_failed,payment_intent.canceled