eac_rails_utils 0.10.1 → 0.11.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/{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
|