effective_resources 1.18.7 → 1.18.10

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: 1a34b28416f60d9a3077ffbc6a8e3faa4b4b9899abc612b1189dacdd8073d813
4
- data.tar.gz: 6b2034d5550c9a47311dd9523e42794b656f24063c382c02663c33c2df9ca7d6
3
+ metadata.gz: c513100225a155db0f3922dbfcecfda7dc40b94b98746273053f35c2bf6c5d0b
4
+ data.tar.gz: 3669286a34fe2c0304d1a10a74e446279a7600f88766687e9e7cdbd06cbdc8f9
5
5
  SHA512:
6
- metadata.gz: 5e3b681f41a9bd6a2193a7e92804b42949191b1e3df780d2006be2d195a78df43f127dbc24f4348062f16cbf43a3a71cd0b901f44aa22fba437b71134fad1832
7
- data.tar.gz: 32d784ef5f929bbd3e0c00411532d23a606405fa4bbc568f05845a02b850e14bc818ce7cff12c7ef4e0a994cb2b5f5f7e4779a9a881cccfedbe8a37a9c2e1f17
6
+ metadata.gz: f10ad3eafe4170593b01a684f8c68dfdbffa8748fbc61ef60892385b2d4d8e12eddb1d1b3855c6bc99afa56f33631a1e238b6485e7b5daa7f8a7678d0f457514
7
+ data.tar.gz: 37f1b0a1c9d54da6783641729225f18815d60aa7d78e1ea07d86897e855a8b527317763a62c6bc36f393f2ea8eaf62837d432d217c8076c2d90d3c7ce8f4c0ee
@@ -9,8 +9,8 @@ module EffectiveActsAsEmailFormHelper
9
9
  raise('expected an acts_as_email_form resource') unless resource.class.respond_to?(:acts_as_email_form?)
10
10
 
11
11
  # Load the template.
12
- email_template = if action.present? && resource.email_form_effective_email_templates?
13
- Effective::EmailTemplate.where(template_name: action).first!
12
+ email_template = if action.present? && defined?(EffectiveEmailTemplates)
13
+ action.kind_of?(Effective::EmailTemplate) ? action : Effective::EmailTemplate.where(template_name: action).first!
14
14
  end
15
15
 
16
16
  # These defaults are only used when there is no email_template
@@ -124,8 +124,32 @@ module Effective
124
124
  value.presence
125
125
  when :price # Integer * 100. Number of cents.
126
126
  value.kind_of?(Integer) ? value : (value.to_s.gsub(/[^0-9|\-|\.]/, '').to_f * 100.0).round
127
- when :string, :email
127
+ when :string
128
128
  value.to_s
129
+ when :email
130
+ return nil unless value.kind_of?(String)
131
+
132
+ if value.include?('<') && value.include?('>')
133
+ value = value.match(/<(.+)>/)[1].to_s # John Smith <john.smith@hotmail.com>
134
+ end
135
+
136
+ if value.include?(',')
137
+ value = value.split(',').find { |str| str.include?('@') }.to_s
138
+ end
139
+
140
+ if value.include?(' ')
141
+ value = value.split(' ').find { |str| str.include?('@') }.to_s
142
+ end
143
+
144
+ value = value.to_s.downcase.strip
145
+
146
+ return nil unless value.include?('@') && value.include?('.')
147
+
148
+ if defined?(Devise)
149
+ return nil unless Devise::email_regexp.match?(value)
150
+ end
151
+
152
+ value
129
153
  when :belongs_to_polymorphic
130
154
  value.to_s
131
155
  when :belongs_to, :has_many, :has_and_belongs_to_many, :has_one, :resource, :effective_addresses # Returns an Array of ints, an Int or String
@@ -64,7 +64,7 @@ module Effective
64
64
  :effective_obfuscation
65
65
  elsif name == 'roles' && defined?(EffectiveRoles) && klass.respond_to?(:with_role)
66
66
  :effective_roles
67
- elsif (name.include?('_address') || name.include?('_addresses')) && defined?(EffectiveAddresses) && (klass.new rescue nil).respond_to?(:effective_addresses)
67
+ elsif (name.ends_with?('_address') || name.ends_with?('_addresses')) && defined?(EffectiveAddresses) && (klass.new rescue nil).respond_to?(name)
68
68
  :effective_addresses
69
69
  elsif name.ends_with?('_id')
70
70
  :integer
@@ -1,3 +1,3 @@
1
1
  module EffectiveResources
2
- VERSION = '1.18.7'.freeze
2
+ VERSION = '1.18.10'.freeze
3
3
  end
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.18.7
4
+ version: 1.18.10
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-08-04 00:00:00.000000000 Z
11
+ date: 2022-09-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails