idata 0.1.13 → 0.1.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/bin/ivalidate +30 -4
  3. data/lib/idata/version.rb +1 -1
  4. 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 unique fields: #{field}"
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
@@ -1,3 +1,3 @@
1
1
  module Idata
2
- VERSION = "0.1.13"
2
+ VERSION = "0.1.14"
3
3
  end
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
- hash: 1
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
- date: 2014-05-06 00:00:00 +07:00
19
- default_executable:
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
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
27
17
  - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 9
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
- requirement: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
42
24
  - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 35
45
- segments:
46
- - 10
47
- - 0
48
- version: "10.0"
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
- requirement: &id003 !ruby/object:Gem::Requirement
55
- none: false
56
- requirements:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
57
38
  - - ~>
58
- - !ruby/object:Gem::Version
59
- hash: 27
60
- segments:
61
- - 4
62
- - 0
63
- version: "4.0"
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
- requirement: &id004 !ruby/object:Gem::Requirement
70
- none: false
71
- requirements:
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
- hash: 43
75
- segments:
76
- - 0
77
- - 16
78
- version: "0.16"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.16'
79
62
  type: :runtime
80
- version_requirements: *id004
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
- none: false
123
- requirements:
124
- - - ">="
125
- - !ruby/object:Gem::Version
126
- hash: 3
127
- segments:
128
- - 0
129
- version: "0"
130
- required_rubygems_version: !ruby/object:Gem::Requirement
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: 1.3.7
118
+ rubygems_version: 2.2.1
143
119
  signing_key:
144
- specification_version: 3
145
- summary: "Tools include: iload, ivalidate, isanitize, ipatch, ieval, iexport"
120
+ specification_version: 4
121
+ summary: 'Tools include: iload, ivalidate, isanitize, ipatch, ieval, iexport'
146
122
  test_files: []
147
-