has_calculated_fields 1.0.3 → 1.0.3.4
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/Gemfile.lock +32 -35
- data/has_calculated_fields.gemspec +1 -2
- data/lib/has_calculated_fields/has_calculated_fields.rb +71 -31
- data/spec/.DS_Store +0 -0
- data/spec/has_calculated_fields_spec.rb +20 -10
- data/spec/spec_helper.rb +20 -4
- metadata +5 -23
- data/spec/factories/other_event.rb +0 -6
- data/spec/support/factory_bot.rb +0 -9
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0afedc16cbc98af23216b3d921975247b1852fb83ada078232ae8878605ecd40
|
|
4
|
+
data.tar.gz: 0c527a880f8dc6164fdfc2328475b6de0327c0bbb172b21940e5ec0f1344f8ec
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: '081c4f56ed1bd82af9a4fa15a40320d91c57546970681889152f7589832311fb7a6ef582b12587d0143c29cac4f78de4baee31d1a59e6c570408cf996a2c8bfa'
|
|
7
|
+
data.tar.gz: 1954e0f1faf6b0e7bfe0d7c716d9e8e550745015f8217c0b383498b0d7a1811637053984008b632dd25ed69ecef3c5977fe03ad3219715d1d22c5bc7290bd8cf
|
data/Gemfile.lock
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
has_calculated_fields (1.0.
|
|
4
|
+
has_calculated_fields (1.0.3.4)
|
|
5
5
|
|
|
6
6
|
GEM
|
|
7
7
|
remote: https://rubygems.org/
|
|
8
8
|
specs:
|
|
9
|
-
active_model_serializers (0.9.
|
|
9
|
+
active_model_serializers (0.9.8)
|
|
10
10
|
activemodel (>= 3.2)
|
|
11
11
|
concurrent-ruby (~> 1.0)
|
|
12
12
|
activemodel (4.2.11.1)
|
|
@@ -21,44 +21,42 @@ GEM
|
|
|
21
21
|
minitest (~> 5.1)
|
|
22
22
|
thread_safe (~> 0.3, >= 0.3.4)
|
|
23
23
|
tzinfo (~> 1.1)
|
|
24
|
-
appraisal (2.
|
|
24
|
+
appraisal (2.4.1)
|
|
25
25
|
bundler
|
|
26
26
|
rake
|
|
27
27
|
thor (>= 0.14.0)
|
|
28
28
|
arel (6.0.4)
|
|
29
|
-
ast (2.4.
|
|
30
|
-
builder (3.2.
|
|
31
|
-
byebug (11.
|
|
32
|
-
concurrent-ruby (1.1.
|
|
33
|
-
database_cleaner (1.
|
|
34
|
-
diff-lcs (1.
|
|
29
|
+
ast (2.4.2)
|
|
30
|
+
builder (3.2.4)
|
|
31
|
+
byebug (11.1.3)
|
|
32
|
+
concurrent-ruby (1.1.10)
|
|
33
|
+
database_cleaner (1.99.0)
|
|
34
|
+
diff-lcs (1.5.0)
|
|
35
35
|
docile (1.1.5)
|
|
36
|
-
factory_bot (4.11.1)
|
|
37
|
-
activesupport (>= 3.0.0)
|
|
38
36
|
i18n (0.9.5)
|
|
39
37
|
concurrent-ruby (~> 1.0)
|
|
40
|
-
json (2.
|
|
41
|
-
minitest (5.
|
|
42
|
-
parallel (1.
|
|
43
|
-
parser (2.
|
|
44
|
-
ast (~> 2.4.
|
|
45
|
-
powerpack (0.1.
|
|
38
|
+
json (2.6.1)
|
|
39
|
+
minitest (5.15.0)
|
|
40
|
+
parallel (1.22.1)
|
|
41
|
+
parser (2.7.2.0)
|
|
42
|
+
ast (~> 2.4.1)
|
|
43
|
+
powerpack (0.1.3)
|
|
46
44
|
rainbow (2.2.2)
|
|
47
45
|
rake
|
|
48
|
-
rake (
|
|
49
|
-
rspec (3.
|
|
50
|
-
rspec-core (~> 3.
|
|
51
|
-
rspec-expectations (~> 3.
|
|
52
|
-
rspec-mocks (~> 3.
|
|
53
|
-
rspec-core (3.
|
|
54
|
-
rspec-support (~> 3.
|
|
55
|
-
rspec-expectations (3.
|
|
46
|
+
rake (13.0.6)
|
|
47
|
+
rspec (3.11.0)
|
|
48
|
+
rspec-core (~> 3.11.0)
|
|
49
|
+
rspec-expectations (~> 3.11.0)
|
|
50
|
+
rspec-mocks (~> 3.11.0)
|
|
51
|
+
rspec-core (3.11.0)
|
|
52
|
+
rspec-support (~> 3.11.0)
|
|
53
|
+
rspec-expectations (3.11.0)
|
|
56
54
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
57
|
-
rspec-support (~> 3.
|
|
58
|
-
rspec-mocks (3.
|
|
55
|
+
rspec-support (~> 3.11.0)
|
|
56
|
+
rspec-mocks (3.11.1)
|
|
59
57
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
60
|
-
rspec-support (~> 3.
|
|
61
|
-
rspec-support (3.
|
|
58
|
+
rspec-support (~> 3.11.0)
|
|
59
|
+
rspec-support (3.11.0)
|
|
62
60
|
rubocop (0.49.1)
|
|
63
61
|
parallel (~> 1.10)
|
|
64
62
|
parser (>= 2.3.3.1, < 3.0)
|
|
@@ -66,18 +64,18 @@ GEM
|
|
|
66
64
|
rainbow (>= 1.99.1, < 3.0)
|
|
67
65
|
ruby-progressbar (~> 1.7)
|
|
68
66
|
unicode-display_width (~> 1.0, >= 1.0.1)
|
|
69
|
-
ruby-progressbar (1.
|
|
67
|
+
ruby-progressbar (1.11.0)
|
|
70
68
|
simplecov (0.15.1)
|
|
71
69
|
docile (~> 1.1.0)
|
|
72
70
|
json (>= 1.8, < 3)
|
|
73
71
|
simplecov-html (~> 0.10.0)
|
|
74
72
|
simplecov-html (0.10.2)
|
|
75
73
|
sqlite3 (1.3.13)
|
|
76
|
-
thor (
|
|
74
|
+
thor (1.2.1)
|
|
77
75
|
thread_safe (0.3.6)
|
|
78
|
-
tzinfo (1.2.
|
|
76
|
+
tzinfo (1.2.9)
|
|
79
77
|
thread_safe (~> 0.1)
|
|
80
|
-
unicode-display_width (1.
|
|
78
|
+
unicode-display_width (1.8.0)
|
|
81
79
|
|
|
82
80
|
PLATFORMS
|
|
83
81
|
ruby
|
|
@@ -88,7 +86,6 @@ DEPENDENCIES
|
|
|
88
86
|
appraisal (~> 2.2)
|
|
89
87
|
byebug
|
|
90
88
|
database_cleaner
|
|
91
|
-
factory_bot (~> 4.8)
|
|
92
89
|
has_calculated_fields!
|
|
93
90
|
rspec (~> 3.6)
|
|
94
91
|
rubocop (~> 0.49.1)
|
|
@@ -96,4 +93,4 @@ DEPENDENCIES
|
|
|
96
93
|
sqlite3 (~> 1.3.6)
|
|
97
94
|
|
|
98
95
|
BUNDLED WITH
|
|
99
|
-
1.
|
|
96
|
+
1.17.2
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
Gem::Specification.new do |s|
|
|
5
5
|
s.name = "has_calculated_fields"
|
|
6
|
-
s.version = "1.0.3"
|
|
6
|
+
s.version = "1.0.3.4"
|
|
7
7
|
s.platform = Gem::Platform::RUBY
|
|
8
8
|
s.author = ["Adrian Fernandez"]
|
|
9
9
|
s.email = ["adrianfernandez85@gmail.com"]
|
|
@@ -24,7 +24,6 @@ Gem::Specification.new do |s|
|
|
|
24
24
|
s.add_development_dependency "simplecov", "~> 0.15.0"
|
|
25
25
|
s.add_development_dependency "appraisal", "~> 2.2"
|
|
26
26
|
s.add_development_dependency "byebug"
|
|
27
|
-
s.add_development_dependency "factory_bot", "~> 4.8"
|
|
28
27
|
s.add_development_dependency "database_cleaner"
|
|
29
28
|
s.add_development_dependency "active_model_serializers", "~> 0.9.3"
|
|
30
29
|
end
|
|
@@ -41,141 +41,172 @@ module HasCalculatedFields
|
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
def _has_calculated_fields__on_before_save
|
|
44
|
-
return unless respond_to?(:has_calculated_fields_options)
|
|
45
|
-
return unless has_calculated_fields_options.has_key?(:on_before_save)
|
|
44
|
+
return true unless respond_to?(:has_calculated_fields_options)
|
|
45
|
+
return true unless has_calculated_fields_options.has_key?(:on_before_save)
|
|
46
46
|
|
|
47
47
|
has_calculated_fields_options[:on_before_save].each do |data|
|
|
48
48
|
_process_data(data)
|
|
49
49
|
end
|
|
50
|
+
|
|
51
|
+
true
|
|
50
52
|
end
|
|
51
53
|
|
|
52
54
|
def _has_calculated_fields__on_after_save
|
|
53
|
-
return unless respond_to?(:has_calculated_fields_options)
|
|
54
|
-
return unless has_calculated_fields_options.has_key?(:on_after_save)
|
|
55
|
+
return true unless respond_to?(:has_calculated_fields_options)
|
|
56
|
+
return true unless has_calculated_fields_options.has_key?(:on_after_save)
|
|
55
57
|
|
|
56
58
|
has_calculated_fields_options[:on_after_save].each do |data|
|
|
57
59
|
_process_data(data)
|
|
58
60
|
end
|
|
61
|
+
|
|
62
|
+
true
|
|
59
63
|
end
|
|
60
64
|
|
|
61
65
|
def _has_calculated_fields__on_before_validation
|
|
62
|
-
return unless respond_to?(:has_calculated_fields_options)
|
|
63
|
-
return unless has_calculated_fields_options.has_key?(:on_before_validation)
|
|
66
|
+
return true unless respond_to?(:has_calculated_fields_options)
|
|
67
|
+
return true unless has_calculated_fields_options.has_key?(:on_before_validation)
|
|
64
68
|
|
|
65
69
|
has_calculated_fields_options[:on_before_validation].each do |data|
|
|
66
70
|
_process_data(data)
|
|
67
71
|
end
|
|
72
|
+
|
|
73
|
+
true
|
|
68
74
|
end
|
|
69
75
|
|
|
70
76
|
def _has_calculated_fields__on_after_validation
|
|
71
|
-
return unless respond_to?(:has_calculated_fields_options)
|
|
72
|
-
return unless has_calculated_fields_options.has_key?(:on_after_validation)
|
|
77
|
+
return true unless respond_to?(:has_calculated_fields_options)
|
|
78
|
+
return true unless has_calculated_fields_options.has_key?(:on_after_validation)
|
|
73
79
|
|
|
74
80
|
has_calculated_fields_options[:on_after_validation].each do |data|
|
|
75
81
|
_process_data(data)
|
|
76
82
|
end
|
|
83
|
+
|
|
84
|
+
true
|
|
77
85
|
end
|
|
78
86
|
|
|
79
87
|
def _has_calculated_fields__on_before_update
|
|
80
|
-
return unless respond_to?(:has_calculated_fields_options)
|
|
81
|
-
return unless has_calculated_fields_options.has_key?(:on_before_update)
|
|
88
|
+
return true unless respond_to?(:has_calculated_fields_options)
|
|
89
|
+
return true unless has_calculated_fields_options.has_key?(:on_before_update)
|
|
82
90
|
|
|
83
91
|
has_calculated_fields_options[:on_before_update].each do |data|
|
|
84
92
|
_process_data(data)
|
|
85
93
|
end
|
|
94
|
+
|
|
95
|
+
true
|
|
86
96
|
end
|
|
87
97
|
|
|
88
98
|
def _has_calculated_fields__on_before_create
|
|
89
|
-
return unless respond_to?(:has_calculated_fields_options)
|
|
90
|
-
return unless has_calculated_fields_options.has_key?(:on_before_create)
|
|
99
|
+
return true unless respond_to?(:has_calculated_fields_options)
|
|
100
|
+
return true unless has_calculated_fields_options.has_key?(:on_before_create)
|
|
91
101
|
|
|
92
102
|
has_calculated_fields_options[:on_before_create].each do |data|
|
|
93
103
|
_process_data(data)
|
|
94
104
|
end
|
|
105
|
+
|
|
106
|
+
true
|
|
95
107
|
end
|
|
96
108
|
|
|
97
109
|
def _has_calculated_fields__on_before_destroy
|
|
98
|
-
return unless respond_to?(:has_calculated_fields_options)
|
|
99
|
-
return unless has_calculated_fields_options.has_key?(:on_before_destroy)
|
|
110
|
+
return true unless respond_to?(:has_calculated_fields_options)
|
|
111
|
+
return true unless has_calculated_fields_options.has_key?(:on_before_destroy)
|
|
100
112
|
|
|
101
113
|
has_calculated_fields_options[:on_before_destroy].each do |data|
|
|
102
114
|
_process_data(data)
|
|
103
115
|
end
|
|
116
|
+
|
|
117
|
+
true
|
|
104
118
|
end
|
|
105
119
|
|
|
106
120
|
def _has_calculated_fields__on_around_save
|
|
107
|
-
return unless respond_to?(:has_calculated_fields_options)
|
|
108
|
-
return unless has_calculated_fields_options.has_key?(:on_around_save)
|
|
121
|
+
return true unless respond_to?(:has_calculated_fields_options)
|
|
122
|
+
return true unless has_calculated_fields_options.has_key?(:on_around_save)
|
|
109
123
|
|
|
110
124
|
has_calculated_fields_options[:on_around_save].each do |data|
|
|
111
125
|
_process_data(data)
|
|
112
126
|
end
|
|
127
|
+
|
|
128
|
+
true
|
|
113
129
|
end
|
|
114
130
|
|
|
115
131
|
def _has_calculated_fields__on_around_update
|
|
116
|
-
return unless respond_to?(:has_calculated_fields_options)
|
|
117
|
-
return unless has_calculated_fields_options.has_key?(:on_around_update)
|
|
132
|
+
return true unless respond_to?(:has_calculated_fields_options)
|
|
133
|
+
return true unless has_calculated_fields_options.has_key?(:on_around_update)
|
|
118
134
|
|
|
119
135
|
has_calculated_fields_options[:on_around_update].each do |data|
|
|
120
136
|
_process_data(data)
|
|
121
137
|
end
|
|
138
|
+
|
|
139
|
+
true
|
|
122
140
|
end
|
|
123
141
|
|
|
124
142
|
def _has_calculated_fields__on_around_create
|
|
125
|
-
return unless respond_to?(:has_calculated_fields_options)
|
|
126
|
-
return unless has_calculated_fields_options.has_key?(:on_around_create)
|
|
143
|
+
return true unless respond_to?(:has_calculated_fields_options)
|
|
144
|
+
return true unless has_calculated_fields_options.has_key?(:on_around_create)
|
|
127
145
|
|
|
128
146
|
has_calculated_fields_options[:on_around_create].each do |data|
|
|
129
147
|
_process_data(data)
|
|
130
148
|
end
|
|
149
|
+
|
|
150
|
+
true
|
|
131
151
|
end
|
|
132
152
|
|
|
133
153
|
def _has_calculated_fields__on_around_destroy
|
|
134
|
-
return unless respond_to?(:has_calculated_fields_options)
|
|
135
|
-
return unless has_calculated_fields_options.has_key?(:on_around_destroy)
|
|
154
|
+
return true unless respond_to?(:has_calculated_fields_options)
|
|
155
|
+
return true unless has_calculated_fields_options.has_key?(:on_around_destroy)
|
|
136
156
|
|
|
137
157
|
has_calculated_fields_options[:on_around_destroy].each do |data|
|
|
138
158
|
_process_data(data)
|
|
139
159
|
end
|
|
160
|
+
|
|
161
|
+
true
|
|
140
162
|
end
|
|
141
163
|
|
|
142
164
|
def _has_calculated_fields__on_after_create
|
|
143
|
-
return unless respond_to?(:has_calculated_fields_options)
|
|
144
|
-
return unless has_calculated_fields_options.has_key?(:on_after_create)
|
|
165
|
+
return true unless respond_to?(:has_calculated_fields_options)
|
|
166
|
+
return true unless has_calculated_fields_options.has_key?(:on_after_create)
|
|
145
167
|
|
|
146
168
|
has_calculated_fields_options[:on_after_create].each do |data|
|
|
147
169
|
_process_data(data)
|
|
148
170
|
end
|
|
171
|
+
|
|
172
|
+
true
|
|
149
173
|
end
|
|
150
174
|
|
|
151
175
|
def _has_calculated_fields__on_after_update
|
|
152
|
-
return unless respond_to?(:has_calculated_fields_options)
|
|
153
|
-
return unless has_calculated_fields_options.has_key?(:on_after_update)
|
|
176
|
+
return true unless respond_to?(:has_calculated_fields_options)
|
|
177
|
+
return true unless has_calculated_fields_options.has_key?(:on_after_update)
|
|
154
178
|
|
|
155
179
|
has_calculated_fields_options[:on_after_update].each do |data|
|
|
156
180
|
_process_data(data)
|
|
157
181
|
end
|
|
182
|
+
|
|
183
|
+
true
|
|
158
184
|
end
|
|
159
185
|
|
|
160
186
|
def _has_calculated_fields__on_after_destroy
|
|
161
|
-
return unless respond_to?(:has_calculated_fields_options)
|
|
162
|
-
return unless has_calculated_fields_options.has_key?(:on_after_destroy)
|
|
187
|
+
return true unless respond_to?(:has_calculated_fields_options)
|
|
188
|
+
return true unless has_calculated_fields_options.has_key?(:on_after_destroy)
|
|
163
189
|
|
|
164
190
|
has_calculated_fields_options[:on_after_destroy].each do |data|
|
|
165
191
|
_process_data(data)
|
|
166
192
|
end
|
|
193
|
+
|
|
194
|
+
true
|
|
167
195
|
end
|
|
168
196
|
|
|
169
197
|
def _has_calculated_fields__on_after_commit
|
|
170
|
-
return unless respond_to?(:has_calculated_fields_options)
|
|
171
|
-
return unless has_calculated_fields_options.has_key?(:on_after_commit)
|
|
198
|
+
return true unless respond_to?(:has_calculated_fields_options)
|
|
199
|
+
return true unless has_calculated_fields_options.has_key?(:on_after_commit)
|
|
172
200
|
|
|
173
201
|
has_calculated_fields_options[:on_after_commit].each do |data|
|
|
174
202
|
_process_data(data)
|
|
175
203
|
end
|
|
204
|
+
|
|
205
|
+
true
|
|
176
206
|
end
|
|
177
207
|
|
|
178
208
|
def _process_data(data)
|
|
209
|
+
# return true unless _should_calculate_data?(data)
|
|
179
210
|
attr_equal = "#{data[:calculated_field]}="
|
|
180
211
|
|
|
181
212
|
value = case data[:type]
|
|
@@ -185,7 +216,6 @@ module HasCalculatedFields
|
|
|
185
216
|
_process_method(data)
|
|
186
217
|
end
|
|
187
218
|
|
|
188
|
-
puts "#{attr_equal}#{value}"
|
|
189
219
|
send(attr_equal, value)
|
|
190
220
|
end
|
|
191
221
|
|
|
@@ -224,6 +254,16 @@ module HasCalculatedFields
|
|
|
224
254
|
value
|
|
225
255
|
end
|
|
226
256
|
end
|
|
257
|
+
|
|
258
|
+
def _should_calculate_data?(data)
|
|
259
|
+
return true if data.blank?
|
|
260
|
+
return true if !data.has_key?(:if_changed) && !data.has_key?(:unless_changed)
|
|
261
|
+
|
|
262
|
+
return true if data.has_key?(:if_changed) && changes.keys.map(&:to_sym).include?(data[:if_changed])
|
|
263
|
+
return true if data.has_key?(:unless_changed) && !changes.keys.map(&:to_sym).include?(data[:unless_changed])
|
|
264
|
+
|
|
265
|
+
false
|
|
266
|
+
end
|
|
227
267
|
end
|
|
228
268
|
end
|
|
229
269
|
|
data/spec/.DS_Store
CHANGED
|
Binary file
|
|
@@ -5,7 +5,7 @@ describe HasCalculatedFields do
|
|
|
5
5
|
describe "runs before_save callbacks" do
|
|
6
6
|
let(:name) { "name" }
|
|
7
7
|
let(:created_at) { Time.find_zone("Madrid").parse("2019-05-03 2pm") }
|
|
8
|
-
let(:obj) { create(
|
|
8
|
+
let(:obj) { SampleModel.create(created_at: created_at, name: name) }
|
|
9
9
|
|
|
10
10
|
context "using time" do
|
|
11
11
|
context "when attribute has value" do
|
|
@@ -18,15 +18,6 @@ describe HasCalculatedFields do
|
|
|
18
18
|
.to("Sat, 04 May 2019 16:00:00 +0200")
|
|
19
19
|
end
|
|
20
20
|
end
|
|
21
|
-
|
|
22
|
-
context "when attribute hasn't value" do
|
|
23
|
-
let(:created_at) { nil }
|
|
24
|
-
it "assigns formatted time attribute" do
|
|
25
|
-
expect { obj.save }.to change { obj.calculated_created_at }
|
|
26
|
-
.from(I18n.l(Time.current))
|
|
27
|
-
.to(I18n.l(Time.current.in_time_zone("UTC")))
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
21
|
end
|
|
31
22
|
|
|
32
23
|
context "using method" do
|
|
@@ -37,6 +28,25 @@ describe HasCalculatedFields do
|
|
|
37
28
|
.from("name calculated!")
|
|
38
29
|
.to("new name calculated!")
|
|
39
30
|
end
|
|
31
|
+
|
|
32
|
+
it "assigns conditional when condition is matched" do
|
|
33
|
+
obj.name = "conditional name"
|
|
34
|
+
obj.random_attribute = "4"
|
|
35
|
+
|
|
36
|
+
expect { obj.save }.to change {
|
|
37
|
+
obj.calculated_conditional_unless
|
|
38
|
+
}.and change { obj.calculated_conditional_if }
|
|
39
|
+
.to("conditional name calculated!")
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
it "assigns conditional when condition is matched" do
|
|
43
|
+
obj.name = "conditional name"
|
|
44
|
+
|
|
45
|
+
expect { obj.save }.to change {
|
|
46
|
+
obj.calculated_conditional_if
|
|
47
|
+
}.and change { obj.calculated_conditional_unless }
|
|
48
|
+
.to("conditional name calculated!")
|
|
49
|
+
end
|
|
40
50
|
end
|
|
41
51
|
end
|
|
42
52
|
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -3,12 +3,9 @@
|
|
|
3
3
|
$LOAD_PATH << File.join(File.dirname(__FILE__), "..", "lib")
|
|
4
4
|
require "sqlite3"
|
|
5
5
|
require "has_calculated_fields"
|
|
6
|
-
require "factory_bot"
|
|
7
6
|
require 'database_cleaner'
|
|
8
7
|
require "active_model_serializers"
|
|
9
8
|
|
|
10
|
-
Dir["./spec/support/**/*.rb"].sort.each { |f| require f }
|
|
11
|
-
|
|
12
9
|
RSpec.configure do |config|
|
|
13
10
|
config.before(:suite) do
|
|
14
11
|
DatabaseCleaner.strategy = :transaction
|
|
@@ -24,13 +21,16 @@ end
|
|
|
24
21
|
|
|
25
22
|
ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:")
|
|
26
23
|
|
|
27
|
-
ActiveRecord::Schema.define(version:
|
|
24
|
+
ActiveRecord::Schema.define(version: 3) do
|
|
28
25
|
create_table :sample_models do |t|
|
|
29
26
|
t.string :name
|
|
27
|
+
t.string :random_attribute
|
|
30
28
|
t.datetime :created_at
|
|
31
29
|
|
|
32
30
|
t.string :calculated_name
|
|
33
31
|
t.string :calculated_created_at
|
|
32
|
+
t.string :calculated_conditional_if
|
|
33
|
+
t.string :calculated_conditional_unless
|
|
34
34
|
end
|
|
35
35
|
end
|
|
36
36
|
|
|
@@ -48,6 +48,22 @@ class SampleModel < ActiveRecord::Base
|
|
|
48
48
|
method: Proc.new do |obj|
|
|
49
49
|
obj.name + " calculated!"
|
|
50
50
|
end
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
calculated_field: :calculated_conditional_if,
|
|
54
|
+
type: :method,
|
|
55
|
+
if_changed: :random_attribute,
|
|
56
|
+
method: Proc.new do |obj|
|
|
57
|
+
obj.name + " calculated!"
|
|
58
|
+
end
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
calculated_field: :calculated_conditional_unless,
|
|
62
|
+
type: :method,
|
|
63
|
+
unless_changed: :random_attribute,
|
|
64
|
+
method: Proc.new do |obj|
|
|
65
|
+
obj.name + " calculated!"
|
|
66
|
+
end
|
|
51
67
|
}
|
|
52
68
|
]
|
|
53
69
|
end
|
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.3
|
|
4
|
+
version: 1.0.3.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Adrian Fernandez
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2022-05-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rspec
|
|
@@ -108,20 +108,6 @@ dependencies:
|
|
|
108
108
|
- - ">="
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
110
|
version: '0'
|
|
111
|
-
- !ruby/object:Gem::Dependency
|
|
112
|
-
name: factory_bot
|
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
|
114
|
-
requirements:
|
|
115
|
-
- - "~>"
|
|
116
|
-
- !ruby/object:Gem::Version
|
|
117
|
-
version: '4.8'
|
|
118
|
-
type: :development
|
|
119
|
-
prerelease: false
|
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
-
requirements:
|
|
122
|
-
- - "~>"
|
|
123
|
-
- !ruby/object:Gem::Version
|
|
124
|
-
version: '4.8'
|
|
125
111
|
- !ruby/object:Gem::Dependency
|
|
126
112
|
name: database_cleaner
|
|
127
113
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -168,15 +154,13 @@ files:
|
|
|
168
154
|
- lib/has_calculated_fields/.DS_Store
|
|
169
155
|
- lib/has_calculated_fields/has_calculated_fields.rb
|
|
170
156
|
- spec/.DS_Store
|
|
171
|
-
- spec/factories/other_event.rb
|
|
172
157
|
- spec/has_calculated_fields_spec.rb
|
|
173
158
|
- spec/spec_helper.rb
|
|
174
|
-
- spec/support/factory_bot.rb
|
|
175
159
|
homepage: http://github.com/adrian-fernandez/has_calculated_fields
|
|
176
160
|
licenses:
|
|
177
161
|
- MIT
|
|
178
162
|
metadata: {}
|
|
179
|
-
post_install_message:
|
|
163
|
+
post_install_message:
|
|
180
164
|
rdoc_options: []
|
|
181
165
|
require_paths:
|
|
182
166
|
- lib
|
|
@@ -192,11 +176,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
192
176
|
version: '0'
|
|
193
177
|
requirements: []
|
|
194
178
|
rubygems_version: 3.0.3
|
|
195
|
-
signing_key:
|
|
179
|
+
signing_key:
|
|
196
180
|
specification_version: 4
|
|
197
181
|
summary: Rails gem to allow models to save auto calculated fields
|
|
198
182
|
test_files:
|
|
199
|
-
- spec/factories/other_event.rb
|
|
200
183
|
- spec/has_calculated_fields_spec.rb
|
|
201
184
|
- spec/spec_helper.rb
|
|
202
|
-
- spec/support/factory_bot.rb
|