effective_orders 5.2.0 → 5.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 79d6c5b375a23ec257f7b5d357ee38bd63ccc050b9909bff1b8b125e8b7115d5
4
- data.tar.gz: bdca1e23836d7fde14bf5de938ce4803327f0396310061188217384605544e76
3
+ metadata.gz: 7b2e8598ea6f759b602e70d61c5942080c2e528fc8c123b93e3396cbc2a8a26a
4
+ data.tar.gz: 004e0db3016e081294d9c6fe49a02eb800a13f49f7917f0d83c445e5a615ebdc
5
5
  SHA512:
6
- metadata.gz: '09bf234893689bd3f569f8d9eb8ba2b627b82eaf1370edbc7b130b23df40d2f588394fb5da52a3dd9e8c0ce8a671e5cc66c2ec074ff6c06672a4c931563092c5'
7
- data.tar.gz: f6e1a19c93b81d872c7e6992833f02a59012778a5a7ba4f8510ffbd69e9df7b5c8669c1bec2aba48e39817a1623d2cf1c6aae6c718a02816ec7c226ced406c6e
6
+ metadata.gz: 071a7b38a0c5817e3165ac17b2193288e435b0e92c3a54163bfa7997c7132f9f5c02329421198ad51e9078dc351e77a5984aafa96a2f51bef518913886bf0870
7
+ data.tar.gz: d2825cd0a8f2c66c6975bcdaf926ab9ac35081383547ad41965813d26a4d2ea059426340a1bba723f22f1ada37c19d2e16a0d34c23423189981fb8611ffdbbbd
@@ -0,0 +1,34 @@
1
+ # Mostly for the callbacks
2
+
3
+ module ActsAsPurchasableParent
4
+ extend ActiveSupport::Concern
5
+
6
+ module Base
7
+ def acts_as_purchasable_parent(*options)
8
+ @acts_as_purchasable_parent = options || []
9
+ include ::ActsAsPurchasableParent
10
+ end
11
+ end
12
+
13
+ module ClassMethods
14
+ def acts_as_purchasable_parent?; true; end
15
+
16
+ def before_purchase(&block)
17
+ send :define_method, :before_purchase do |order| self.instance_exec(order, &block) end
18
+ end
19
+
20
+ def after_purchase(&block)
21
+ send :define_method, :after_purchase do |order| self.instance_exec(order, &block) end
22
+ end
23
+
24
+ def after_decline(&block)
25
+ send :define_method, :after_decline do |order| self.instance_exec(order, &block) end
26
+ end
27
+ end
28
+
29
+ included do
30
+ has_many :orders, -> { order(:id) }, as: :parent, class_name: 'Effective::Order', dependent: :nullify
31
+ accepts_nested_attributes_for :orders
32
+ end
33
+
34
+ end
@@ -638,6 +638,7 @@ module Effective
638
638
 
639
639
  def run_purchasable_callbacks(name)
640
640
  order_items.each { |oi| oi.purchasable.public_send(name, self, oi) if oi.purchasable.respond_to?(name) }
641
+ parent.public_send(name, self) if parent.respond_to?(name)
641
642
  end
642
643
 
643
644
  def send_email(email, *args)
@@ -6,6 +6,7 @@ module EffectiveOrders
6
6
  initializer 'effective_orders.active_record' do |app|
7
7
  ActiveSupport.on_load :active_record do
8
8
  ActiveRecord::Base.extend(ActsAsPurchasable::Base)
9
+ ActiveRecord::Base.extend(ActsAsPurchasableParent::Base)
9
10
  ActiveRecord::Base.extend(ActsAsSubscribable::Base)
10
11
  ActiveRecord::Base.extend(ActsAsSubscribableBuyer::Base)
11
12
  end
@@ -1,3 +1,3 @@
1
1
  module EffectiveOrders
2
- VERSION = '5.2.0'.freeze
2
+ VERSION = '5.2.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_orders
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.0
4
+ version: 5.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-27 00:00:00.000000000 Z
11
+ date: 2021-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -215,6 +215,7 @@ files:
215
215
  - app/helpers/effective_subscriptions_helper.rb
216
216
  - app/mailers/effective/orders_mailer.rb
217
217
  - app/models/concerns/acts_as_purchasable.rb
218
+ - app/models/concerns/acts_as_purchasable_parent.rb
218
219
  - app/models/concerns/acts_as_subscribable.rb
219
220
  - app/models/concerns/acts_as_subscribable_buyer.rb
220
221
  - app/models/effective/cart.rb