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.
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
-