idata 0.1.13 → 0.1.14
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 +7 -0
- data/bin/ivalidate +30 -4
- data/lib/idata/version.rb +1 -1
- metadata +69 -94
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 909830ddf47bc1436688536e1774f339cdd54f91
|
4
|
+
data.tar.gz: 899da164dacadb0dd593b7e22dd7d6d2c419b008
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 92bfdfb56de4e9d91f6004a145275e39ddb991c5a9d5252738f99a615da84be126db43278fb01c10290668138373a3391925799d20f03c5d29f99ddff2b183a5
|
7
|
+
data.tar.gz: 87b291b70140c3cbccd109a5c512e3be8b194ed1ecb0e534bb380b823ad1fd4cfef82ad48484bd6b5817f736cfe6ed17d80ab21315c371ddeb2f70f9e1863760
|
data/bin/ivalidate
CHANGED
@@ -23,7 +23,8 @@ $options = {
|
|
23
23
|
:match => [],
|
24
24
|
:not_match => [],
|
25
25
|
:cross_reference => [],
|
26
|
-
:query => []
|
26
|
+
:query => [],
|
27
|
+
:rquery => []
|
27
28
|
}
|
28
29
|
parser = OptionParser.new("", 24) do |opts|
|
29
30
|
opts.banner = "\nProgram: Data Validator\nAuthor: MCKI\n\n"
|
@@ -51,6 +52,10 @@ parser = OptionParser.new("", 24) do |opts|
|
|
51
52
|
opts.on("--query QUERY", "Custom query") do |v|
|
52
53
|
$options[:query] << v
|
53
54
|
end
|
55
|
+
|
56
|
+
opts.on("--rquery QUERY", "Custom query") do |v|
|
57
|
+
$options[:rquery] << v
|
58
|
+
end
|
54
59
|
|
55
60
|
opts.on("-t", "--table TABLE", "Table to verify") do |v|
|
56
61
|
$options[:table] = v
|
@@ -176,7 +181,7 @@ ActiveRecord::Base.connection.execute(pre_sql)
|
|
176
181
|
# Check unique field
|
177
182
|
# --------------------------------------------------------------------
|
178
183
|
$options[:unique].each do |field|
|
179
|
-
puts "Checking
|
184
|
+
puts "Checking uniqueness: #{field}"
|
180
185
|
|
181
186
|
uniq_sql = <<-eos
|
182
187
|
UPDATE #{$options[:table]} SET #{$options[:log_to]} = array_to_string(string_to_array(#{$options[:log_to]}, ' || ') || string_to_array('#{field} is not unique', ' || '), ' || ')
|
@@ -209,7 +214,7 @@ end
|
|
209
214
|
$options[:match].each do |value|
|
210
215
|
field = value[/^[^\/]+/]
|
211
216
|
regexp = value[/(?<=\/).*(?=\/)/]
|
212
|
-
puts "Checking REGEXP matching: #{regexp}"
|
217
|
+
puts "Checking REGEXP matching: #{field} ~ #{regexp}"
|
213
218
|
|
214
219
|
match_sql = <<-eos
|
215
220
|
UPDATE #{$options[:table]} SET #{$options[:log_to]} = array_to_string(string_to_array(#{$options[:log_to]}, ' || ') || string_to_array('#{field} does not match [#{regexp.gsub("'", "''")}]', ' || '), ' || ')
|
@@ -278,7 +283,28 @@ $options[:query].each do |query|
|
|
278
283
|
# @todo: poor performance here, think of a better SQL!!!
|
279
284
|
custom_sql = <<-eos
|
280
285
|
UPDATE #{$options[:table]} SET #{$options[:log_to]} = array_to_string(string_to_array(#{$options[:log_to]}, ' || ') || string_to_array('#{message}', ' || '), ' || ')
|
281
|
-
WHERE NOT #{query}
|
286
|
+
WHERE NOT (#{query})
|
287
|
+
eos
|
288
|
+
|
289
|
+
ActiveRecord::Base.connection.execute(custom_sql)
|
290
|
+
end
|
291
|
+
|
292
|
+
# --------------------------------------------------------------------
|
293
|
+
# Custom validation
|
294
|
+
# --------------------------------------------------------------------
|
295
|
+
$options[:rquery].each do |query|
|
296
|
+
if query.split("--").count > 1
|
297
|
+
message = query.split("--").last.strip
|
298
|
+
else
|
299
|
+
message = "custom-validation"
|
300
|
+
end
|
301
|
+
|
302
|
+
puts "Checking with custom query: #{query[0..50]}#{query.size > 51 ? "..." : "" }"
|
303
|
+
|
304
|
+
# @todo: poor performance here, think of a better SQL!!!
|
305
|
+
custom_sql = <<-eos
|
306
|
+
UPDATE #{$options[:table]} SET #{$options[:log_to]} = array_to_string(string_to_array(#{$options[:log_to]}, ' || ') || string_to_array('#{message}', ' || '), ' || ')
|
307
|
+
WHERE #{query}
|
282
308
|
eos
|
283
309
|
|
284
310
|
ActiveRecord::Base.connection.execute(custom_sql)
|
data/lib/idata/version.rb
CHANGED
metadata
CHANGED
@@ -1,87 +1,75 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: idata
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease: false
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 13
|
10
|
-
version: 0.1.13
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.14
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
6
|
+
authors:
|
13
7
|
- Nghi Pham
|
14
8
|
autorequire:
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2014-05-07 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
22
14
|
name: bundler
|
23
|
-
|
24
|
-
|
25
|
-
none: false
|
26
|
-
requirements:
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
27
17
|
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
segments:
|
31
|
-
- 1
|
32
|
-
- 3
|
33
|
-
version: "1.3"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.3'
|
34
20
|
type: :development
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: rake
|
38
21
|
prerelease: false
|
39
|
-
|
40
|
-
|
41
|
-
requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
42
24
|
- - ~>
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
49
34
|
type: :development
|
50
|
-
version_requirements: *id002
|
51
|
-
- !ruby/object:Gem::Dependency
|
52
|
-
name: rails
|
53
35
|
prerelease: false
|
54
|
-
|
55
|
-
|
56
|
-
requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
57
38
|
- - ~>
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rails
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '4.0'
|
64
48
|
type: :runtime
|
65
|
-
version_requirements: *id003
|
66
|
-
- !ruby/object:Gem::Dependency
|
67
|
-
name: pg
|
68
49
|
prerelease: false
|
69
|
-
|
70
|
-
|
71
|
-
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '4.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: pg
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
72
59
|
- - ~>
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
|
75
|
-
segments:
|
76
|
-
- 0
|
77
|
-
- 16
|
78
|
-
version: "0.16"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.16'
|
79
62
|
type: :runtime
|
80
|
-
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.16'
|
81
69
|
description: Tools for importing data from raw files
|
82
|
-
email:
|
70
|
+
email:
|
83
71
|
- minhnghivn@gmail.com
|
84
|
-
executables:
|
72
|
+
executables:
|
85
73
|
- iload
|
86
74
|
- ieval
|
87
75
|
- ipatch
|
@@ -89,10 +77,8 @@ executables:
|
|
89
77
|
- iexport
|
90
78
|
- isanitize
|
91
79
|
extensions: []
|
92
|
-
|
93
80
|
extra_rdoc_files: []
|
94
|
-
|
95
|
-
files:
|
81
|
+
files:
|
96
82
|
- .gitignore
|
97
83
|
- Gemfile
|
98
84
|
- LICENSE.txt
|
@@ -109,39 +95,28 @@ files:
|
|
109
95
|
- idata.gemspec
|
110
96
|
- lib/idata.rb
|
111
97
|
- lib/idata/version.rb
|
112
|
-
has_rdoc: true
|
113
98
|
homepage: http://bolero.vn
|
114
|
-
licenses:
|
99
|
+
licenses:
|
115
100
|
- MIT
|
101
|
+
metadata: {}
|
116
102
|
post_install_message:
|
117
103
|
rdoc_options: []
|
118
|
-
|
119
|
-
require_paths:
|
104
|
+
require_paths:
|
120
105
|
- lib
|
121
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
none: false
|
132
|
-
requirements:
|
133
|
-
- - ">="
|
134
|
-
- !ruby/object:Gem::Version
|
135
|
-
hash: 3
|
136
|
-
segments:
|
137
|
-
- 0
|
138
|
-
version: "0"
|
106
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
112
|
+
requirements:
|
113
|
+
- - '>='
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: '0'
|
139
116
|
requirements: []
|
140
|
-
|
141
117
|
rubyforge_project:
|
142
|
-
rubygems_version:
|
118
|
+
rubygems_version: 2.2.1
|
143
119
|
signing_key:
|
144
|
-
specification_version:
|
145
|
-
summary:
|
120
|
+
specification_version: 4
|
121
|
+
summary: 'Tools include: iload, ivalidate, isanitize, ipatch, ieval, iexport'
|
146
122
|
test_files: []
|
147
|
-
|