Module: SolidusSubscriptions::SubscriptionGenerator
- Extended by:
- SubscriptionGenerator
- Included in:
- SubscriptionGenerator
- Defined in:
- app/models/solidus_subscriptions/subscription_generator.rb
Defined Under Namespace
Classes: SubscriptionConfiguration
Instance Method Summary collapse
-
#activate(subscription_line_items) ⇒ SolidusSubscriptions::Subscription
Create and persist a subscription for a collection of subscription line items.
-
#group(subscription_line_items) ⇒ Array<Array<SolidusSubscriptions::LineItem>>
Group a collection of line items by common subscription configuration options.
Instance Method Details
#activate(subscription_line_items) ⇒ SolidusSubscriptions::Subscription
Create and persist a subscription for a collection of subscription
line items
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'app/models/solidus_subscriptions/subscription_generator.rb', line 16 def activate(subscription_line_items) return if subscription_line_items.empty? order = subscription_line_items.first.order configuration = subscription_configuration(subscription_line_items.first) subscription_attributes = { user: order.user, line_items: subscription_line_items, store: order.store, shipping_address: order.ship_address, **configuration.to_h } Subscription.create!(subscription_attributes) do |sub| sub.actionable_date = sub.next_actionable_date end end |
#group(subscription_line_items) ⇒ Array<Array<SolidusSubscriptions::LineItem>>
Group a collection of line items by common subscription configuration options. Grouped subscription_line_items can belong to a single subscription.
43 44 45 46 47 48 |
# File 'app/models/solidus_subscriptions/subscription_generator.rb', line 43 def group(subscription_line_items) subscription_line_items.group_by do |li| subscription_configuration(li) end. values end |