eac_rails_utils 0.10.1 → 0.11.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper.rb +5 -1
- data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper/form_builder.rb +10 -2
- data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper/form_builder/association_select_field.rb +1 -1
- data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper/form_builder/common_text_fields.rb +1 -1
- data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper/form_builder/currency_field.rb +1 -1
- data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper/form_builder/date_field.rb +1 -1
- data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper/form_builder/fields_for.rb +1 -1
- data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper/form_builder/file_field.rb +1 -1
- data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper/form_builder/radio_select_field.rb +1 -1
- data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper/form_builder/searchable_association_field.rb +1 -1
- data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper/form_builder/select_field.rb +3 -2
- data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper/form_builder/time_field.rb +1 -1
- data/{lib/eac → app/helpers/eac_rails_utils}/common_form_helper/form_builder/year_month_field.rb +1 -1
- data/app/helpers/eac_rails_utils/data_table_helper.rb +13 -0
- data/{lib/eac → app/helpers/eac_rails_utils}/data_table_helper/column.rb +1 -1
- data/{lib/eac → app/helpers/eac_rails_utils}/data_table_helper/data_table.rb +2 -2
- data/{lib/eac → app/helpers/eac_rails_utils}/data_table_helper/setup.rb +2 -2
- data/app/helpers/eac_rails_utils/links_helper.rb +5 -5
- data/{lib/eac → app/helpers/eac_rails_utils}/menus_helper.rb +5 -1
- data/{lib/eac → app/helpers/eac_rails_utils}/menus_helper/bootstrap_gui_builder.rb +1 -1
- data/{lib/eac → app/helpers/eac_rails_utils}/menus_helper/data_builder.rb +1 -1
- data/{lib/eac → app/helpers/eac_rails_utils}/menus_helper/gui_builder.rb +1 -1
- data/{lib/eac → app/validators/eac_rails_utils}/cpf_validator.rb +1 -1
- data/{lib/eac → app/validators/eac_rails_utils}/no_presence_validator.rb +1 -1
- data/config/locales/en.yml +8 -0
- data/config/locales/pt-BR.yml +8 -0
- data/lib/eac_rails_utils.rb +2 -39
- data/lib/eac_rails_utils/engine.rb +2 -0
- data/lib/{eac → eac_rails_utils}/htmlbeautifier.rb +1 -1
- data/lib/eac_rails_utils/models.rb +9 -0
- data/lib/eac_rails_utils/models/attribute_required.rb +43 -0
- data/lib/eac_rails_utils/models/fetch_errors.rb +92 -0
- data/lib/eac_rails_utils/models/inequality_queries.rb +39 -0
- data/lib/eac_rails_utils/models/tableless.rb +97 -0
- data/lib/eac_rails_utils/models/test_utils.rb +65 -0
- data/lib/eac_rails_utils/patches.rb +9 -0
- data/lib/eac_rails_utils/patches/action_controller_base.rb +2 -0
- data/lib/eac_rails_utils/patches/active_model_associations.rb +40 -0
- data/lib/eac_rails_utils/version.rb +1 -1
- data/test/dummy/app/assets/config/manifest.js +3 -0
- data/test/dummy/app/models/user.rb +4 -0
- data/test/dummy/config/application.rb +1 -1
- data/test/{lib/eac → helpers/eac_rails_utils}/common_form_helper_test.rb +2 -2
- data/test/{lib/eac → helpers/eac_rails_utils}/data_table_test_helper_test.rb +2 -2
- data/test/{app/helpers → helpers}/eac_rails_utils/formatter_helper_test.rb +0 -0
- data/test/lib/eac_rails_utils/{patches/model_attribute_required_test.rb → models/attribute_required_test.rb} +1 -0
- data/test/lib/eac_rails_utils/models/fetch_errors_test.rb +80 -0
- data/test/lib/eac_rails_utils/models/tableless_test.rb +25 -0
- data/test/{lib/eac → validators}/cpf_validator_test.rb +2 -2
- metadata +69 -66
- data/lib/eac/data_table_helper.rb +0 -13
- data/lib/eac/inequality_queries.rb +0 -37
- data/lib/eac/model.rb +0 -90
- data/lib/eac/test_utils.rb +0 -61
- data/lib/eac_rails_utils/patches/model_attribute_required.rb +0 -34
- data/lib/eac_rails_utils/patches/ofx_parser.rb +0 -43
- data/lib/eac_rails_utils/tableless_model.rb +0 -92
- data/test/lib/eac/model_test.rb +0 -78
- data/test/lib/eac/source_target_fixtures_test_files/a.source.html +0 -1
- data/test/lib/eac/source_target_fixtures_test_files/a.target.yaml +0 -1
- data/test/lib/eac/source_target_fixtures_test_files/b.source.html +0 -1
- data/test/lib/eac/source_target_fixtures_test_files/c.target.yaml +0 -1
- data/test/lib/eac_rails_utils/tableless_model_test.rb +0 -23
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
module EacRailsUtils
|
6
|
+
module Models
|
7
|
+
class TablelessTest < ActiveSupport::TestCase
|
8
|
+
class Stub < ::EacRailsUtils::Models::Tableless
|
9
|
+
attribute :tempo, DateTime
|
10
|
+
end
|
11
|
+
|
12
|
+
test 'date time array values' do
|
13
|
+
stub = Stub.new('tempo(1i)' => '9', 'tempo(2i)' => '10', 'tempo(3i)' => '11',
|
14
|
+
'tempo(4i)' => '12', 'tempo(5i)' => '13', 'tempo(6i)' => '14')
|
15
|
+
assert stub.tempo.is_a?(DateTime), "Class: |#{stub.tempo.class}|, Value: |#{stub.tempo}|"
|
16
|
+
assert_equal 9, stub.tempo.year, 'Year'
|
17
|
+
assert_equal 10, stub.tempo.month, 'Month'
|
18
|
+
assert_equal 11, stub.tempo.day, 'Day'
|
19
|
+
assert_equal 12, stub.tempo.hour, 'Hour'
|
20
|
+
assert_equal 13, stub.tempo.minute, 'Minute'
|
21
|
+
assert_equal 14, stub.tempo.second, 'Second'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -2,14 +2,14 @@
|
|
2
2
|
|
3
3
|
require 'test_helper'
|
4
4
|
|
5
|
-
module
|
5
|
+
module EacRailsUtils
|
6
6
|
class CpfValidatorTest < ActiveSupport::TestCase
|
7
7
|
class M1
|
8
8
|
include ActiveModel::Model
|
9
9
|
|
10
10
|
attr_accessor :cpf
|
11
11
|
|
12
|
-
validates :cpf, '
|
12
|
+
validates :cpf, 'eac_rails_utils/cpf' => true, allow_nil: true
|
13
13
|
end
|
14
14
|
|
15
15
|
def setup
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eac_rails_utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- E.A.C.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-10-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel-associations
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: '0.2'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: '0.2'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bootstrap-sass
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,33 +39,39 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 3.3.6
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: eac_ruby_utils
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.33'
|
45
48
|
- - ">="
|
46
49
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
50
|
+
version: 0.33.1
|
48
51
|
type: :runtime
|
49
52
|
prerelease: false
|
50
53
|
version_requirements: !ruby/object:Gem::Requirement
|
51
54
|
requirements:
|
55
|
+
- - "~>"
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '0.33'
|
52
58
|
- - ">="
|
53
59
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
60
|
+
version: 0.33.1
|
55
61
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
62
|
+
name: htmlbeautifier
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
58
64
|
requirements:
|
59
65
|
- - ">="
|
60
66
|
- !ruby/object:Gem::Version
|
61
|
-
version: 1.1.
|
67
|
+
version: 1.1.1
|
62
68
|
type: :runtime
|
63
69
|
prerelease: false
|
64
70
|
version_requirements: !ruby/object:Gem::Requirement
|
65
71
|
requirements:
|
66
72
|
- - ">="
|
67
73
|
- !ruby/object:Gem::Version
|
68
|
-
version: 1.1.
|
74
|
+
version: 1.1.1
|
69
75
|
- !ruby/object:Gem::Dependency
|
70
76
|
name: rails
|
71
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -143,9 +149,34 @@ extensions: []
|
|
143
149
|
extra_rdoc_files: []
|
144
150
|
files:
|
145
151
|
- Rakefile
|
152
|
+
- app/helpers/eac_rails_utils/common_form_helper.rb
|
153
|
+
- app/helpers/eac_rails_utils/common_form_helper/form_builder.rb
|
154
|
+
- app/helpers/eac_rails_utils/common_form_helper/form_builder/association_select_field.rb
|
155
|
+
- app/helpers/eac_rails_utils/common_form_helper/form_builder/common_text_fields.rb
|
156
|
+
- app/helpers/eac_rails_utils/common_form_helper/form_builder/currency_field.rb
|
157
|
+
- app/helpers/eac_rails_utils/common_form_helper/form_builder/date_field.rb
|
158
|
+
- app/helpers/eac_rails_utils/common_form_helper/form_builder/fields_for.rb
|
159
|
+
- app/helpers/eac_rails_utils/common_form_helper/form_builder/file_field.rb
|
160
|
+
- app/helpers/eac_rails_utils/common_form_helper/form_builder/radio_select_field.rb
|
161
|
+
- app/helpers/eac_rails_utils/common_form_helper/form_builder/searchable_association_field.rb
|
162
|
+
- app/helpers/eac_rails_utils/common_form_helper/form_builder/select_field.rb
|
163
|
+
- app/helpers/eac_rails_utils/common_form_helper/form_builder/time_field.rb
|
164
|
+
- app/helpers/eac_rails_utils/common_form_helper/form_builder/year_month_field.rb
|
165
|
+
- app/helpers/eac_rails_utils/data_table_helper.rb
|
166
|
+
- app/helpers/eac_rails_utils/data_table_helper/column.rb
|
167
|
+
- app/helpers/eac_rails_utils/data_table_helper/data_table.rb
|
168
|
+
- app/helpers/eac_rails_utils/data_table_helper/setup.rb
|
146
169
|
- app/helpers/eac_rails_utils/formatter_helper.rb
|
147
170
|
- app/helpers/eac_rails_utils/links_helper.rb
|
171
|
+
- app/helpers/eac_rails_utils/menus_helper.rb
|
172
|
+
- app/helpers/eac_rails_utils/menus_helper/bootstrap_gui_builder.rb
|
173
|
+
- app/helpers/eac_rails_utils/menus_helper/data_builder.rb
|
174
|
+
- app/helpers/eac_rails_utils/menus_helper/gui_builder.rb
|
148
175
|
- app/helpers/eac_rails_utils/open_graph_protocol_helper.rb
|
176
|
+
- app/validators/eac_rails_utils/cpf_validator.rb
|
177
|
+
- app/validators/eac_rails_utils/no_presence_validator.rb
|
178
|
+
- config/locales/en.yml
|
179
|
+
- config/locales/pt-BR.yml
|
149
180
|
- lib/assets/javascripts/currency_field.js
|
150
181
|
- lib/assets/javascripts/eac_rails_utils.js
|
151
182
|
- lib/assets/javascripts/input_searchable.js
|
@@ -157,42 +188,21 @@ files:
|
|
157
188
|
- lib/assets/stylesheets/eac_rails_utils.scss
|
158
189
|
- lib/assets/stylesheets/jmenu.scss
|
159
190
|
- lib/assets/stylesheets/jquery.dataTables.min.css
|
160
|
-
- lib/eac/common_form_helper.rb
|
161
|
-
- lib/eac/common_form_helper/form_builder.rb
|
162
|
-
- lib/eac/common_form_helper/form_builder/association_select_field.rb
|
163
|
-
- lib/eac/common_form_helper/form_builder/common_text_fields.rb
|
164
|
-
- lib/eac/common_form_helper/form_builder/currency_field.rb
|
165
|
-
- lib/eac/common_form_helper/form_builder/date_field.rb
|
166
|
-
- lib/eac/common_form_helper/form_builder/fields_for.rb
|
167
|
-
- lib/eac/common_form_helper/form_builder/file_field.rb
|
168
|
-
- lib/eac/common_form_helper/form_builder/radio_select_field.rb
|
169
|
-
- lib/eac/common_form_helper/form_builder/searchable_association_field.rb
|
170
|
-
- lib/eac/common_form_helper/form_builder/select_field.rb
|
171
|
-
- lib/eac/common_form_helper/form_builder/time_field.rb
|
172
|
-
- lib/eac/common_form_helper/form_builder/year_month_field.rb
|
173
|
-
- lib/eac/cpf_validator.rb
|
174
|
-
- lib/eac/data_table_helper.rb
|
175
|
-
- lib/eac/data_table_helper/column.rb
|
176
|
-
- lib/eac/data_table_helper/data_table.rb
|
177
|
-
- lib/eac/data_table_helper/setup.rb
|
178
|
-
- lib/eac/htmlbeautifier.rb
|
179
|
-
- lib/eac/inequality_queries.rb
|
180
|
-
- lib/eac/menus_helper.rb
|
181
|
-
- lib/eac/menus_helper/bootstrap_gui_builder.rb
|
182
|
-
- lib/eac/menus_helper/data_builder.rb
|
183
|
-
- lib/eac/menus_helper/gui_builder.rb
|
184
|
-
- lib/eac/model.rb
|
185
|
-
- lib/eac/no_presence_validator.rb
|
186
|
-
- lib/eac/test_utils.rb
|
187
191
|
- lib/eac_rails_utils.rb
|
188
192
|
- lib/eac_rails_utils/engine.rb
|
193
|
+
- lib/eac_rails_utils/htmlbeautifier.rb
|
194
|
+
- lib/eac_rails_utils/models.rb
|
195
|
+
- lib/eac_rails_utils/models/attribute_required.rb
|
196
|
+
- lib/eac_rails_utils/models/fetch_errors.rb
|
197
|
+
- lib/eac_rails_utils/models/inequality_queries.rb
|
198
|
+
- lib/eac_rails_utils/models/tableless.rb
|
199
|
+
- lib/eac_rails_utils/models/test_utils.rb
|
200
|
+
- lib/eac_rails_utils/patches.rb
|
189
201
|
- lib/eac_rails_utils/patches/action_controller_base.rb
|
190
|
-
- lib/eac_rails_utils/patches/
|
191
|
-
- lib/eac_rails_utils/patches/ofx_parser.rb
|
192
|
-
- lib/eac_rails_utils/tableless_model.rb
|
202
|
+
- lib/eac_rails_utils/patches/active_model_associations.rb
|
193
203
|
- lib/eac_rails_utils/version.rb
|
194
|
-
- test/app/helpers/eac_rails_utils/formatter_helper_test.rb
|
195
204
|
- test/dummy/Rakefile
|
205
|
+
- test/dummy/app/assets/config/manifest.js
|
196
206
|
- test/dummy/app/models/job.rb
|
197
207
|
- test/dummy/app/models/user.rb
|
198
208
|
- test/dummy/config.ru
|
@@ -208,17 +218,14 @@ files:
|
|
208
218
|
- test/dummy/db/migrate/20160415143123_create_jobs.rb
|
209
219
|
- test/dummy/db/migrate/20160415143229_add_job_to_users.rb
|
210
220
|
- test/dummy/db/schema.rb
|
211
|
-
- test/
|
212
|
-
- test/
|
213
|
-
- test/
|
214
|
-
- test/lib/
|
215
|
-
- test/lib/
|
216
|
-
- test/lib/
|
217
|
-
- test/lib/eac/source_target_fixtures_test_files/b.source.html
|
218
|
-
- test/lib/eac/source_target_fixtures_test_files/c.target.yaml
|
219
|
-
- test/lib/eac_rails_utils/patches/model_attribute_required_test.rb
|
220
|
-
- test/lib/eac_rails_utils/tableless_model_test.rb
|
221
|
+
- test/helpers/eac_rails_utils/common_form_helper_test.rb
|
222
|
+
- test/helpers/eac_rails_utils/data_table_test_helper_test.rb
|
223
|
+
- test/helpers/eac_rails_utils/formatter_helper_test.rb
|
224
|
+
- test/lib/eac_rails_utils/models/attribute_required_test.rb
|
225
|
+
- test/lib/eac_rails_utils/models/fetch_errors_test.rb
|
226
|
+
- test/lib/eac_rails_utils/models/tableless_test.rb
|
221
227
|
- test/test_helper.rb
|
228
|
+
- test/validators/cpf_validator_test.rb
|
222
229
|
homepage:
|
223
230
|
licenses: []
|
224
231
|
metadata: {}
|
@@ -237,8 +244,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
237
244
|
- !ruby/object:Gem::Version
|
238
245
|
version: '0'
|
239
246
|
requirements: []
|
240
|
-
|
241
|
-
rubygems_version: 2.7.7
|
247
|
+
rubygems_version: 3.0.8
|
242
248
|
signing_key:
|
243
249
|
specification_version: 4
|
244
250
|
summary: Código reutilizável para as aplicações Rails da E.A.C..
|
@@ -259,15 +265,12 @@ test_files:
|
|
259
265
|
- test/dummy/db/migrate/20160415125333_create_users.rb
|
260
266
|
- test/dummy/app/models/job.rb
|
261
267
|
- test/dummy/app/models/user.rb
|
268
|
+
- test/dummy/app/assets/config/manifest.js
|
262
269
|
- test/test_helper.rb
|
263
|
-
- test/
|
264
|
-
- test/
|
265
|
-
- test/
|
266
|
-
- test/
|
267
|
-
- test/lib/
|
268
|
-
- test/lib/
|
269
|
-
- test/lib/
|
270
|
-
- test/lib/eac/source_target_fixtures_test_files/b.source.html
|
271
|
-
- test/lib/eac/source_target_fixtures_test_files/a.target.yaml
|
272
|
-
- test/lib/eac/source_target_fixtures_test_files/a.source.html
|
273
|
-
- test/lib/eac/model_test.rb
|
270
|
+
- test/validators/cpf_validator_test.rb
|
271
|
+
- test/helpers/eac_rails_utils/common_form_helper_test.rb
|
272
|
+
- test/helpers/eac_rails_utils/data_table_test_helper_test.rb
|
273
|
+
- test/helpers/eac_rails_utils/formatter_helper_test.rb
|
274
|
+
- test/lib/eac_rails_utils/models/attribute_required_test.rb
|
275
|
+
- test/lib/eac_rails_utils/models/tableless_test.rb
|
276
|
+
- test/lib/eac_rails_utils/models/fetch_errors_test.rb
|
@@ -1,13 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_dependency 'eac/data_table_helper/column'
|
4
|
-
require_dependency 'eac/data_table_helper/setup'
|
5
|
-
require_dependency 'eac/data_table_helper/data_table'
|
6
|
-
|
7
|
-
module Eac
|
8
|
-
module DataTableHelper
|
9
|
-
def data_table(dataset, &block)
|
10
|
-
::Eac::DataTableHelper::DataTable.new(self, dataset, &block).output
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Eac
|
4
|
-
# == Example:
|
5
|
-
#
|
6
|
-
# Note: model Product has a attribute "foo" Date, Time or Number:
|
7
|
-
#
|
8
|
-
# class Product
|
9
|
-
# include ::Eac::InequalityQueries
|
10
|
-
#
|
11
|
-
# add_inequality_queries(:foo)
|
12
|
-
# end
|
13
|
-
#
|
14
|
-
# This add the following scopes:
|
15
|
-
#
|
16
|
-
# Product.by_foo_gt(value) # Equivalent to Product.where("foo > ?", value)
|
17
|
-
# Product.by_foo_gteq(value) # Equivalent to Product.where("foo >= ?", value)
|
18
|
-
# Product.by_foo_lt(value) # Equivalent to Product.where("foo < ?", value)
|
19
|
-
# Product.by_foo_lteq(value) # Equivalent to Product.where("foo <= ?", value)
|
20
|
-
module InequalityQueries
|
21
|
-
class << self
|
22
|
-
def included(base)
|
23
|
-
base.extend(ClassMethods)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
module ClassMethods
|
28
|
-
def add_inequality_queries(attribute)
|
29
|
-
%w[gt gteq lt lteq].each do |ineq|
|
30
|
-
scope "by_#{attribute}_#{ineq}", lambda { |v|
|
31
|
-
where(arel_table[attribute].send(ineq, v))
|
32
|
-
}
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
data/lib/eac/model.rb
DELETED
@@ -1,90 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Eac
|
4
|
-
module Model
|
5
|
-
# Adiciona as mensagens de erro de record. As mensagens de uma coluna X em record
|
6
|
-
# serão adicionadas na coluna X em self. Se options[:default_column] for especificado
|
7
|
-
# as mensagens da coluna X de record em que X não existe em self serão adicionadas
|
8
|
-
# na coluna options[:default_column].
|
9
|
-
# Um array de colunas pode ser passado em options[:skip] de colunas em record que não
|
10
|
-
# terão suas falhas adicionadas.
|
11
|
-
def fetch_record_errors(record, options = {})
|
12
|
-
record.errors.keys.each do |column|
|
13
|
-
fetch_column_errors(record, column, column, options)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
# Similar a fetch_record_errors, mas torna possível especificar, através de mapping,
|
18
|
-
# colunas-alvo em self com nomes diferentes das colunas-fonte em record.
|
19
|
-
# mapping tem o formato { record_column => self_column }.
|
20
|
-
def fetch_record_errors_by_mapping(record, mapping, options = {})
|
21
|
-
mapping.each do |record_column, self_column|
|
22
|
-
fetch_column_errors(record, record_column, self_column, options)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def fetch_column_errors(record, record_column, self_column, options = {})
|
27
|
-
return if options[:skip]&.include?(record_column)
|
28
|
-
|
29
|
-
record.errors[record_column].each do |message|
|
30
|
-
fetch_error_column_message(self_column, message, options[:default_column],
|
31
|
-
"#{record.class.human_attribute_name(record_column)}: ")
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
# Verifica se uma coluna existe.
|
36
|
-
def column?(column)
|
37
|
-
respond_to?(column) && respond_to?("#{column}=")
|
38
|
-
end
|
39
|
-
|
40
|
-
def save_or_raise
|
41
|
-
raise "Falha ao tentar salvar #{self.class.name}: #{errors_to_string}" unless save
|
42
|
-
|
43
|
-
self
|
44
|
-
end
|
45
|
-
|
46
|
-
private
|
47
|
-
|
48
|
-
def fetch_error_column_message(column, message, default_column, default_column_message_prefix)
|
49
|
-
build_self_columns_messages(column, message, default_column,
|
50
|
-
default_column_message_prefix).each do |k, v|
|
51
|
-
if column?(k)
|
52
|
-
add_error_message(k, v)
|
53
|
-
break
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
# Adiciona uma mensagem de erro a uma coluna somente se a coluna
|
59
|
-
# ainda não a possui
|
60
|
-
def add_error_message(column, message)
|
61
|
-
return if errors[column].include?(message)
|
62
|
-
|
63
|
-
errors.add(column, message)
|
64
|
-
end
|
65
|
-
|
66
|
-
# Produz uma lista de campos-mensagens, em ordem de preferência,
|
67
|
-
# que podem receber uma mensagem de falha.
|
68
|
-
def build_self_columns_messages(column, message, default_column,
|
69
|
-
default_column_message_prefix)
|
70
|
-
r = { column => message }
|
71
|
-
m = /^(.+)_id$/.match(column)
|
72
|
-
if m
|
73
|
-
r[m[1]] = message
|
74
|
-
else
|
75
|
-
r["#{column}_id"] = message
|
76
|
-
end
|
77
|
-
r[default_column] = "#{default_column_message_prefix}#{message}" if default_column
|
78
|
-
r
|
79
|
-
end
|
80
|
-
|
81
|
-
def errors_to_string
|
82
|
-
b = ''
|
83
|
-
errors.messages.each do |field, messages|
|
84
|
-
b += ' / ' if b != ''
|
85
|
-
b += field.to_s + ': ' + messages.to_s
|
86
|
-
end
|
87
|
-
b
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
data/lib/eac/test_utils.rb
DELETED
@@ -1,61 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Eac
|
4
|
-
module TestUtils
|
5
|
-
# Add more helper methods to be used by all tests here...
|
6
|
-
def valid_invalid_column_values_test(record, column, valid_values, invalid_values)
|
7
|
-
valid_values.each do |v|
|
8
|
-
record.send("#{column}=", v)
|
9
|
-
assert record.valid?, "#{record.errors.messages}, #{column} = #{v.inspect} should be valid"
|
10
|
-
end
|
11
|
-
invalid_values.each do |v|
|
12
|
-
record.send("#{column}=", v)
|
13
|
-
assert_not record.valid?, "#{column} = #{v.inspect} should be invalid"
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
# Verifica falhas em campos específicos de um record
|
18
|
-
def assert_record_errors(record, fields_without_error, fields_with_error)
|
19
|
-
fields_without_error.each do |c|
|
20
|
-
assert record.errors[c].empty?, "Column: #{c} should not have errors (#{record.errors[c]})"
|
21
|
-
end
|
22
|
-
fields_with_error. each do |c|
|
23
|
-
assert_not record.errors[c].empty?, "Column: #{c} should have errors"
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
# Verifica, campo por campo, se invalida o registro.
|
28
|
-
def assert_column_changes(ppp, expected_valid_result, changes)
|
29
|
-
changes.each do |k, v|
|
30
|
-
ppp.send("#{k}=", v)
|
31
|
-
assert_equal expected_valid_result, ppp.valid?,
|
32
|
-
"\"#{k}\" change should be " + (expected_valid_result ? 'valid' : 'invalid')
|
33
|
-
assert_not ppp.errors[k].empty? unless expected_valid_result
|
34
|
-
ppp.restore_attributes
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
# Ex.: attrs = {a: 1, b: 2} resulta em
|
39
|
-
# [{a: nil, b: nil}, {a: 1, b: nil}, {a: nil, b: 2}, {a: 1, b: 2}].
|
40
|
-
def all_combinations(attrs)
|
41
|
-
combs = [{}]
|
42
|
-
attrs.each do |attr_name, value|
|
43
|
-
combs = all_combinations_new_combination(attr_name, value, combs)
|
44
|
-
end
|
45
|
-
combs
|
46
|
-
end
|
47
|
-
|
48
|
-
def all_combinations_new_combination(attr_name, value, combs)
|
49
|
-
new_comb = []
|
50
|
-
assert_not value.nil?, "#{attr_name}=#{value}"
|
51
|
-
[nil, value].each do |vv|
|
52
|
-
combs.each do |c|
|
53
|
-
cc = c.dup
|
54
|
-
cc[attr_name] = vv
|
55
|
-
new_comb << cc
|
56
|
-
end
|
57
|
-
end
|
58
|
-
new_comb
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|