has_calculated_fields 1.0.1 → 1.0.2

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: fe3752b9f4e76ccbb72dac1427a833178a9b749a923aced0812efdd98f8a7361
4
- data.tar.gz: e4176fb33d49ccd1a2042449634549a6eaa285872f625cc6d406c2612bc52a29
3
+ metadata.gz: c0f76b0b8b2d025e7dac0908d2986e4eeb77cde4421b572a6e735eabed7b08a4
4
+ data.tar.gz: 6639a016d0a9e871b82b2d0f140d189fc820fa519723a02bf070a7fc99a6ac99
5
5
  SHA512:
6
- metadata.gz: 45e14b333fc2872a226f080bab72ddd552eadbaf7b87fd3ce158c356e716ea5918d6c2e5f54e5e36734e3272030ee7e08bb2233e6b3c0d8bfbed88874466fe86
7
- data.tar.gz: cbf2a10640400aecb158f0491c033af87e73335feb78765911a61870ac206bcf53097e431da4d16c5102df13cdad510f961713f93156fb38b9e11ba4402bdf8b
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.1"
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
- attr_equal = "#{data[:calculated_field]}="
35
-
36
- value = case data[:type]
37
- when :date
38
- if data[:format]
39
- I18n.l(_has_calculated_fields__field_value(data), format: data[:format])
40
- else
41
- I18n.l(_has_calculated_fields__field_value(data))
42
- end
43
- when :method
44
- data[:method].call(self)
45
- end
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
- send(attr_equal, value)
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.1
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 00:00:00.000000000 Z
11
+ date: 2019-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec