has_safe_dates 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/has_safe_dates/core_ext.rb +14 -7
- data/lib/has_safe_dates/version.rb +1 -1
- metadata +3 -3
@@ -8,27 +8,30 @@ module HasSafeDates
|
|
8
8
|
module ClassMethods
|
9
9
|
|
10
10
|
def has_safe_fields_config
|
11
|
-
|
11
|
+
@@has_safe_fields_config ||= {}
|
12
12
|
end
|
13
13
|
|
14
14
|
def has_safe_dates(*args)
|
15
15
|
options = args.extract_options!
|
16
|
+
has_safe_fields_config[self] = options
|
16
17
|
|
17
18
|
if options[:error_message].present?
|
18
|
-
has_safe_fields_config[:error_message] = options[:error_message]
|
19
|
+
has_safe_fields_config[self][:error_message] = options[:error_message]
|
19
20
|
else
|
20
|
-
has_safe_fields_config[:error_message] = I18n.translate('activerecord.errors.messages')[:invalid] || 'is invalid'
|
21
|
+
has_safe_fields_config[self][:error_message] = I18n.translate('activerecord.errors.messages')[:invalid] || 'is invalid'
|
21
22
|
end
|
22
23
|
|
23
24
|
if args.blank?
|
24
25
|
raise ArgumentError, 'Must define the fields you want to be converted to safe dates with "has_safe_dates :my_field_name_date, :my_other_field_name_date"'
|
25
26
|
end
|
26
|
-
has_safe_fields_config[:fields] = args.map(&:to_s)
|
27
|
-
has_safe_fields_config[:fields].each do |field|
|
27
|
+
has_safe_fields_config[self][:fields] = args.map(&:to_s)
|
28
|
+
has_safe_fields_config[self][:fields].each do |field|
|
28
29
|
define_method "#{field.to_s}=" do |value|
|
29
30
|
if value.present?
|
30
31
|
value = Chronic.parse(value.to_s)
|
31
|
-
|
32
|
+
unless value.present?
|
33
|
+
self.errors.add(field, self.class.has_safe_fields_config[self.class][:error_message])
|
34
|
+
end
|
32
35
|
end
|
33
36
|
super value
|
34
37
|
end
|
@@ -37,7 +40,11 @@ module HasSafeDates
|
|
37
40
|
end
|
38
41
|
|
39
42
|
def read_value_from_parameter(name, values_hash_from_param)
|
40
|
-
if self.class.has_safe_fields_config[
|
43
|
+
if self.class.has_safe_fields_config[self.class]
|
44
|
+
fields = self.class.has_safe_fields_config[self.class][:fields]
|
45
|
+
end
|
46
|
+
|
47
|
+
if fields.present? && fields.include?(name.to_s)
|
41
48
|
|
42
49
|
max_position = extract_max_param_for_multiparameter_attributes(values_hash_from_param, 6)
|
43
50
|
return nil if (1..3).any? {|position| values_hash_from_param[position].blank?}
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: has_safe_dates
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 3
|
10
|
+
version: 0.0.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- kylejginavan
|