lib/solidus_subscriptions/config.rb in solidus_subscriptions-alpha-0.0.3 vs lib/solidus_subscriptions/config.rb in solidus_subscriptions-alpha-0.0.4
- old
+ new
@@ -1,97 +1,97 @@
-module SolidusSubscriptions
- module Config
- class << self
- # Processing Event handlers
- # These handlers are pluggable, however it is highly encouraged that you
- # subclass from the the dispatcher you are replacing, and call super
- # from within the #dispatch method (if you override it)
- #
- # This handler is called when a susbcription order is successfully placed.
- attr_writer :success_dispatcher_class
- def success_dispatcher_class
- @success_dispatcher_class ||= ::SolidusSubscriptions::SuccessDispatcher
- end
-
- # This handler is called when an order cant be placed for a group of
- # installments
- attr_writer :failure_dispatcher_class
- def failure_dispatcher_class
- @failure_dispatcher_class ||= ::SolidusSubscriptions::FailureDispatcher
- end
-
- # This handler is called when a payment fails on a subscription order
- attr_writer :payment_failed_dispatcher_class
- def payment_failed_dispatcher_class
- @payment_failed_dispatcher_class ||= ::SolidusSubscriptions::PaymentFailedDispatcher
- end
-
- # This handler is called when installemnts cannot be fulfilled due to lack
- # of stock
- attr_writer :out_of_stock_dispatcher
- def out_of_stock_dispatcher_class
- @out_of_stock_dispatcher_class ||= ::SolidusSubscriptions::OutOfStockDispatcher
- end
-
- def default_gateway(&block)
- return @gateway.call unless block_given?
- @gateway = block
- end
- end
-
- # Maximum number of times a user can skip their subscription before it
- # must be processed
- mattr_accessor(:maximum_successive_skips) { 1 }
-
- # Limit on the number of times a user can skip thier subscription. Once
- # this limit is reached, no skips are permitted
- mattr_accessor(:maximum_total_skips) { nil }
-
- # Time between an installment failing to be processed and the system
- # retrying to fulfil it
- mattr_accessor(:reprocessing_interval) { 1.day }
-
- mattr_accessor(:minimum_cancellation_notice) { 1.day }
-
- # Which queue is responsible for processing subscriptions
- mattr_accessor(:processing_queue) { :default }
-
- # SolidusSubscriptions::LineItem attributes which are allowed to
- # be updated from user data
- #
- # This is useful in the case where certain fields should not be allowed to
- # be modified by the user. This locks these attributes from being passed
- # in to the orders controller (or the api controller).
-
- # Ie. if a store does not want to allow users to configure the end date of
- # a subscription. Add this to an initializer:
-
- # ```
- # SolidusSubscriptions::Config.subscription_line_item_attributes = [
- # :quantity,
- # :interval_length,
- # :interval_units,
- # :subscribable_id
- # ]
- # ```
- # This configuration also easily allows the gem to be customized to track
- # more information on the subcriptions line items.
- mattr_accessor(:subscription_line_item_attributes) do
- [
- :quantity,
- :subscribable_id,
- :interval_length,
- :interval_units,
- :end_date
- ]
- end
-
- # SolidusSubscriptions::Subscription attributes which are allowed to
- # be updated from user data
- mattr_accessor(:subscription_attributes) do
- [
- :actionable_date,
- shipping_address_attributes: Spree::PermittedAttributes.address_attributes
- ]
- end
- end
-end
+module SolidusSubscriptions
+ module Config
+ class << self
+ # Processing Event handlers
+ # These handlers are pluggable, however it is highly encouraged that you
+ # subclass from the the dispatcher you are replacing, and call super
+ # from within the #dispatch method (if you override it)
+ #
+ # This handler is called when a susbcription order is successfully placed.
+ attr_writer :success_dispatcher_class
+ def success_dispatcher_class
+ @success_dispatcher_class ||= ::SolidusSubscriptions::SuccessDispatcher
+ end
+
+ # This handler is called when an order cant be placed for a group of
+ # installments
+ attr_writer :failure_dispatcher_class
+ def failure_dispatcher_class
+ @failure_dispatcher_class ||= ::SolidusSubscriptions::FailureDispatcher
+ end
+
+ # This handler is called when a payment fails on a subscription order
+ attr_writer :payment_failed_dispatcher_class
+ def payment_failed_dispatcher_class
+ @payment_failed_dispatcher_class ||= ::SolidusSubscriptions::PaymentFailedDispatcher
+ end
+
+ # This handler is called when installemnts cannot be fulfilled due to lack
+ # of stock
+ attr_writer :out_of_stock_dispatcher
+ def out_of_stock_dispatcher_class
+ @out_of_stock_dispatcher_class ||= ::SolidusSubscriptions::OutOfStockDispatcher
+ end
+
+ def default_gateway(&block)
+ return @gateway.call unless block_given?
+ @gateway = block
+ end
+ end
+
+ # Maximum number of times a user can skip their subscription before it
+ # must be processed
+ mattr_accessor(:maximum_successive_skips) { 1 }
+
+ # Limit on the number of times a user can skip thier subscription. Once
+ # this limit is reached, no skips are permitted
+ mattr_accessor(:maximum_total_skips) { nil }
+
+ # Time between an installment failing to be processed and the system
+ # retrying to fulfil it
+ mattr_accessor(:reprocessing_interval) { 1.day }
+
+ mattr_accessor(:minimum_cancellation_notice) { 1.day }
+
+ # Which queue is responsible for processing subscriptions
+ mattr_accessor(:processing_queue) { :default }
+
+ # SolidusSubscriptions::LineItem attributes which are allowed to
+ # be updated from user data
+ #
+ # This is useful in the case where certain fields should not be allowed to
+ # be modified by the user. This locks these attributes from being passed
+ # in to the orders controller (or the api controller).
+
+ # Ie. if a store does not want to allow users to configure the end date of
+ # a subscription. Add this to an initializer:
+
+ # ```
+ # SolidusSubscriptions::Config.subscription_line_item_attributes = [
+ # :quantity,
+ # :interval_length,
+ # :interval_units,
+ # :subscribable_id
+ # ]
+ # ```
+ # This configuration also easily allows the gem to be customized to track
+ # more information on the subcriptions line items.
+ mattr_accessor(:subscription_line_item_attributes) do
+ [
+ :quantity,
+ :subscribable_id,
+ :interval_length,
+ :interval_units,
+ :end_date
+ ]
+ end
+
+ # SolidusSubscriptions::Subscription attributes which are allowed to
+ # be updated from user data
+ mattr_accessor(:subscription_attributes) do
+ [
+ :actionable_date,
+ shipping_address_attributes: Spree::PermittedAttributes.address_attributes
+ ]
+ end
+ end
+end