effective_orders 5.2.0 → 5.2.1

Sign up to get free protection for your applications and to get access to all the features.
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