has_calculated_fields 1.0.1 → 1.0.2
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 +4 -4
- data/has_calculated_fields.gemspec +1 -1
- data/lib/has_calculated_fields/has_calculated_fields.rb +38 -13
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c0f76b0b8b2d025e7dac0908d2986e4eeb77cde4421b572a6e735eabed7b08a4
|
4
|
+
data.tar.gz: 6639a016d0a9e871b82b2d0f140d189fc820fa519723a02bf070a7fc99a6ac99
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c430974e45c44f9ad3c7cf12e247ceaaed1b975dbfbda2be55d55f2f4e1f2ac967c447eeb41e5480fbe71a8ed1998aee530f5fa8d54a36ee7e157625cd3b9da9
|
7
|
+
data.tar.gz: 0aec19691173cc3954420b35c96cb54346d9412f9510968eced6af04cd849408bdd739221ced3e509da38397b5aa91b5f24bb3ef2258df3aa546aeaaef432b7d
|
@@ -5,7 +5,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "has_calculated_fields"
|
8
|
-
s.version = "1.0.
|
8
|
+
s.version = "1.0.2"
|
9
9
|
s.platform = Gem::Platform::RUBY
|
10
10
|
s.author = ["Adrian Fernandez"]
|
11
11
|
s.email = ["adrianfernandez85@gmail.com"]
|
@@ -24,6 +24,7 @@ module HasCalculatedFields
|
|
24
24
|
|
25
25
|
included do
|
26
26
|
before_save :_has_calculated_fields__on_before_save
|
27
|
+
before_save :_has_calculated_fields__on_after_save
|
27
28
|
end
|
28
29
|
|
29
30
|
def _has_calculated_fields__on_before_save
|
@@ -31,21 +32,45 @@ module HasCalculatedFields
|
|
31
32
|
return unless has_calculated_fields_options.has_key?(:on_before_save)
|
32
33
|
|
33
34
|
has_calculated_fields_options[:on_before_save].each do |data|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
35
|
+
_process_data(data)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def _has_calculated_fields__on_after_save
|
40
|
+
return unless respond_to?(:has_calculated_fields_options)
|
41
|
+
return unless has_calculated_fields_options.has_key?(:on_after_save)
|
42
|
+
|
43
|
+
has_calculated_fields_options[:on_after_save].each do |data|
|
44
|
+
_process_data(data)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def _process_data(data)
|
49
|
+
attr_equal = "#{data[:calculated_field]}="
|
46
50
|
|
47
|
-
|
51
|
+
value = case data[:type]
|
52
|
+
when :date
|
53
|
+
_process_date(data)
|
54
|
+
when :method
|
55
|
+
_process_method(data)
|
48
56
|
end
|
57
|
+
|
58
|
+
send(attr_equal, value)
|
59
|
+
end
|
60
|
+
|
61
|
+
def _process_date(data)
|
62
|
+
value = _has_calculated_fields__field_value(data)
|
63
|
+
return "" if value.blank?
|
64
|
+
|
65
|
+
if data[:format]
|
66
|
+
I18n.l(value, format: data[:format])
|
67
|
+
else
|
68
|
+
I18n.l(value)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
def _process_method(data)
|
73
|
+
data[:method].call(self)
|
49
74
|
end
|
50
75
|
|
51
76
|
def _has_calculated_fields__field_value(data)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: has_calculated_fields
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adrian Fernandez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-08-
|
11
|
+
date: 2019-08-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|