idata 0.1.32 → 0.1.33
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/bin/ieval +1 -0
- data/bin/iexport +1 -0
- data/bin/iload +1 -0
- data/bin/imerge +1 -0
- data/bin/ipatch +1 -0
- data/bin/isanitize +1 -0
- data/bin/ivalidate +9 -8
- data/full.sh +17 -15
- data/idata.gemspec +2 -2
- data/lib/idata/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: efc9c2bc3a3ee9b79d83c531abbcbc185360dda4
|
|
4
|
+
data.tar.gz: 0fbca044baf3f5a454f5e55e3ff3b40fd8b480f8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 59e4d3862a80d105fcc6bfa7973dd18c766fa93a921f4f3c9784398ed71187d2f259d05d9375d15e5dc723bdfe9e037bac861dcd677bd7a70a06b4a058cc3152
|
|
7
|
+
data.tar.gz: a685200d759507941fc6800615cf3fc7191e055baecbf56bf4cc8c2f9bce929fc30cd18df76797d75b46a0c2ffa35dcb7cfc1c3a84800f455967cfaea1313693
|
data/bin/ieval
CHANGED
data/bin/iexport
CHANGED
data/bin/iload
CHANGED
data/bin/imerge
CHANGED
data/bin/ipatch
CHANGED
data/bin/isanitize
CHANGED
data/bin/ivalidate
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
1
2
|
# DATA VALIDATOR
|
|
2
3
|
#
|
|
3
4
|
# @author Nghi Pham
|
|
@@ -34,11 +35,11 @@ parser = OptionParser.new("", 24) do |opts|
|
|
|
34
35
|
$options[:unique] << v
|
|
35
36
|
end
|
|
36
37
|
|
|
37
|
-
opts.on("--consistent-by F1|F2,F3,F4...", "") do |v|
|
|
38
|
+
opts.on("--consistent-by F1|F2,F3,F4...", "Check if F1 is uniquely identified by the composite of [F2,F3,F4]") do |v|
|
|
38
39
|
$options[:consistent_by] << v
|
|
39
40
|
end
|
|
40
41
|
|
|
41
|
-
opts.on("--not-null FIELD", "Check if FIELD is
|
|
42
|
+
opts.on("--not-null FIELD", "Check if FIELD is null or empty") do |v|
|
|
42
43
|
$options[:not_null] << v
|
|
43
44
|
end
|
|
44
45
|
|
|
@@ -50,19 +51,19 @@ parser = OptionParser.new("", 24) do |opts|
|
|
|
50
51
|
$options[:not_match] << v
|
|
51
52
|
end
|
|
52
53
|
|
|
53
|
-
opts.on("--cross-reference EXPR", "
|
|
54
|
+
opts.on("--cross-reference EXPR", "See example") do |v|
|
|
54
55
|
$options[:cross_reference] << v
|
|
55
56
|
end
|
|
56
57
|
|
|
57
|
-
opts.on("--query QUERY", "Custom query") do |v|
|
|
58
|
+
opts.on("--query QUERY", "Custom query (whitelist)") do |v|
|
|
58
59
|
$options[:query] << v
|
|
59
60
|
end
|
|
60
61
|
|
|
61
|
-
opts.on("--rquery QUERY", "Custom query") do |v|
|
|
62
|
+
opts.on("--rquery QUERY", "Custom query (blacklist)") do |v|
|
|
62
63
|
$options[:rquery] << v
|
|
63
64
|
end
|
|
64
65
|
|
|
65
|
-
opts.on("-t", "--table TABLE", "
|
|
66
|
+
opts.on("-t", "--table TABLE", "Data table to verify") do |v|
|
|
66
67
|
$options[:table] = v
|
|
67
68
|
end
|
|
68
69
|
|
|
@@ -74,7 +75,7 @@ parser = OptionParser.new("", 24) do |opts|
|
|
|
74
75
|
$options[:pretty] = v
|
|
75
76
|
end
|
|
76
77
|
|
|
77
|
-
opts.on("--case-insensitive", "
|
|
78
|
+
opts.on("--case-insensitive", "As its name implies ^.^") do |v|
|
|
78
79
|
$options[:case_insensitive] = v
|
|
79
80
|
end
|
|
80
81
|
|
|
@@ -118,7 +119,7 @@ Validate `mfrs` table against several rules and write error logs to errors field
|
|
|
118
119
|
--unique="mfr_number" \\
|
|
119
120
|
--not-null="mfr_number" \\
|
|
120
121
|
--not-null="mfr_lic" \\
|
|
121
|
-
--match="mfr_number/^2
|
|
122
|
+
--match="mfr_number/^2.*/" \\
|
|
122
123
|
--match="mfr_name/^[a-zA-Z]+/" \\
|
|
123
124
|
--not-match="status/(failed|inactive|wrong)/" \\
|
|
124
125
|
--query="start_date <= end_date"
|
data/full.sh
CHANGED
|
@@ -332,30 +332,30 @@ ivalidate --case-insensitive --pretty -t $ITEM \
|
|
|
332
332
|
# validate PO
|
|
333
333
|
ivalidate --case-insensitive --pretty -t $PO \
|
|
334
334
|
--log-to=validation_errors \
|
|
335
|
-
--not-null=po_no \
|
|
335
|
+
--not-null="po_no" \
|
|
336
336
|
--match="po_no/[a-zA-Z0-9]/" \
|
|
337
|
-
--not-null=po_date \
|
|
338
|
-
--not-null=corp_id \
|
|
337
|
+
--not-null="po_date" \
|
|
338
|
+
--not-null="corp_id" \
|
|
339
339
|
--match="corp_id/[a-zA-Z0-9]/" \
|
|
340
|
-
--not-null=corp_name \
|
|
340
|
+
--not-null="corp_name" \
|
|
341
341
|
--match="corp_name/[a-zA-Z0-9]/" \
|
|
342
|
-
--not-null=cost_center_id \
|
|
342
|
+
--not-null="cost_center_id" \
|
|
343
343
|
--match="cost_center_id/[a-zA-Z0-9]/" \
|
|
344
|
-
--not-null=cost_center_name \
|
|
344
|
+
--not-null="cost_center_name" \
|
|
345
345
|
--match="cost_center_name/[a-zA-Z0-9]/" \
|
|
346
|
-
--not-null=po_line_number \
|
|
346
|
+
--not-null="po_line_number" \
|
|
347
347
|
--match="po_line_number/^[1-9][0-9]*$/" \
|
|
348
|
-
--not-null=item_id \
|
|
348
|
+
--not-null="item_id" \
|
|
349
349
|
--match="item_id/[a-zA-Z0-9]/" \
|
|
350
|
-
--not-null=vendor_name \
|
|
350
|
+
--not-null="vendor_name" \
|
|
351
351
|
--match="vendor_name/[a-zA-Z0-9]/" \
|
|
352
|
-
--not-null=vendor_code \
|
|
352
|
+
--not-null="vendor_code" \
|
|
353
353
|
--match="vendor_code/[a-zA-Z0-9]/" \
|
|
354
|
-
--not-null=mfr_name \
|
|
354
|
+
--not-null="mfr_name" \
|
|
355
355
|
--match="mfr_name/[a-zA-Z0-9]/" \
|
|
356
|
-
--not-null=mfr_number \
|
|
356
|
+
--not-null="mfr_number" \
|
|
357
357
|
--match="mfr_number/[a-zA-Z0-9]/" \
|
|
358
|
-
--not-null=item_descr \
|
|
358
|
+
--not-null="item_descr" \
|
|
359
359
|
--consistent-by="corp_id|corp_name" \
|
|
360
360
|
--consistent-by="corp_name|corp_id" \
|
|
361
361
|
--consistent-by="vendor_code|vendor_name" \
|
|
@@ -379,6 +379,8 @@ ivalidate --case-insensitive --pretty -t $PO \
|
|
|
379
379
|
# do not check --match="item_descr/[a-zA-Z0-9]/" \
|
|
380
380
|
|
|
381
381
|
# validate Req
|
|
382
|
+
# --consistent-by="corp_id|corp_name" \
|
|
383
|
+
# --consistent-by="corp_name|corp_id" \
|
|
382
384
|
ivalidate --case-insensitive --pretty -t $REQ \
|
|
383
385
|
--log-to=validation_errors \
|
|
384
386
|
--not-null="req_no" \
|
|
@@ -389,6 +391,8 @@ ivalidate --case-insensitive --pretty -t $REQ \
|
|
|
389
391
|
--match="corp_id/[a-zA-Z0-9]/" \
|
|
390
392
|
--not-null="corp_name" \
|
|
391
393
|
--match="corp_name/[a-zA-Z0-9]/" \
|
|
394
|
+
--not-null="costcenter_id" \
|
|
395
|
+
--match="costcenter_id/[a-zA-Z0-9]/" \
|
|
392
396
|
--not-null="req_line_number" \
|
|
393
397
|
--match="req_line_number/^[1-9][0-9]*$/" \
|
|
394
398
|
--not-null="item_id" \
|
|
@@ -397,8 +401,6 @@ ivalidate --case-insensitive --pretty -t $REQ \
|
|
|
397
401
|
--match="vendor_name/[a-zA-Z0-9]/" \
|
|
398
402
|
--not-null="vendor_code" \
|
|
399
403
|
--match="vendor_code/[a-zA-Z0-9]/" \
|
|
400
|
-
--consistent-by="corp_id|corp_name" \
|
|
401
|
-
--consistent-by="corp_name|corp_id" \
|
|
402
404
|
--rquery="(item_id not like '%~%' and item_id not in (select item_id from items)) -- item_id does not reference items.item_id" \
|
|
403
405
|
--cross-reference="corp_id|$GL.corp_acct_no" \
|
|
404
406
|
--cross-reference="corp_name|$GL.corp_acct_name" \
|
data/idata.gemspec
CHANGED
|
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
|
|
|
8
8
|
spec.version = Idata::VERSION
|
|
9
9
|
spec.authors = ["Nghi Pham"]
|
|
10
10
|
spec.email = ["minhnghivn@gmail.com"]
|
|
11
|
-
spec.description = %q{
|
|
12
|
-
spec.summary = %q{
|
|
11
|
+
spec.description = %q{Included: iload, ivalidate, isanitize, ipatch, ieval, iexpor}
|
|
12
|
+
spec.summary = %q{Data validation utilities}
|
|
13
13
|
spec.homepage = "https://github.com/minhnghivn/idata"
|
|
14
14
|
spec.license = "MIT"
|
|
15
15
|
|
data/lib/idata/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: idata
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.33
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nghi Pham
|
|
@@ -66,7 +66,7 @@ dependencies:
|
|
|
66
66
|
- - ~>
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
68
|
version: '0.16'
|
|
69
|
-
description:
|
|
69
|
+
description: 'Included: iload, ivalidate, isanitize, ipatch, ieval, iexpor'
|
|
70
70
|
email:
|
|
71
71
|
- minhnghivn@gmail.com
|
|
72
72
|
executables:
|
|
@@ -121,5 +121,5 @@ rubyforge_project:
|
|
|
121
121
|
rubygems_version: 2.2.1
|
|
122
122
|
signing_key:
|
|
123
123
|
specification_version: 4
|
|
124
|
-
summary:
|
|
124
|
+
summary: Data validation utilities
|
|
125
125
|
test_files: []
|