solidus_subscriptions 1.0.0.rc1

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 (204) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +41 -0
  3. data/.gem_release.yml +5 -0
  4. data/.github/stale.yml +17 -0
  5. data/.github_changelog_generator +2 -0
  6. data/.gitignore +20 -0
  7. data/.rspec +2 -0
  8. data/.rubocop.yml +12 -0
  9. data/.rubocop_todo.yml +86 -0
  10. data/CHANGELOG.md +191 -0
  11. data/Gemfile +33 -0
  12. data/LICENSE +26 -0
  13. data/README.md +221 -0
  14. data/Rakefile +6 -0
  15. data/app/assets/javascripts/spree/backend/solidus_subscriptions.js +1 -0
  16. data/app/assets/javascripts/spree/backend/solidus_subscriptions/edit_subscription_payment.js +32 -0
  17. data/app/controllers/solidus_subscriptions/api/v1/base_controller.rb +13 -0
  18. data/app/controllers/solidus_subscriptions/api/v1/line_items_controller.rb +48 -0
  19. data/app/controllers/solidus_subscriptions/api/v1/subscriptions_controller.rb +100 -0
  20. data/app/controllers/spree/admin/installments_controller.rb +25 -0
  21. data/app/controllers/spree/admin/subscription_events_controller.rb +37 -0
  22. data/app/controllers/spree/admin/subscription_orders_controller.rb +35 -0
  23. data/app/controllers/spree/admin/subscriptions_controller.rb +100 -0
  24. data/app/controllers/spree/admin/users/subscriptions_controller.rb +17 -0
  25. data/app/decorators/controllers/solidus_subscriptions/spree/api/line_items_controller/create_subscription_line_items.rb +36 -0
  26. data/app/decorators/controllers/solidus_subscriptions/spree/orders_controller/create_subscription_line_items.rb +35 -0
  27. data/app/decorators/models/solidus_subscriptions/spree/line_item/subscription_line_items_association.rb +26 -0
  28. data/app/decorators/models/solidus_subscriptions/spree/order/after_create.rb +19 -0
  29. data/app/decorators/models/solidus_subscriptions/spree/order/finalize_creates_subscriptions.rb +23 -0
  30. data/app/decorators/models/solidus_subscriptions/spree/order/installment_details_association.rb +15 -0
  31. data/app/decorators/models/solidus_subscriptions/spree/order/subscription_association.rb +15 -0
  32. data/app/decorators/models/solidus_subscriptions/spree/order/subscription_line_items_association.rb +19 -0
  33. data/app/decorators/models/solidus_subscriptions/spree/product/delegate_subscribable.rb +17 -0
  34. data/app/decorators/models/solidus_subscriptions/spree/user/have_many_subscriptions.rb +30 -0
  35. data/app/decorators/models/solidus_subscriptions/spree/variant/auto_delete_from_subscriptions.rb +20 -0
  36. data/app/decorators/models/solidus_subscriptions/spree/variant/variant_pretty_name.rb +17 -0
  37. data/app/decorators/models/solidus_subscriptions/spree/wallet_payment_source/report_default_change_to_subscriptions.rb +28 -0
  38. data/app/jobs/solidus_subscriptions/process_installment_job.rb +13 -0
  39. data/app/jobs/solidus_subscriptions/process_subscription_job.rb +31 -0
  40. data/app/models/solidus_subscriptions/installment.rb +135 -0
  41. data/app/models/solidus_subscriptions/installment_detail.rb +28 -0
  42. data/app/models/solidus_subscriptions/interval.rb +26 -0
  43. data/app/models/solidus_subscriptions/line_item.rb +42 -0
  44. data/app/models/solidus_subscriptions/promotion/rules/subscription_creation_order.rb +44 -0
  45. data/app/models/solidus_subscriptions/promotion/rules/subscription_installment_order.rb +31 -0
  46. data/app/models/solidus_subscriptions/subscription.rb +392 -0
  47. data/app/models/solidus_subscriptions/subscription_event.rb +11 -0
  48. data/app/overrides/views/admin_subscribable_product_checkbox.rb +8 -0
  49. data/app/overrides/views/admin_subscribable_variant_checkbox.rb +8 -0
  50. data/app/overrides/views/admin_subscriptions_menu_link.rb +10 -0
  51. data/app/overrides/views/admin_users_subscriptions_tab.rb +8 -0
  52. data/app/overrides/views/subscription_line_item_fields.rb +8 -0
  53. data/app/subscribers/solidus_subscriptions/churn_buster_subscriber.rb +39 -0
  54. data/app/subscribers/solidus_subscriptions/event_storage_subscriber.rb +64 -0
  55. data/app/views/spree/admin/installments/_state_pill.html.erb +8 -0
  56. data/app/views/spree/admin/installments/index.html.erb +42 -0
  57. data/app/views/spree/admin/products/_subscribable_checkbox.html.erb +8 -0
  58. data/app/views/spree/admin/promotions/rules/_subscription_creation_order.html.erb +0 -0
  59. data/app/views/spree/admin/promotions/rules/_subscription_installment_order.html.erb +0 -0
  60. data/app/views/spree/admin/shared/_subscription_actions.html.erb +35 -0
  61. data/app/views/spree/admin/shared/_subscription_breadcrumbs.html.erb +4 -0
  62. data/app/views/spree/admin/shared/_subscription_sidebar.html.erb +18 -0
  63. data/app/views/spree/admin/shared/_subscription_tab.html.erb +3 -0
  64. data/app/views/spree/admin/shared/_subscription_tabs.html.erb +18 -0
  65. data/app/views/spree/admin/subscription_events/_state_pill.html.erb +8 -0
  66. data/app/views/spree/admin/subscription_events/index.html.erb +42 -0
  67. data/app/views/spree/admin/subscription_orders/index.html.erb +93 -0
  68. data/app/views/spree/admin/subscriptions/_form.html.erb +150 -0
  69. data/app/views/spree/admin/subscriptions/_processing_state_pill.html.erb +9 -0
  70. data/app/views/spree/admin/subscriptions/_state_pill.html.erb +10 -0
  71. data/app/views/spree/admin/subscriptions/edit.html.erb +10 -0
  72. data/app/views/spree/admin/subscriptions/index.html.erb +176 -0
  73. data/app/views/spree/admin/subscriptions/new.html.erb +5 -0
  74. data/app/views/spree/admin/users/_subscription_tab.html.erb +5 -0
  75. data/app/views/spree/admin/users/subscriptions/index.html.erb +44 -0
  76. data/app/views/spree/admin/variants/_subscribable_checkbox.html.erb +6 -0
  77. data/app/views/spree/frontend/products/_subscription_line_item_fields.html.erb +30 -0
  78. data/bin/console +17 -0
  79. data/bin/rails +7 -0
  80. data/bin/rails-engine +13 -0
  81. data/bin/rails-sandbox +16 -0
  82. data/bin/rake +7 -0
  83. data/bin/sandbox +86 -0
  84. data/bin/setup +8 -0
  85. data/config/initializers/permission_sets.rb +11 -0
  86. data/config/initializers/subscribers.rb +9 -0
  87. data/config/locales/en.yml +129 -0
  88. data/config/routes.rb +34 -0
  89. data/db/migrate/20160825164850_create_solidus_subscriptions_subscriptions.rb +11 -0
  90. data/db/migrate/20160825173548_create_solidus_subscriptions_line_items.rb +17 -0
  91. data/db/migrate/20160825202248_create_solidus_subscriptions_installments.rb +23 -0
  92. data/db/migrate/20160825211202_create_solidus_subscriptions_installment_details.rb +22 -0
  93. data/db/migrate/20160825214240_add_subscribable_to_spree_variants.rb +5 -0
  94. data/db/migrate/20160829201653_change_subscription_line_items_installments_to_max_installments.rb +5 -0
  95. data/db/migrate/20160902220242_remove_state_from_solidus_susbscriptions_installment_details.rb +5 -0
  96. data/db/migrate/20160902220604_add_successful_to_solidus_subscriptions_installment_details.rb +5 -0
  97. data/db/migrate/20160902221218_add_message_to_solidus_subscriptions_installment_details.rb +5 -0
  98. data/db/migrate/20160922164101_add_interval_length_and_units_to_subscription_line_items.rb +8 -0
  99. data/db/migrate/20161006191003_add_skip_count_to_solidus_subscriptions_subscriptions.rb +5 -0
  100. data/db/migrate/20161006191127_add_successive_skip_count_to_solidus_subscriptions_subscriptions.rb +5 -0
  101. data/db/migrate/20161014212649_allow_spree_line_item_id_to_be_null.rb +5 -0
  102. data/db/migrate/20161017155749_add_order_id_to_solidus_subscriptions_installment_details.rb +6 -0
  103. data/db/migrate/20161017175509_remove_order_id_from_solidus_subscriptions_installments.rb +5 -0
  104. data/db/migrate/20161017201944_add_subscription_order_to_spree_orders.rb +5 -0
  105. data/db/migrate/20161221155142_add_store_to_solidus_subscriptions_subscriptions.rb +6 -0
  106. data/db/migrate/20161223152905_add_address_id_to_solidus_subscriptions_subscriptions.rb +7 -0
  107. data/db/migrate/20170106224713_change_line_item_max_installments_to_end_date.rb +6 -0
  108. data/db/migrate/20170111224458_change_subscription_actionable_date_to_datetime.rb +5 -0
  109. data/db/migrate/20170111232801_change_inteval_actionable_date_to_datetime.rb +5 -0
  110. data/db/migrate/20170112012407_add_config_options_to_subscriptions.rb +7 -0
  111. data/db/migrate/20200617102749_add_billing_address_to_subscriptions.rb +11 -0
  112. data/db/migrate/20200617155042_add_payment_source_to_subscriptions.rb +6 -0
  113. data/db/migrate/20200618092951_add_payment_method_to_subscriptions.rb +11 -0
  114. data/db/migrate/20200730101242_create_solidus_subscriptions_subscription_events.rb +22 -0
  115. data/db/migrate/20200917072152_add_subscription_reference_to_orders.rb +11 -0
  116. data/db/migrate/20201007140032_add_guest_token_to_subscriptions.rb +6 -0
  117. data/db/migrate/20201123171026_change_actionable_date_to_date.rb +15 -0
  118. data/db/migrate/20210205140422_add_currency_to_subscription.rb +5 -0
  119. data/db/migrate/20210323165714_update_promotion_rule_names.rb +22 -0
  120. data/lib/generators/solidus_subscriptions/install/install_generator.rb +32 -0
  121. data/lib/generators/solidus_subscriptions/install/templates/initializer.rb +99 -0
  122. data/lib/solidus_subscriptions.rb +49 -0
  123. data/lib/solidus_subscriptions/checkout.rb +74 -0
  124. data/lib/solidus_subscriptions/churn_buster/client.rb +48 -0
  125. data/lib/solidus_subscriptions/churn_buster/order_serializer.rb +19 -0
  126. data/lib/solidus_subscriptions/churn_buster/serializer.rb +23 -0
  127. data/lib/solidus_subscriptions/churn_buster/subscription_customer_serializer.rb +28 -0
  128. data/lib/solidus_subscriptions/churn_buster/subscription_payment_method_serializer.rb +37 -0
  129. data/lib/solidus_subscriptions/churn_buster/subscription_serializer.rb +17 -0
  130. data/lib/solidus_subscriptions/configuration.rb +84 -0
  131. data/lib/solidus_subscriptions/dispatcher/base.rb +18 -0
  132. data/lib/solidus_subscriptions/dispatcher/failure_dispatcher.rb +13 -0
  133. data/lib/solidus_subscriptions/dispatcher/out_of_stock_dispatcher.rb +11 -0
  134. data/lib/solidus_subscriptions/dispatcher/payment_failed_dispatcher.rb +19 -0
  135. data/lib/solidus_subscriptions/dispatcher/success_dispatcher.rb +17 -0
  136. data/lib/solidus_subscriptions/engine.rb +56 -0
  137. data/lib/solidus_subscriptions/permission_sets/default_customer.rb +19 -0
  138. data/lib/solidus_subscriptions/permission_sets/subscription_management.rb +12 -0
  139. data/lib/solidus_subscriptions/permitted_attributes.rb +20 -0
  140. data/lib/solidus_subscriptions/processor.rb +17 -0
  141. data/lib/solidus_subscriptions/subscription_generator.rb +77 -0
  142. data/lib/solidus_subscriptions/subscription_line_item_builder.rb +23 -0
  143. data/lib/solidus_subscriptions/testing_support/factories/installment_detail_factory.rb +11 -0
  144. data/lib/solidus_subscriptions/testing_support/factories/installment_factory.rb +29 -0
  145. data/lib/solidus_subscriptions/testing_support/factories/line_item_factory.rb +20 -0
  146. data/lib/solidus_subscriptions/testing_support/factories/spree/line_item_factory.rb +17 -0
  147. data/lib/solidus_subscriptions/testing_support/factories/spree/order_factory.rb +17 -0
  148. data/lib/solidus_subscriptions/testing_support/factories/spree_modification_factory.rb +10 -0
  149. data/lib/solidus_subscriptions/testing_support/factories/subscription_event_factory.rb +8 -0
  150. data/lib/solidus_subscriptions/testing_support/factories/subscription_factory.rb +56 -0
  151. data/lib/solidus_subscriptions/version.rb +5 -0
  152. data/lib/tasks/process_subscriptions.rake +8 -0
  153. data/reference/solidus_subscriptions.v1.yaml +290 -0
  154. data/solidus_subscriptions.gemspec +47 -0
  155. data/spec/controllers/spree/admin/subscriptions_controller_spec.rb +202 -0
  156. data/spec/controllers/spree/api/line_items_controller_spec.rb +103 -0
  157. data/spec/controllers/spree/api/orders_controller_spec.rb +57 -0
  158. data/spec/controllers/spree/api/users_controller_spec.rb +48 -0
  159. data/spec/decorators/controllers/solidus_subscriptions/spree/orders_controller/create_subscription_line_items_spec.rb +80 -0
  160. data/spec/decorators/models/solidus_subscriptions/spree/line_item/subscription_line_items_association_spec.rb +10 -0
  161. data/spec/decorators/models/solidus_subscriptions/spree/order/finalize_creates_subscriptions_spec.rb +32 -0
  162. data/spec/decorators/models/solidus_subscriptions/spree/order/installment_details_association_spec.rb +9 -0
  163. data/spec/decorators/models/solidus_subscriptions/spree/order/subscription_line_items_association_spec.rb +9 -0
  164. data/spec/decorators/models/solidus_subscriptions/spree/user/have_many_subscriptions_spec.rb +22 -0
  165. data/spec/decorators/models/solidus_subscriptions/spree/variant/auto_delete_from_subscriptions_spec.rb +25 -0
  166. data/spec/features/admin/subscription_orders_spec.rb +35 -0
  167. data/spec/features/admin/subscriptions_spec.rb +63 -0
  168. data/spec/features/admin_users_subscription_tabs_spec.rb +61 -0
  169. data/spec/fixtures/cassettes/churn_buster.yml +229 -0
  170. data/spec/jobs/solidus_subscriptions/process_installment_job_spec.rb +38 -0
  171. data/spec/jobs/solidus_subscriptions/process_subscription_job_spec.rb +83 -0
  172. data/spec/lib/solidus_subscriptions/checkout_spec.rb +125 -0
  173. data/spec/lib/solidus_subscriptions/churn_buster/client_spec.rb +59 -0
  174. data/spec/lib/solidus_subscriptions/dispatcher/failure_dispatcher_spec.rb +29 -0
  175. data/spec/lib/solidus_subscriptions/dispatcher/out_of_stock_dispatcher_spec.rb +15 -0
  176. data/spec/lib/solidus_subscriptions/dispatcher/payment_failed_dispatcher_spec.rb +44 -0
  177. data/spec/lib/solidus_subscriptions/dispatcher/success_dispatcher_spec.rb +30 -0
  178. data/spec/lib/solidus_subscriptions/permission_sets/default_customer_spec.rb +95 -0
  179. data/spec/lib/solidus_subscriptions/permission_sets/subscription_management_spec.rb +26 -0
  180. data/spec/lib/solidus_subscriptions/processor_spec.rb +34 -0
  181. data/spec/lib/solidus_subscriptions/promotion/rules/subscription_creation_order_spec.rb +57 -0
  182. data/spec/lib/solidus_subscriptions/promotion/rules/subscription_installment_order_spec.rb +39 -0
  183. data/spec/lib/solidus_subscriptions/subscription_generator_spec.rb +83 -0
  184. data/spec/lib/solidus_subscriptions_spec.rb +30 -0
  185. data/spec/models/solidus_subscriptions/installment_detail_spec.rb +23 -0
  186. data/spec/models/solidus_subscriptions/installment_spec.rb +201 -0
  187. data/spec/models/solidus_subscriptions/line_item_spec.rb +29 -0
  188. data/spec/models/solidus_subscriptions/subscription_spec.rb +814 -0
  189. data/spec/models/spree/variant_spec.rb +16 -0
  190. data/spec/models/spree/wallet_payment_source_spec.rb +20 -0
  191. data/spec/requests/api/v1/line_items_spec.rb +116 -0
  192. data/spec/requests/api/v1/subscriptions_spec.rb +255 -0
  193. data/spec/spec_helper.rb +30 -0
  194. data/spec/subscribers/solidus_subscriptions/churn_buster_subscriber_spec.rb +76 -0
  195. data/spec/support/active_model_mocks.rb +1 -0
  196. data/spec/support/cancancan.rb +1 -0
  197. data/spec/support/factories.rb +1 -0
  198. data/spec/support/helpers/checkout_infrastructure.rb +18 -0
  199. data/spec/support/helpers/config.rb +13 -0
  200. data/spec/support/shoulda.rb +7 -0
  201. data/spec/support/timecop.rb +1 -0
  202. data/spec/support/vcr.rb +10 -0
  203. data/spec/support/version_cake.rb +8 -0
  204. metadata +498 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 45719f0e107935ab6aa80a88c77f9a4e4724c75a6232d5b48522cbdd46fe1b13
4
+ data.tar.gz: 9703884d1d0f90d6eb580df7c33e74c0f90cf5809b9377c237edeef4883a8f84
5
+ SHA512:
6
+ metadata.gz: cadc2b4bd51ae07326c4a0259c16c70dcce339a672630fd5e6aa8f5e56a47b88d86ce325db6f7c4cb5d36140fef3ac51311660c7a2449b7026b6e23bbdd411ad
7
+ data.tar.gz: 3bbd14e0dff7851badd900cf605d25a5468822aff5ab4fb18e2707577c4db0c582db02ac594545747b66831b1a5d3e9d7cf8e8f408499cdb8c3c16a931e30473
@@ -0,0 +1,41 @@
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
+
31
+ "Weekly run specs against master":
32
+ triggers:
33
+ - schedule:
34
+ cron: "0 0 * * 4" # every Thursday
35
+ filters:
36
+ branches:
37
+ only:
38
+ - master
39
+ jobs:
40
+ - run-specs-with-postgres
41
+ - run-specs-with-mysql
data/.gem_release.yml ADDED
@@ -0,0 +1,5 @@
1
+ bump:
2
+ recurse: false
3
+ file: 'lib/solidus_subscriptions/version.rb'
4
+ message: Bump SolidusSubscriptions to %{version}
5
+ tag: true
data/.github/stale.yml ADDED
@@ -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: false
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: stale
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 might 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,2 @@
1
+ issues=false
2
+ exclude-labels=infrastructure
data/.gitignore ADDED
@@ -0,0 +1,20 @@
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
+ /sandbox
18
+ .rvmrc
19
+ .ruby-version
20
+ .ruby-gemset
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
data/.rubocop.yml ADDED
@@ -0,0 +1,12 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
3
+ require:
4
+ - solidus_dev_support/rubocop
5
+
6
+ RSpec/DescribeClass:
7
+ Exclude:
8
+ - spec/requests/**/*
9
+ - spec/features/**/*
10
+
11
+ Rails/SkipsModelValidations:
12
+ Enabled: false
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,86 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2020-09-24 12:23:52 UTC using RuboCop version 0.91.1.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 1
10
+ Lint/MissingSuper:
11
+ Exclude:
12
+ - 'app/services/solidus_subscriptions/user_mismatch_error.rb'
13
+
14
+ # Offense count: 1
15
+ # Configuration parameters: EnforcedStyleForLeadingUnderscores.
16
+ # SupportedStylesForLeadingUnderscores: disallowed, required, optional
17
+ Naming/MemoizedInstanceVariableName:
18
+ Exclude:
19
+ - 'lib/solidus_subscriptions/processor.rb'
20
+
21
+ # Offense count: 2
22
+ RSpec/MultipleExpectations:
23
+ Max: 2
24
+
25
+ # Offense count: 90
26
+ # Configuration parameters: IgnoreSharedExamples.
27
+ RSpec/NamedSubject:
28
+ Enabled: false
29
+
30
+ # Offense count: 11
31
+ RSpec/NestedGroups:
32
+ Max: 4
33
+
34
+ # Offense count: 4
35
+ # Configuration parameters: Include.
36
+ # Include: app/models/**/*.rb
37
+ Rails/HasManyOrHasOneDependent:
38
+ Exclude:
39
+ - 'app/models/solidus_subscriptions/installment.rb'
40
+ - 'app/models/solidus_subscriptions/subscription.rb'
41
+
42
+ # Offense count: 2
43
+ # Configuration parameters: Include.
44
+ # Include: db/migrate/*.rb
45
+ Rails/ReversibleMigration:
46
+ Exclude:
47
+ - 'db/migrate/20160922164101_add_interval_length_and_units_to_subscription_line_items.rb'
48
+ - 'db/migrate/20170106224713_change_line_item_max_installments_to_end_date.rb'
49
+
50
+ # Offense count: 5
51
+ # Configuration parameters: ForbiddenMethods, AllowedMethods.
52
+ # ForbiddenMethods: decrement!, decrement_counter, increment!, increment_counter, insert, insert!, insert_all, insert_all!, toggle!, touch, touch_all, update_all, update_attribute, update_column, update_columns, update_counters, upsert, upsert_all
53
+ Rails/SkipsModelValidations:
54
+ Exclude:
55
+ - 'app/services/solidus_subscriptions/failure_dispatcher.rb'
56
+ - 'app/services/solidus_subscriptions/order_builder.rb'
57
+ - 'app/services/solidus_subscriptions/payment_failed_dispatcher.rb'
58
+
59
+ # Offense count: 1
60
+ # Cop supports --auto-correct.
61
+ # Configuration parameters: EnforcedStyle, SingleLineConditionsOnly, IncludeTernaryExpressions.
62
+ # SupportedStyles: assign_to_condition, assign_inside_condition
63
+ Style/ConditionalAssignment:
64
+ Exclude:
65
+ - 'app/controllers/spree/admin/subscriptions_controller.rb'
66
+
67
+ # Offense count: 4
68
+ # Configuration parameters: MinBodyLength.
69
+ Style/GuardClause:
70
+ Exclude:
71
+ - 'app/models/solidus_subscriptions/subscription.rb'
72
+
73
+ # Offense count: 1
74
+ # Cop supports --auto-correct.
75
+ # Configuration parameters: EnforcedStyle.
76
+ # SupportedStyles: compact, exploded
77
+ Style/RaiseArgs:
78
+ Exclude:
79
+ - 'app/services/solidus_subscriptions/checkout.rb'
80
+
81
+ # Offense count: 11
82
+ # Cop supports --auto-correct.
83
+ # Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
84
+ # URISchemes: http, https
85
+ Layout/LineLength:
86
+ Max: 290
data/CHANGELOG.md ADDED
@@ -0,0 +1,191 @@
1
+ # Changelog
2
+
3
+ ## [v1.0.0.rc1](https://github.com/solidusio-contrib/solidus_subscriptions/tree/v1.0.0.rc1) (2021-04-02)
4
+
5
+ [Full Changelog](https://github.com/solidusio-contrib/solidus_subscriptions/compare/a8a92654ba21b22bd3f8d07c3ae25e3604e7942a...v1.0.0.rc1)
6
+
7
+ **Breaking changes:**
8
+
9
+ - Improve description for promotion rules [\#205](https://github.com/solidusio-contrib/solidus_subscriptions/issues/205)
10
+ - Improve dispatchers API [\#155](https://github.com/solidusio-contrib/solidus_subscriptions/pull/155) ([aldesantis](https://github.com/aldesantis))
11
+ - Streamline event emission and tracking [\#154](https://github.com/solidusio-contrib/solidus_subscriptions/pull/154) ([aldesantis](https://github.com/aldesantis))
12
+ - Remove references to subscriptions only having one line item [\#123](https://github.com/solidusio-contrib/solidus_subscriptions/pull/123) ([aldesantis](https://github.com/aldesantis))
13
+ - Retrieve payment method from payment source [\#121](https://github.com/solidusio-contrib/solidus_subscriptions/pull/121) ([aldesantis](https://github.com/aldesantis))
14
+ - Use subscription's `end_date` in `Subscription#can_be_deactivated?` [\#112](https://github.com/solidusio-contrib/solidus_subscriptions/pull/112) ([aldesantis](https://github.com/aldesantis))
15
+
16
+ **Implemented enhancements:**
17
+
18
+ - Validate payment source ownership [\#208](https://github.com/solidusio-contrib/solidus_subscriptions/issues/208)
19
+ - Prepare Solidus Subscriptions for Solidus 3.0 [\#194](https://github.com/solidusio-contrib/solidus_subscriptions/issues/194)
20
+ - Process each subscription in a separate background job [\#190](https://github.com/solidusio-contrib/solidus_subscriptions/issues/190)
21
+ - Skip ActiveJob retrying for ProcessInstallmentsJob [\#175](https://github.com/solidusio-contrib/solidus_subscriptions/issues/175)
22
+ - Installment.unfulfilled is a drag on performance [\#171](https://github.com/solidusio-contrib/solidus_subscriptions/issues/171)
23
+ - Simplify subscription processing logic [\#170](https://github.com/solidusio-contrib/solidus_subscriptions/issues/170)
24
+ - Add currency to subscriptions [\#138](https://github.com/solidusio-contrib/solidus_subscriptions/issues/138)
25
+ - Allow marking the master variant as subscribable [\#130](https://github.com/solidusio-contrib/solidus_subscriptions/issues/130)
26
+ - Show orders generated by a subscription [\#129](https://github.com/solidusio-contrib/solidus_subscriptions/issues/129)
27
+ - Allow creating a subscription via the API [\#122](https://github.com/solidusio-contrib/solidus_subscriptions/issues/122)
28
+ - Load factories using the new standard [\#203](https://github.com/solidusio-contrib/solidus_subscriptions/pull/203) ([kennyadsl](https://github.com/kennyadsl))
29
+ - Add maximum\_reprocessing\_attempts preference [\#160](https://github.com/solidusio-contrib/solidus_subscriptions/pull/160) ([aldesantis](https://github.com/aldesantis))
30
+ - Enable authorization via guest tokens [\#158](https://github.com/solidusio-contrib/solidus_subscriptions/pull/158) ([aldesantis](https://github.com/aldesantis))
31
+ - Reformat sample configuration file [\#153](https://github.com/solidusio-contrib/solidus_subscriptions/pull/153) ([aldesantis](https://github.com/aldesantis))
32
+ - Integrate Churn Buster [\#152](https://github.com/solidusio-contrib/solidus_subscriptions/pull/152) ([aldesantis](https://github.com/aldesantis))
33
+ - Implement a `LineItem#subscribable` association [\#149](https://github.com/solidusio-contrib/solidus_subscriptions/pull/149) ([aldesantis](https://github.com/aldesantis))
34
+ - Installation and configuration updates [\#148](https://github.com/solidusio-contrib/solidus_subscriptions/pull/148) ([aldesantis](https://github.com/aldesantis))
35
+ - Add order association to subscriptions [\#147](https://github.com/solidusio-contrib/solidus_subscriptions/pull/147) ([nirebu](https://github.com/nirebu))
36
+ - Improve event tracking [\#142](https://github.com/solidusio-contrib/solidus_subscriptions/pull/142) ([aldesantis](https://github.com/aldesantis))
37
+ - Subscription events [\#141](https://github.com/solidusio-contrib/solidus_subscriptions/pull/141) ([aldesantis](https://github.com/aldesantis))
38
+ - Use Spree.user\_class instead of Spree::User to allow for custom user classes [\#140](https://github.com/solidusio-contrib/solidus_subscriptions/pull/140) ([marcrohloff](https://github.com/marcrohloff))
39
+ - Update default permitted attributes [\#136](https://github.com/solidusio-contrib/solidus_subscriptions/pull/136) ([aldesantis](https://github.com/aldesantis))
40
+ - Allow admins to make master variants subcribable [\#131](https://github.com/solidusio-contrib/solidus_subscriptions/pull/131) ([aldesantis](https://github.com/aldesantis))
41
+ - Store payment method and source on subscriptions [\#127](https://github.com/solidusio-contrib/solidus_subscriptions/pull/127) ([aldesantis](https://github.com/aldesantis))
42
+ - Allow setting subscription interval and end date via the API [\#125](https://github.com/solidusio-contrib/solidus_subscriptions/pull/125) ([aldesantis](https://github.com/aldesantis))
43
+ - Allow setting a billing address on the subscription [\#119](https://github.com/solidusio-contrib/solidus_subscriptions/pull/119) ([aldesantis](https://github.com/aldesantis))
44
+ - Improve installment visualization and sorting [\#111](https://github.com/solidusio-contrib/solidus_subscriptions/pull/111) ([aldesantis](https://github.com/aldesantis))
45
+ - Add subscription details to backend [\#109](https://github.com/solidusio-contrib/solidus_subscriptions/pull/109) ([aldesantis](https://github.com/aldesantis))
46
+ - Add shipping address to backend subscription form [\#108](https://github.com/solidusio-contrib/solidus_subscriptions/pull/108) ([aldesantis](https://github.com/aldesantis))
47
+ - Allow admins to remove subscription line items [\#107](https://github.com/solidusio-contrib/solidus_subscriptions/pull/107) ([aldesantis](https://github.com/aldesantis))
48
+ - Allow admins to add subscription items when editing subscription [\#103](https://github.com/solidusio-contrib/solidus_subscriptions/pull/103) ([aldesantis](https://github.com/aldesantis))
49
+
50
+ **Fixed bugs:**
51
+
52
+ - Set default currency when creating subscription from admin panel [\#207](https://github.com/solidusio-contrib/solidus_subscriptions/issues/207)
53
+ - skip\_count is never incremented [\#146](https://github.com/solidusio-contrib/solidus_subscriptions/issues/146)
54
+ - FailureDispatcher is not compatible with Solidus v2.11 [\#135](https://github.com/solidusio-contrib/solidus_subscriptions/issues/135)
55
+ - Handle subscriptions with deleted products [\#133](https://github.com/solidusio-contrib/solidus_subscriptions/issues/133)
56
+ - Fix double creation of subscription line items [\#132](https://github.com/solidusio-contrib/solidus_subscriptions/issues/132)
57
+ - \#Interval incorrectly builds interval [\#44](https://github.com/solidusio-contrib/solidus_subscriptions/issues/44)
58
+ - Fix skip counters to handle skip limits [\#188](https://github.com/solidusio-contrib/solidus_subscriptions/pull/188) ([AlessioRocco](https://github.com/AlessioRocco))
59
+ - Fix legacy unsubscribable subscriptions not being processed [\#173](https://github.com/solidusio-contrib/solidus_subscriptions/pull/173) ([aldesantis](https://github.com/aldesantis))
60
+ - Fix automatic cancellation in case of subscription failure [\#168](https://github.com/solidusio-contrib/solidus_subscriptions/pull/168) ([aldesantis](https://github.com/aldesantis))
61
+ - Fix `ActiveRecord::ReadOnlyRecord` when updating subscriptions [\#166](https://github.com/solidusio-contrib/solidus_subscriptions/pull/166) ([aldesantis](https://github.com/aldesantis))
62
+ - Fix DefaultCustomer permission set giving guests access to admin [\#161](https://github.com/solidusio-contrib/solidus_subscriptions/pull/161) ([aldesantis](https://github.com/aldesantis))
63
+ - Fix default permission set breaking accessible\_by [\#159](https://github.com/solidusio-contrib/solidus_subscriptions/pull/159) ([aldesantis](https://github.com/aldesantis))
64
+ - Fix foreign key type for MySQL [\#151](https://github.com/solidusio-contrib/solidus_subscriptions/pull/151) ([aldesantis](https://github.com/aldesantis))
65
+ - Fix "Store must exist" when creating a subscription via the backend [\#102](https://github.com/solidusio-contrib/solidus_subscriptions/pull/102) ([aldesantis](https://github.com/aldesantis))
66
+
67
+ **Deprecated:**
68
+
69
+ - Deprecate nested subscription attributes from user [\#193](https://github.com/solidusio-contrib/solidus_subscriptions/pull/193) ([luca-landa](https://github.com/luca-landa))
70
+ - Update admin UI to match new backend guidelines [\#99](https://github.com/solidusio-contrib/solidus_subscriptions/pull/99) ([aldesantis](https://github.com/aldesantis))
71
+ - Fix deprecated call to `SolidusSupport.solidus_gem_version` [\#97](https://github.com/solidusio-contrib/solidus_subscriptions/pull/97) ([aldesantis](https://github.com/aldesantis))
72
+
73
+ **Removed:**
74
+
75
+ - Remove nested subscription attributes from User [\#124](https://github.com/solidusio-contrib/solidus_subscriptions/issues/124)
76
+ - Remove time component from actionable\_date columns [\#174](https://github.com/solidusio-contrib/solidus_subscriptions/pull/174) ([aldesantis](https://github.com/aldesantis))
77
+ - Remove subscription\_repopulated event [\#157](https://github.com/solidusio-contrib/solidus_subscriptions/pull/157) ([aldesantis](https://github.com/aldesantis))
78
+ - Remove checks on unsupported Solidus versions [\#101](https://github.com/solidusio-contrib/solidus_subscriptions/pull/101) ([aldesantis](https://github.com/aldesantis))
79
+ - Remove legacy sidebar and form [\#100](https://github.com/solidusio-contrib/solidus_subscriptions/pull/100) ([aldesantis](https://github.com/aldesantis))
80
+
81
+ **Closed issues:**
82
+
83
+ - Fix sandbox generation [\#196](https://github.com/solidusio-contrib/solidus_subscriptions/issues/196)
84
+ - Dependabot can't resolve your Ruby dependency files [\#187](https://github.com/solidusio-contrib/solidus_subscriptions/issues/187)
85
+ - Dependabot can't resolve your Ruby dependency files [\#186](https://github.com/solidusio-contrib/solidus_subscriptions/issues/186)
86
+ - Dependabot can't resolve your Ruby dependency files [\#185](https://github.com/solidusio-contrib/solidus_subscriptions/issues/185)
87
+ - Dependabot can't resolve your Ruby dependency files [\#184](https://github.com/solidusio-contrib/solidus_subscriptions/issues/184)
88
+ - Avoid reprocessing installments with cancelled subscriptions [\#180](https://github.com/solidusio-contrib/solidus_subscriptions/issues/180)
89
+ - Minimum cancellation date is always +1 day from what you set it to [\#177](https://github.com/solidusio-contrib/solidus_subscriptions/issues/177)
90
+ - Unable to edit or disable admin links [\#163](https://github.com/solidusio-contrib/solidus_subscriptions/issues/163)
91
+ - Dependabot can't resolve your Ruby dependency files [\#144](https://github.com/solidusio-contrib/solidus_subscriptions/issues/144)
92
+ - Dependabot can't resolve your Ruby dependency files [\#143](https://github.com/solidusio-contrib/solidus_subscriptions/issues/143)
93
+ - Retrieve payment method from the payment source [\#120](https://github.com/solidusio-contrib/solidus_subscriptions/issues/120)
94
+ - Cannot update interval or end date via API [\#118](https://github.com/solidusio-contrib/solidus_subscriptions/issues/118)
95
+ - Add billing address to subscriptions [\#117](https://github.com/solidusio-contrib/solidus_subscriptions/issues/117)
96
+ - Store payment details on subscription [\#116](https://github.com/solidusio-contrib/solidus_subscriptions/issues/116)
97
+ - Dependabot couldn't find a Gemfile-local for this project [\#91](https://github.com/solidusio-contrib/solidus_subscriptions/issues/91)
98
+ - Dependabot can't resolve your Ruby dependency files [\#90](https://github.com/solidusio-contrib/solidus_subscriptions/issues/90)
99
+ - Dependabot can't resolve your Ruby dependency files [\#88](https://github.com/solidusio-contrib/solidus_subscriptions/issues/88)
100
+ - Dependabot can't resolve your Ruby dependency files [\#87](https://github.com/solidusio-contrib/solidus_subscriptions/issues/87)
101
+ - Dependabot can't resolve your Ruby dependency files [\#86](https://github.com/solidusio-contrib/solidus_subscriptions/issues/86)
102
+ - Dependabot can't resolve your Ruby dependency files [\#85](https://github.com/solidusio-contrib/solidus_subscriptions/issues/85)
103
+ - Dependabot can't resolve your Ruby dependency files [\#84](https://github.com/solidusio-contrib/solidus_subscriptions/issues/84)
104
+ - Dependabot can't resolve your Ruby dependency files [\#82](https://github.com/solidusio-contrib/solidus_subscriptions/issues/82)
105
+ - Unable to seed dummy store [\#22](https://github.com/solidusio-contrib/solidus_subscriptions/issues/22)
106
+ - Solidus Subscriptions incompatible with solidus 2.3 [\#14](https://github.com/solidusio-contrib/solidus_subscriptions/issues/14)
107
+ - Promo codes? [\#8](https://github.com/solidusio-contrib/solidus_subscriptions/issues/8)
108
+ - Default store subscription field views [\#7](https://github.com/solidusio-contrib/solidus_subscriptions/issues/7)
109
+ - There is no subscribable toggle for master variants [\#6](https://github.com/solidusio-contrib/solidus_subscriptions/issues/6)
110
+ - What is the plan? [\#1](https://github.com/solidusio-contrib/solidus_subscriptions/issues/1)
111
+
112
+ **Merged pull requests:**
113
+
114
+ - Update specs to conform with rubocop [\#217](https://github.com/solidusio-contrib/solidus_subscriptions/pull/217) ([seand7565](https://github.com/seand7565))
115
+ - Update promotion rule names on db [\#216](https://github.com/solidusio-contrib/solidus_subscriptions/pull/216) ([luca-landa](https://github.com/luca-landa))
116
+ - Improve promotion rules names [\#215](https://github.com/solidusio-contrib/solidus_subscriptions/pull/215) ([luca-landa](https://github.com/luca-landa))
117
+ - Validate payment\_source ownership on the subscription [\#214](https://github.com/solidusio-contrib/solidus_subscriptions/pull/214) ([ChristianRimondi](https://github.com/ChristianRimondi))
118
+ - Add missing permissions sets for Solidus v2.11 [\#213](https://github.com/solidusio-contrib/solidus_subscriptions/pull/213) ([elia](https://github.com/elia))
119
+ - Require a version of solidus\_support that autoloads subscribers [\#212](https://github.com/solidusio-contrib/solidus_subscriptions/pull/212) ([elia](https://github.com/elia))
120
+ - Remove variant from subscriptions on soft deletion [\#211](https://github.com/solidusio-contrib/solidus_subscriptions/pull/211) ([luca-landa](https://github.com/luca-landa))
121
+ - Set default config currency to subscription [\#210](https://github.com/solidusio-contrib/solidus_subscriptions/pull/210) ([luca-landa](https://github.com/luca-landa))
122
+ - Skip ActiveJob retrying for ProcessInstallmentJob [\#206](https://github.com/solidusio-contrib/solidus_subscriptions/pull/206) ([ikraamg](https://github.com/ikraamg))
123
+ - Cleanup the duplicated fields on subscription creation [\#202](https://github.com/solidusio-contrib/solidus_subscriptions/pull/202) ([blocknotes](https://github.com/blocknotes))
124
+ - Move subscription processing to its own background job [\#201](https://github.com/solidusio-contrib/solidus_subscriptions/pull/201) ([nirebu](https://github.com/nirebu))
125
+ - Use `name` in customer serializer [\#200](https://github.com/solidusio-contrib/solidus_subscriptions/pull/200) ([nvandoorn](https://github.com/nvandoorn))
126
+ - Setup the subcription create endpoint [\#199](https://github.com/solidusio-contrib/solidus_subscriptions/pull/199) ([blocknotes](https://github.com/blocknotes))
127
+ - Add currency to subscriptions [\#198](https://github.com/solidusio-contrib/solidus_subscriptions/pull/198) ([luca-landa](https://github.com/luca-landa))
128
+ - Fix sandbox creation error [\#197](https://github.com/solidusio-contrib/solidus_subscriptions/pull/197) ([blocknotes](https://github.com/blocknotes))
129
+ - Fix duplicated line items creation [\#195](https://github.com/solidusio-contrib/solidus_subscriptions/pull/195) ([igorbp](https://github.com/igorbp))
130
+ - Admin: expose the subscription orders [\#192](https://github.com/solidusio-contrib/solidus_subscriptions/pull/192) ([blocknotes](https://github.com/blocknotes))
131
+ - Improve "unfulfilled" scope by adding subquery [\#191](https://github.com/solidusio-contrib/solidus_subscriptions/pull/191) ([AlessioRocco](https://github.com/AlessioRocco))
132
+ - Remove "canonical-rails" from the Gemfile [\#189](https://github.com/solidusio-contrib/solidus_subscriptions/pull/189) ([AlessioRocco](https://github.com/AlessioRocco))
133
+ - Update permissions check on user subscription tab [\#183](https://github.com/solidusio-contrib/solidus_subscriptions/pull/183) ([seand7565](https://github.com/seand7565))
134
+ - Add Installment Details association to Order [\#182](https://github.com/solidusio-contrib/solidus_subscriptions/pull/182) ([seand7565](https://github.com/seand7565))
135
+ - Avoid processing installments with cancelled subscriptions [\#181](https://github.com/solidusio-contrib/solidus_subscriptions/pull/181) ([seand7565](https://github.com/seand7565))
136
+ - Update cancel method on subscription to respect minimum date [\#178](https://github.com/solidusio-contrib/solidus_subscriptions/pull/178) ([seand7565](https://github.com/seand7565))
137
+ - Fix typo in subscription admin notifications [\#176](https://github.com/solidusio-contrib/solidus_subscriptions/pull/176) ([igorbp](https://github.com/igorbp))
138
+ - Processor and Checkout refactoring [\#172](https://github.com/solidusio-contrib/solidus_subscriptions/pull/172) ([aldesantis](https://github.com/aldesantis))
139
+ - Move maximum reprocessing retries to a time based criterion [\#167](https://github.com/solidusio-contrib/solidus_subscriptions/pull/167) ([nirebu](https://github.com/nirebu))
140
+ - Add config to ignore past unfulfilled installments [\#165](https://github.com/solidusio-contrib/solidus_subscriptions/pull/165) ([nirebu](https://github.com/nirebu))
141
+ - Add Subscriptions tab to User page in Admin [\#162](https://github.com/solidusio-contrib/solidus_subscriptions/pull/162) ([igorbp](https://github.com/igorbp))
142
+ - Track additional events for subscription updates [\#156](https://github.com/solidusio-contrib/solidus_subscriptions/pull/156) ([aldesantis](https://github.com/aldesantis))
143
+ - Update shoulda-matchers requirement from ~\> 3.1 to ~\> 4.4 [\#145](https://github.com/solidusio-contrib/solidus_subscriptions/pull/145) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
144
+ - Use parent strategy when building associations in factories [\#134](https://github.com/solidusio-contrib/solidus_subscriptions/pull/134) ([aldesantis](https://github.com/aldesantis))
145
+ - Move service objects to `app/services` [\#110](https://github.com/solidusio-contrib/solidus_subscriptions/pull/110) ([aldesantis](https://github.com/aldesantis))
146
+ - Convert API documentation into OpenAPI [\#106](https://github.com/solidusio-contrib/solidus_subscriptions/pull/106) ([aldesantis](https://github.com/aldesantis))
147
+ - Add github\_changelog\_generator configuration [\#105](https://github.com/solidusio-contrib/solidus_subscriptions/pull/105) ([aldesantis](https://github.com/aldesantis))
148
+ - Reorganize and clean up readme [\#104](https://github.com/solidusio-contrib/solidus_subscriptions/pull/104) ([aldesantis](https://github.com/aldesantis))
149
+ - Fix unsupported `around(:all)` RSpec configuration [\#98](https://github.com/solidusio-contrib/solidus_subscriptions/pull/98) ([aldesantis](https://github.com/aldesantis))
150
+ - Update to the latest solidus\_dev\_support [\#96](https://github.com/solidusio-contrib/solidus_subscriptions/pull/96) ([aldesantis](https://github.com/aldesantis))
151
+ - Relax solidus\_support dependency [\#95](https://github.com/solidusio-contrib/solidus_subscriptions/pull/95) ([kennyadsl](https://github.com/kennyadsl))
152
+ - Fix Dependabot looking for Gemfile-local [\#92](https://github.com/solidusio-contrib/solidus_subscriptions/pull/92) ([aldesantis](https://github.com/aldesantis))
153
+ - Update solidus\_dev\_support [\#89](https://github.com/solidusio-contrib/solidus_subscriptions/pull/89) ([blocknotes](https://github.com/blocknotes))
154
+ - Adopt solidus\_extension\_dev\_tools [\#81](https://github.com/solidusio-contrib/solidus_subscriptions/pull/81) ([aldesantis](https://github.com/aldesantis))
155
+ - Fix CI on Rails 6 [\#71](https://github.com/solidusio-contrib/solidus_subscriptions/pull/71) ([aldesantis](https://github.com/aldesantis))
156
+ - Fixes admin sorting on fields without a natural order [\#70](https://github.com/solidusio-contrib/solidus_subscriptions/pull/70) ([mdesantis](https://github.com/mdesantis))
157
+ - Perform maintenance tasks [\#69](https://github.com/solidusio-contrib/solidus_subscriptions/pull/69) ([mdesantis](https://github.com/mdesantis))
158
+ - Run specs with CircleCI [\#68](https://github.com/solidusio-contrib/solidus_subscriptions/pull/68) ([kennyadsl](https://github.com/kennyadsl))
159
+ - Fix broken factories associations [\#67](https://github.com/solidusio-contrib/solidus_subscriptions/pull/67) ([aitbw](https://github.com/aitbw))
160
+ - Remove Solidus v2.3 from Travis config \(EOL\) [\#66](https://github.com/solidusio-contrib/solidus_subscriptions/pull/66) ([aitbw](https://github.com/aitbw))
161
+ - Add Solidus v2.8 to Travis config [\#65](https://github.com/solidusio-contrib/solidus_subscriptions/pull/65) ([aitbw](https://github.com/aitbw))
162
+ - Do not run rubocop on Travis [\#64](https://github.com/solidusio-contrib/solidus_subscriptions/pull/64) ([aitbw](https://github.com/aitbw))
163
+ - Update rubocop to fix vulnerability CVE-2017-8418 [\#63](https://github.com/solidusio-contrib/solidus_subscriptions/pull/63) ([aitbw](https://github.com/aitbw))
164
+ - Fix deprecations warnings and failing specs [\#61](https://github.com/solidusio-contrib/solidus_subscriptions/pull/61) ([aitbw](https://github.com/aitbw))
165
+ - Change api url in documentation [\#58](https://github.com/solidusio-contrib/solidus_subscriptions/pull/58) ([jacobeubanks](https://github.com/jacobeubanks))
166
+ - Fix factory girl dependency for Solidus \< 2.5 [\#57](https://github.com/solidusio-contrib/solidus_subscriptions/pull/57) ([jacobherrington](https://github.com/jacobherrington))
167
+ - Add Solidus 2.7 to .travis.yml [\#56](https://github.com/solidusio-contrib/solidus_subscriptions/pull/56) ([jacobherrington](https://github.com/jacobherrington))
168
+ - Change static factory attrs to dynamic [\#55](https://github.com/solidusio-contrib/solidus_subscriptions/pull/55) ([fastjames](https://github.com/fastjames))
169
+ - Update factory\_girl to factory\_bot [\#50](https://github.com/solidusio-contrib/solidus_subscriptions/pull/50) ([fastjames](https://github.com/fastjames))
170
+ - Update solidus version for travis [\#46](https://github.com/solidusio-contrib/solidus_subscriptions/pull/46) ([fastjames](https://github.com/fastjames))
171
+ - Fix typos in comments [\#39](https://github.com/solidusio-contrib/solidus_subscriptions/pull/39) ([swcraig](https://github.com/swcraig))
172
+ - Add ffaker dependency to gemspec [\#35](https://github.com/solidusio-contrib/solidus_subscriptions/pull/35) ([swcraig](https://github.com/swcraig))
173
+ - Small UI change to canceling in the admin [\#28](https://github.com/solidusio-contrib/solidus_subscriptions/pull/28) ([seantaylor](https://github.com/seantaylor))
174
+ - Authorize subscriptions admin sidebar link [\#23](https://github.com/solidusio-contrib/solidus_subscriptions/pull/23) ([qr8r](https://github.com/qr8r))
175
+ - Subs track their own interval now [\#21](https://github.com/solidusio-contrib/solidus_subscriptions/pull/21) ([qr8r](https://github.com/qr8r))
176
+ - Fix/the broken admin [\#20](https://github.com/solidusio-contrib/solidus_subscriptions/pull/20) ([qr8r](https://github.com/qr8r))
177
+ - Allow destroying nested line items [\#18](https://github.com/solidusio-contrib/solidus_subscriptions/pull/18) ([isaacfreeman](https://github.com/isaacfreeman))
178
+ - Update Readme to correct repo [\#17](https://github.com/solidusio-contrib/solidus_subscriptions/pull/17) ([asecondwill](https://github.com/asecondwill))
179
+ - Support Rails 5.1 [\#16](https://github.com/solidusio-contrib/solidus_subscriptions/pull/16) ([jhawthorn](https://github.com/jhawthorn))
180
+ - Allows for subscription checkout to accommodate a more flexible checko… [\#15](https://github.com/solidusio-contrib/solidus_subscriptions/pull/15) ([joeljackson](https://github.com/joeljackson))
181
+ - Only load permitted attributes once [\#11](https://github.com/solidusio-contrib/solidus_subscriptions/pull/11) ([qr8r](https://github.com/qr8r))
182
+ - Fix duplicated docs [\#10](https://github.com/solidusio-contrib/solidus_subscriptions/pull/10) ([qr8r](https://github.com/qr8r))
183
+ - Add Subcription inputs to product page [\#9](https://github.com/solidusio-contrib/solidus_subscriptions/pull/9) ([qr8r](https://github.com/qr8r))
184
+ - Fixes for Solidus 2.2 [\#5](https://github.com/solidusio-contrib/solidus_subscriptions/pull/5) ([jhawthorn](https://github.com/jhawthorn))
185
+ - Allow Failed installments to not be reprocessed [\#4](https://github.com/solidusio-contrib/solidus_subscriptions/pull/4) ([qr8r](https://github.com/qr8r))
186
+ - Lock travis bundler version [\#3](https://github.com/solidusio-contrib/solidus_subscriptions/pull/3) ([qr8r](https://github.com/qr8r))
187
+ - Group subscriptions by subscription configurations [\#2](https://github.com/solidusio-contrib/solidus_subscriptions/pull/2) ([qr8r](https://github.com/qr8r))
188
+
189
+
190
+
191
+ \* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
data/Gemfile ADDED
@@ -0,0 +1,33 @@
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
+ case ENV['DB']
18
+ when 'mysql'
19
+ gem 'mysql2'
20
+ when 'postgresql'
21
+ gem 'pg'
22
+ else
23
+ gem 'sqlite3'
24
+ end
25
+
26
+ gemspec
27
+
28
+ # Use a local Gemfile to include development dependencies that might not be
29
+ # relevant for the project or for other contributors, e.g. pry-byebug.
30
+ #
31
+ # We use `send` instead of calling `eval_gemfile` to work around an issue with
32
+ # how Dependabot parses projects: https://github.com/dependabot/dependabot-core/issues/1658.
33
+ send(:eval_gemfile, 'Gemfile-local') if File.exist? 'Gemfile-local'
data/LICENSE ADDED
@@ -0,0 +1,26 @@
1
+ Copyright (c) 2016 Stembolt
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without modification,
5
+ are permitted provided that the following conditions are met:
6
+
7
+ * Redistributions of source code must retain the above copyright notice,
8
+ this list of conditions and the following disclaimer.
9
+ * Redistributions in binary form must reproduce the above copyright notice,
10
+ this list of conditions and the following disclaimer in the documentation
11
+ and/or other materials provided with the distribution.
12
+ * Neither the name Solidus nor the names of its contributors may be used to
13
+ endorse or promote products derived from this software without specific
14
+ prior written permission.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
20
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
23
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
24
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.