solidus_subscriptions-alpha 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +26 -26
  3. data/README.md +130 -130
  4. data/Rakefile +28 -28
  5. data/app/assets/javascripts/spree/backend/solidus_subscriptions.js +1 -1
  6. data/app/assets/javascripts/spree/frontend/solidus_subscriptions.js +1 -1
  7. data/app/assets/stylesheets/spree/backend/solidus_subscriptions.css +4 -4
  8. data/app/assets/stylesheets/spree/frontend/solidus_subscriptions.css +4 -4
  9. data/app/controllers/solidus_subscriptions/api/v1/line_items_controller.rb +35 -35
  10. data/app/controllers/solidus_subscriptions/api/v1/subscriptions_controller.rb +44 -44
  11. data/app/controllers/spree/admin/subscriptions_controller.rb +66 -66
  12. data/app/decorators/spree/controllers/api/line_items/create_subscription_line_items.rb +28 -28
  13. data/app/decorators/spree/controllers/orders/create_subscription_line_items.rb +33 -33
  14. data/app/decorators/spree/line_items/subscription_line_items_association.rb +22 -22
  15. data/app/decorators/spree/orders/after_create.rb +15 -15
  16. data/app/decorators/spree/orders/finalize_creates_subscriptions.rb +19 -19
  17. data/app/decorators/spree/orders/subscription_line_items_association.rb +15 -15
  18. data/app/decorators/spree/products/subscribable_decorator.rb +11 -11
  19. data/app/decorators/spree/users/have_many_subscriptions.rb +18 -18
  20. data/app/decorators/spree/variant_pretty_name.rb +13 -13
  21. data/app/jobs/solidus_subscriptions/process_installments_job.rb +22 -22
  22. data/app/models/solidus_subscriptions/checkout.rb +141 -141
  23. data/app/models/solidus_subscriptions/dispatcher.rb +32 -32
  24. data/app/models/solidus_subscriptions/failure_dispatcher.rb +19 -19
  25. data/app/models/solidus_subscriptions/installment.rb +126 -126
  26. data/app/models/solidus_subscriptions/installment_detail.rb +23 -23
  27. data/app/models/solidus_subscriptions/interval.rb +24 -24
  28. data/app/models/solidus_subscriptions/line_item.rb +98 -98
  29. data/app/models/solidus_subscriptions/line_item_builder.rb +44 -44
  30. data/app/models/solidus_subscriptions/order_builder.rb +40 -40
  31. data/app/models/solidus_subscriptions/out_of_stock_dispatcher.rb +19 -19
  32. data/app/models/solidus_subscriptions/payment_failed_dispatcher.rb +23 -23
  33. data/app/models/solidus_subscriptions/subscription.rb +217 -217
  34. data/app/models/solidus_subscriptions/subscription_generator.rb +60 -60
  35. data/app/models/solidus_subscriptions/subscription_line_item_builder.rb +21 -21
  36. data/app/models/solidus_subscriptions/subscription_order_promotion_rule.rb +25 -25
  37. data/app/models/solidus_subscriptions/subscription_promotion_rule.rb +38 -38
  38. data/app/models/solidus_subscriptions/success_dispatcher.rb +16 -16
  39. data/app/models/solidus_subscriptions/unsubscribable_error.rb +17 -17
  40. data/app/models/solidus_subscriptions/user_mismatch_error.rb +15 -15
  41. data/app/overrides/views/admin_subscribable_checkbox.rb +13 -13
  42. data/app/overrides/views/admin_subscriptions_menu_link.rb +8 -8
  43. data/app/overrides/views/subscription_line_item_fields.rb +6 -6
  44. data/app/views/spree/admin/products/_subscribable_checkbox.html.erb +8 -8
  45. data/app/views/spree/admin/promotions/rules/_subscription_order_promotion_rule.html.erb +0 -0
  46. data/app/views/spree/admin/promotions/rules/_subscription_promotion_rule.html.erb +0 -0
  47. data/app/views/spree/admin/shared/_no_objects_found.html.erb +4 -4
  48. data/app/views/spree/admin/shared/_subscription_tab.html.erb +3 -3
  49. data/app/views/spree/admin/solidus_subscriptions/subscriptions/_subscription.html.erb +66 -66
  50. data/app/views/spree/admin/subscriptions/_form.html.erb +81 -81
  51. data/app/views/spree/admin/subscriptions/_legacy_form.html.erb +81 -81
  52. data/app/views/spree/admin/subscriptions/_legacy_sidebar.html.erb +28 -28
  53. data/app/views/spree/admin/subscriptions/edit.html.erb +21 -21
  54. data/app/views/spree/admin/subscriptions/index.html.erb +119 -119
  55. data/app/views/spree/admin/subscriptions/new.html.erb +9 -9
  56. data/app/views/spree/admin/variants/_subscribable_checkbox.html.erb +6 -6
  57. data/app/views/spree/frontend/products/_subscription_line_item_fields.html.erb +30 -30
  58. data/config/locales/en.yml +91 -91
  59. data/config/routes.rb +25 -25
  60. data/db/migrate/20160825164850_create_solidus_subscriptions_subscriptions.rb +11 -11
  61. data/db/migrate/20160825173548_create_solidus_subscriptions_line_items.rb +17 -17
  62. data/db/migrate/20160825202248_create_solidus_subscriptions_installments.rb +23 -23
  63. data/db/migrate/20160825211202_create_solidus_subscriptions_installment_details.rb +22 -22
  64. data/db/migrate/20160825214240_add_subscribable_to_spree_variants.rb +5 -5
  65. data/db/migrate/20160829201653_change_subscription_line_items_installments_to_max_installments.rb +5 -5
  66. data/db/migrate/20160902220242_remove_state_from_solidus_susbscriptions_installment_details.rb +5 -5
  67. data/db/migrate/20160902220604_add_successful_to_solidus_subscriptions_installment_details.rb +5 -5
  68. data/db/migrate/20160902221218_add_message_to_solidus_subscriptions_installment_details.rb +5 -5
  69. data/db/migrate/20160922164101_add_interval_length_and_units_to_subscription_line_items.rb +8 -8
  70. data/db/migrate/20161006191003_add_skip_count_to_solidus_subscriptions_subscriptions.rb +5 -5
  71. data/db/migrate/20161006191127_add_successive_skip_count_to_solidus_subscriptions_subscriptions.rb +5 -5
  72. data/db/migrate/20161014212649_allow_spree_line_item_id_to_be_null.rb +5 -5
  73. data/db/migrate/20161017155749_add_order_id_to_solidus_subscriptions_installment_details.rb +6 -6
  74. data/db/migrate/20161017175509_remove_order_id_from_solidus_subscriptions_installments.rb +6 -6
  75. data/db/migrate/20161017201944_add_subscription_order_to_spree_orders.rb +5 -5
  76. data/db/migrate/20161221155142_add_store_to_solidus_subscriptions_subscriptions.rb +6 -6
  77. data/db/migrate/20161223152905_add_address_id_to_solidus_subscriptions_subscriptions.rb +7 -7
  78. data/db/migrate/20170106224713_change_line_item_max_installments_to_end_date.rb +6 -6
  79. data/db/migrate/20170111224458_change_subscription_actionable_date_to_datetime.rb +5 -5
  80. data/db/migrate/20170111232801_change_inteval_actionable_date_to_datetime.rb +5 -5
  81. data/db/migrate/20170112012407_add_config_options_to_subscriptions.rb +7 -7
  82. data/lib/generators/solidus_subscriptions/install/install_generator.rb +30 -30
  83. data/lib/solidus_subscriptions.rb +6 -6
  84. data/lib/solidus_subscriptions/ability.rb +19 -19
  85. data/lib/solidus_subscriptions/config.rb +97 -97
  86. data/lib/solidus_subscriptions/engine.rb +56 -56
  87. data/lib/solidus_subscriptions/permitted_attributes.rb +36 -36
  88. data/lib/solidus_subscriptions/processor.rb +108 -108
  89. data/lib/solidus_subscriptions/testing_support/factories.rb +5 -5
  90. data/lib/solidus_subscriptions/testing_support/factories/installment_detail_factory.rb +7 -7
  91. data/lib/solidus_subscriptions/testing_support/factories/installment_factory.rb +21 -21
  92. data/lib/solidus_subscriptions/testing_support/factories/line_item_factory.rb +18 -18
  93. data/lib/solidus_subscriptions/testing_support/factories/spree/line_item_factory.rb +17 -17
  94. data/lib/solidus_subscriptions/testing_support/factories/spree/order_factory.rb +18 -18
  95. data/lib/solidus_subscriptions/testing_support/factories/spree_modification_factory.rb +8 -8
  96. data/lib/solidus_subscriptions/testing_support/factories/subscription_factory.rb +43 -43
  97. data/lib/solidus_subscriptions/version.rb +3 -3
  98. data/lib/solidus_subscriptions/version.rb~ +3 -0
  99. data/lib/tasks/process_subscriptions.rake +6 -6
  100. metadata +4 -3
@@ -1,5 +1,5 @@
1
- require 'factory_girl'
2
- require 'spree/testing_support/factories'
3
-
4
- factory_path = "#{File.dirname(__FILE__)}/factories/**/*_factory.rb"
5
- Dir[factory_path].each { |f| require File.expand_path(f) }
1
+ require 'factory_girl'
2
+ require 'spree/testing_support/factories'
3
+
4
+ factory_path = "#{File.dirname(__FILE__)}/factories/**/*_factory.rb"
5
+ Dir[factory_path].each { |f| require File.expand_path(f) }
@@ -1,7 +1,7 @@
1
- FactoryGirl.define do
2
- factory :installment_detail, class: 'SolidusSubscriptions::InstallmentDetail' do
3
- installment
4
-
5
- trait(:success) { success true }
6
- end
7
- end
1
+ FactoryGirl.define do
2
+ factory :installment_detail, class: 'SolidusSubscriptions::InstallmentDetail' do
3
+ installment
4
+
5
+ trait(:success) { success true }
6
+ end
7
+ end
@@ -1,21 +1,21 @@
1
- FactoryGirl.define do
2
- factory :installment, class: 'SolidusSubscriptions::Installment' do
3
- transient { subscription_traits [] }
4
- subscription { build :subscription, :with_line_item, *subscription_traits }
5
-
6
- trait :failed do
7
- actionable_date { Time.zone.yesterday }
8
- details { build_list(:installment_detail, 1, installment: @instance) }
9
- end
10
-
11
- trait :success do
12
- transient do
13
- order { create :completed_order_with_totals }
14
- end
15
-
16
- details do
17
- build_list(:installment_detail, 1, :success, installment: @instance, order: order)
18
- end
19
- end
20
- end
21
- end
1
+ FactoryGirl.define do
2
+ factory :installment, class: 'SolidusSubscriptions::Installment' do
3
+ transient { subscription_traits [] }
4
+ subscription { build :subscription, :with_line_item, *subscription_traits }
5
+
6
+ trait :failed do
7
+ actionable_date { Time.zone.yesterday }
8
+ details { build_list(:installment_detail, 1, installment: @instance) }
9
+ end
10
+
11
+ trait :success do
12
+ transient do
13
+ order { create :completed_order_with_totals }
14
+ end
15
+
16
+ details do
17
+ build_list(:installment_detail, 1, :success, installment: @instance, order: order)
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,18 +1,18 @@
1
- FactoryGirl.define do
2
- factory :subscription_line_item, class: 'SolidusSubscriptions::LineItem' do
3
- subscribable_id { create(:variant, subscribable: true).id }
4
- quantity 1
5
- interval_length 1
6
- interval_units :month
7
-
8
- association :spree_line_item, factory: :line_item
9
-
10
- trait :with_subscription do
11
- transient do
12
- subscription_traits []
13
- end
14
-
15
- subscription { build :subscription, *subscription_traits }
16
- end
17
- end
18
- end
1
+ FactoryGirl.define do
2
+ factory :subscription_line_item, class: 'SolidusSubscriptions::LineItem' do
3
+ subscribable_id { create(:variant, subscribable: true).id }
4
+ quantity 1
5
+ interval_length 1
6
+ interval_units :month
7
+
8
+ association :spree_line_item, factory: :line_item
9
+
10
+ trait :with_subscription do
11
+ transient do
12
+ subscription_traits []
13
+ end
14
+
15
+ subscription { build :subscription, *subscription_traits }
16
+ end
17
+ end
18
+ end
@@ -1,17 +1,17 @@
1
- FactoryGirl.modify do
2
- factory :line_item do
3
- trait :with_subscription_line_items do
4
- transient do
5
- n_subscription_line_items 1
6
- end
7
-
8
- subscription_line_items do
9
- build_list(
10
- :subscription_line_item,
11
- n_subscription_line_items,
12
- spree_line_item: @instance
13
- )
14
- end
15
- end
16
- end
17
- end
1
+ FactoryGirl.modify do
2
+ factory :line_item do
3
+ trait :with_subscription_line_items do
4
+ transient do
5
+ n_subscription_line_items 1
6
+ end
7
+
8
+ subscription_line_items do
9
+ build_list(
10
+ :subscription_line_item,
11
+ n_subscription_line_items,
12
+ spree_line_item: @instance
13
+ )
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,18 +1,18 @@
1
- FactoryGirl.modify do
2
- factory :order do
3
- trait :with_subscription_line_items do
4
- transient do
5
- n_line_items 1
6
- end
7
-
8
- line_items do
9
- build_list(
10
- :line_item,
11
- n_line_items,
12
- :with_subscription_line_items,
13
- order: @instance
14
- )
15
- end
16
- end
17
- end
18
- end
1
+ FactoryGirl.modify do
2
+ factory :order do
3
+ trait :with_subscription_line_items do
4
+ transient do
5
+ n_line_items 1
6
+ end
7
+
8
+ line_items do
9
+ build_list(
10
+ :line_item,
11
+ n_line_items,
12
+ :with_subscription_line_items,
13
+ order: @instance
14
+ )
15
+ end
16
+ end
17
+ end
18
+ end
@@ -1,8 +1,8 @@
1
- FactoryGirl.modify do
2
- factory :user do
3
- trait :subscription_user do
4
- bill_address
5
- ship_address
6
- end
7
- end
8
- end
1
+ FactoryGirl.modify do
2
+ factory :user do
3
+ trait :subscription_user do
4
+ bill_address
5
+ ship_address
6
+ end
7
+ end
8
+ end
@@ -1,43 +1,43 @@
1
- FactoryGirl.define do
2
- factory :subscription, class: 'SolidusSubscriptions::Subscription' do
3
- store
4
- interval_length 1
5
- interval_units :month
6
-
7
- user do
8
- create(:user, :subscription_user).tap do |user|
9
- create(:credit_card, gateway_customer_profile_id: 'BGS-123', user: user, default: true)
10
- end
11
- end
12
-
13
- trait :with_line_item do
14
- transient do
15
- line_item_traits []
16
- end
17
-
18
- line_items { build_list :subscription_line_item, 1, *line_item_traits }
19
- end
20
-
21
- trait :with_address do
22
- association :shipping_address, factory: :address
23
- end
24
-
25
- trait :actionable do
26
- with_line_item
27
- actionable_date { Time.zone.now.yesterday.beginning_of_minute }
28
- end
29
-
30
- trait :not_actionable do
31
- with_line_item
32
- actionable_date { Time.zone.now.tomorrow.beginning_of_minute }
33
- end
34
-
35
- trait(:pending_cancellation) do
36
- actionable
37
- state { 'pending_cancellation' }
38
- end
39
-
40
- trait(:canceled) { state 'canceled' }
41
- trait(:inactive) { state 'inactive' }
42
- end
43
- end
1
+ FactoryGirl.define do
2
+ factory :subscription, class: 'SolidusSubscriptions::Subscription' do
3
+ store
4
+ interval_length 1
5
+ interval_units :month
6
+
7
+ user do
8
+ create(:user, :subscription_user).tap do |user|
9
+ create(:credit_card, gateway_customer_profile_id: 'BGS-123', user: user, default: true)
10
+ end
11
+ end
12
+
13
+ trait :with_line_item do
14
+ transient do
15
+ line_item_traits []
16
+ end
17
+
18
+ line_items { build_list :subscription_line_item, 1, *line_item_traits }
19
+ end
20
+
21
+ trait :with_address do
22
+ association :shipping_address, factory: :address
23
+ end
24
+
25
+ trait :actionable do
26
+ with_line_item
27
+ actionable_date { Time.zone.now.yesterday.beginning_of_minute }
28
+ end
29
+
30
+ trait :not_actionable do
31
+ with_line_item
32
+ actionable_date { Time.zone.now.tomorrow.beginning_of_minute }
33
+ end
34
+
35
+ trait(:pending_cancellation) do
36
+ actionable
37
+ state { 'pending_cancellation' }
38
+ end
39
+
40
+ trait(:canceled) { state 'canceled' }
41
+ trait(:inactive) { state 'inactive' }
42
+ end
43
+ end
@@ -1,3 +1,3 @@
1
- module SolidusSubscriptions
2
- VERSION = '0.0.4'
3
- end
1
+ module SolidusSubscriptions
2
+ VERSION = '0.0.5'
3
+ end
@@ -0,0 +1,3 @@
1
+ module SolidusSubscriptions
2
+ VERSION = '0.0.4'
3
+ end
@@ -1,6 +1,6 @@
1
- namespace :solidus_subscriptions do
2
- desc 'Create orders for actionable subscriptions'
3
- task process: :environment do
4
- SolidusSubscriptions::Processor.run
5
- end
6
- end
1
+ namespace :solidus_subscriptions do
2
+ desc 'Create orders for actionable subscriptions'
3
+ task process: :environment do
4
+ SolidusSubscriptions::Processor.run
5
+ end
6
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_subscriptions-alpha
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brendan Deere
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-08 00:00:00.000000000 Z
11
+ date: 2018-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: solidus
@@ -434,6 +434,7 @@ files:
434
434
  - lib/solidus_subscriptions/testing_support/factories/spree_modification_factory.rb
435
435
  - lib/solidus_subscriptions/testing_support/factories/subscription_factory.rb
436
436
  - lib/solidus_subscriptions/version.rb
437
+ - lib/solidus_subscriptions/version.rb~
437
438
  - lib/tasks/process_subscriptions.rake
438
439
  homepage: https://github.com/joeljackson/solidus_subscriptions
439
440
  licenses:
@@ -455,7 +456,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
455
456
  version: '0'
456
457
  requirements: []
457
458
  rubyforge_project:
458
- rubygems_version: 2.6.13
459
+ rubygems_version: 2.5.2
459
460
  signing_key:
460
461
  specification_version: 4
461
462
  summary: Add subscription support to Solidus