idata 0.1.32 → 0.1.33
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|