effective_resources 1.12.2 → 1.13.0

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: 708a6f264932790398c9a14aac69e4755d828a85510724358b3b007b18cf2acc
4
- data.tar.gz: 6b1617fd635ca5c208b211e4c87b86a2445e0f644b493a66f95e46de615dd8b0
3
+ metadata.gz: 47223bd598879ab72aa61596d1179ba80bb92b9978e97bfca8d72a55708ebeb4
4
+ data.tar.gz: 1ffe0c08d538e01f6423acc9bcfd6f2b0a5967c9258e8474e7ee85a6c6fc9b2f
5
5
  SHA512:
6
- metadata.gz: b84ed8b1ebdac3e4a342c1447be127ad5d3a68b3afcdfe01d7e8c2e5e6d54f829ba1a0908a8a783c20f43d817ca0c9abceb77c88448d731451953e7812f7031a
7
- data.tar.gz: 8c7a42aa944f20c7a0eab0f2a9c46f37963b794e5afee932f590211a866e633a1e6349b54c3ba5ec1f61aff2b33ac7ab392dba81b69c246b3a30918b9b9d9b3a
6
+ metadata.gz: 99fa630b70a1d1b4952bb9ae0ef1a277d2a958d9f693fa023dd2c1c47c5eb1a1ab10056e276de8985c1b2327fb2493479699fff5b004a5d710ff1c794e0fc3fd
7
+ data.tar.gz: 2a131e320fa7af2df8de848a3a9878858b96cf86993c34682f14efe7bac7d9b2bbc1824a0a7e395c07b29c77e5474fc1c0190f4092828968c7e7e98f957a6ddf
@@ -24,10 +24,13 @@ module Effective
24
24
  def update
25
25
  Rails.logger.info 'Processed by Effective::WizardController#update'
26
26
 
27
+ action = (commit_action[:action] == :save ? :update : commit_action[:action])
28
+ EffectiveResources.authorize!(self, action, resource)
29
+
27
30
  resource.assign_attributes(send(resource_params_method_name))
28
31
  assign_current_step
29
32
 
30
- save_wizard_resource(resource)
33
+ save_wizard_resource(resource, action)
31
34
  end
32
35
 
33
36
  end
@@ -4,12 +4,17 @@ module Effective
4
4
 
5
5
  def save_wizard_resource(resource, action = nil, options = {})
6
6
  was_new_record = resource.new_record?
7
- action ||= resource.respond_to?("#{step}!") ? step : :save
7
+
8
+ if action.blank? || action == :update
9
+ action = resource.respond_to?("#{step}!") ? step : :save
10
+ end
8
11
 
9
12
  if save_resource(resource, action)
10
13
  flash[:success] ||= options.delete(:success) || resource_flash(:success, resource, action)
11
14
 
12
15
  @skip_to ||= skip_to_step(resource)
16
+
17
+ @redirect_to ||= resource_redirect_path(resource, action) if specific_redirect_path?(action)
13
18
  @redirect_to ||= resource_wizard_path(resource, @skip_to) if was_new_record
14
19
 
15
20
  if @redirect_to
@@ -62,7 +62,7 @@ module ActsAsPurchasableWizard
62
62
  end
63
63
 
64
64
  # From Billing Step
65
- order.billing_address = owner.billing_address if owner.billing_address.present?
65
+ order.billing_address = owner.billing_address if owner.try(:billing_address).present?
66
66
 
67
67
  # Important to add/remove anything
68
68
  order.save!
@@ -141,6 +141,10 @@ module ActsAsWizard
141
141
  module ClassMethods
142
142
  def acts_as_wizard?; true; end
143
143
 
144
+ def wizard_steps_hash
145
+ const_get(:WIZARD_STEPS)
146
+ end
147
+
144
148
  def all_wizard_steps
145
149
  const_get(:WIZARD_STEPS).keys
146
150
  end
@@ -30,7 +30,7 @@ EffectiveResources.setup do |config|
30
30
  # Supported values: 'Save', 'Continue', and 'Add New'
31
31
  config.default_submits = ['Save', 'Continue', 'Add New']
32
32
 
33
- # Email Settings
33
+ # Mailer Settings
34
34
  #
35
35
  # The default mailer settings for all effective gems
36
36
  #
@@ -39,13 +39,33 @@ module EffectiveGem
39
39
  true
40
40
  end
41
41
 
42
- # This is included into every gem
43
- # The gem may not have a mailer or use effective email templates
42
+ # Mailer Settings
43
+ # These methods are intended to flow through to the default EffectiveResources settings
44
+ def parent_mailer_class
45
+ config[:parent_mailer].presence&.constantize || EffectiveResources.parent_mailer_class
46
+ end
47
+
48
+ def deliver_method
49
+ config[:deliver_method].presence || EffectiveResources.deliver_method
50
+ end
51
+
52
+ def mailer_layout
53
+ config[:mailer_layout].presence || EffectiveResources.mailer_layout
54
+ end
55
+
56
+ def mailer_sender
57
+ config[:mailer_sender].presence || EffectiveResources.mailer_sender
58
+ end
59
+
60
+ def mailer_admin
61
+ config[:mailer_admin].presence || EffectiveResources.mailer_admin
62
+ end
63
+
44
64
  def send_email(email, *args)
45
65
  raise('gem does not respond to mailer_class') unless respond_to?(:mailer_class)
46
66
  raise('expected args to be an Array') unless args.kind_of?(Array)
47
67
 
48
- mailer_class.send(email, *args).send(EffectiveResources.deliver_method)
68
+ mailer_class.send(email, *args).send(deliver_method)
49
69
  end
50
70
 
51
71
  end
@@ -1,3 +1,3 @@
1
1
  module EffectiveResources
2
- VERSION = '1.12.2'.freeze
2
+ VERSION = '1.13.0'.freeze
3
3
  end
@@ -34,7 +34,9 @@ module EffectiveResources
34
34
  (['Save', 'Continue', 'Add New'] & Array(config.default_submits)).inject({}) { |h, v| h[v] = true; h }
35
35
  end
36
36
 
37
- # Email
37
+ # Mailer Settings
38
+ # These serve as the default mailer settings for all effective_* gems
39
+ # They can be overriden on a per-gem basis.
38
40
  def self.deliver_method
39
41
  return config[:deliver_method] if config[:deliver_method].present?
40
42
 
@@ -109,7 +111,6 @@ module EffectiveResources
109
111
  end
110
112
  end
111
113
 
112
-
113
114
  def self.advance_date(date, business_days: 1, holidays: [:ca, :observed])
114
115
  raise('business_days must be an integer <= 365') unless business_days.kind_of?(Integer) && business_days <= 365
115
116
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.12.2
4
+ version: 1.13.0
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: 2022-02-03 00:00:00.000000000 Z
11
+ date: 2022-03-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails