solidus_stripe 4.4.1 → 5.0.0.alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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