idata 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/bin/iload +24 -3
  2. data/lib/idata/version.rb +1 -1
  3. metadata +103 -79
  4. checksums.yaml +0 -7
data/bin/iload CHANGED
@@ -17,6 +17,15 @@ require 'fileutils'
17
17
  SUPPORTED_INPUT_FORMATS = ['CSV', 'FX']
18
18
  POSTGRESQL_PORT = 5432
19
19
  CSV_DEFAULT_DELIMITER = ','
20
+ CSV_DEFAULT_QUOTE = '"'
21
+
22
+ PG_TAB = "E'\t'"
23
+ PG_BACKSPACE = "E'\b'"
24
+
25
+ PG_CHAR_MAP = {
26
+ "\t" => PG_TAB,
27
+ "\b" => PG_BACKSPACE
28
+ }
20
29
 
21
30
  $options = {}
22
31
  parser = OptionParser.new("", 24) do |opts|
@@ -34,6 +43,10 @@ parser = OptionParser.new("", 24) do |opts|
34
43
  $options[:delim] = v
35
44
  end
36
45
 
46
+ opts.on("--quote QUOTE", "Default to '\"'") do |v|
47
+ $options[:quote] = v
48
+ end
49
+
37
50
  # opts.on("-o", "--output CSV", "Temporary CSV output file") do |v|
38
51
  # $options[:output] = v
39
52
  # end
@@ -141,7 +154,8 @@ end
141
154
  # Default value
142
155
  $options[:listen] ||= POSTGRESQL_PORT
143
156
  $options[:delim] ||= CSV_DEFAULT_DELIMITER
144
- $options[:delim] = "\t" if $options[:delim] == '\t'
157
+ $options[:quote] ||= CSV_DEFAULT_QUOTE
158
+
145
159
  $tmpfile = "/tmp/#{Digest::SHA1.hexdigest(rand(100000).to_s)}.csv"
146
160
 
147
161
  # Database dump
@@ -233,9 +247,16 @@ class MyParser
233
247
  query(create_table_sql)
234
248
 
235
249
  # Dump data
236
- pg_tab = "E'\t'" if $options[:delim] == "\t"
250
+ #pg_tab = "E'\t'" if $options[:delim] == "\t"
251
+
252
+ tab = PG_CHAR_MAP[$options[:delim]]
253
+ tab ||= "'#{$options[:delim]}'"
254
+
255
+ quote = PG_CHAR_MAP[$options[:quote]]
256
+ quote = "'#{$options[:quote]}'"
257
+
237
258
  insert_data_sql = headers.map{|e| "\"#{e}\""}.join(",")
238
- insert_data_sql = "COPY #{$options[:table]}( #{insert_data_sql} ) FROM '#{csv_path}' DELIMITER #{pg_tab} CSV HEADER QUOTE E'\b';"
259
+ insert_data_sql = "COPY #{$options[:table]}( #{insert_data_sql} ) FROM '#{csv_path}' DELIMITER #{tab} CSV HEADER QUOTE #{quote};"
239
260
 
240
261
  # Change output file permission so that postgres user can read it
241
262
  begin
data/lib/idata/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Idata
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,75 +1,86 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: idata
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.1
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 2
10
+ version: 0.0.2
5
11
  platform: ruby
6
- authors:
12
+ authors:
7
13
  - Nghi Pham
8
14
  autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
- date: 2014-04-21 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2014-04-21 00:00:00 +07:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
14
22
  name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - '>='
18
- - !ruby/object:Gem::Version
19
- version: '1.3'
20
- type: :development
21
23
  prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - '>='
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: '0.9'
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 9
30
+ segments:
31
+ - 1
32
+ - 3
33
+ version: "1.3"
34
34
  type: :development
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: rake
35
38
  prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - '>='
39
- - !ruby/object:Gem::Version
40
- version: '0.9'
41
- - !ruby/object:Gem::Dependency
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 25
45
+ segments:
46
+ - 0
47
+ - 9
48
+ version: "0.9"
49
+ type: :development
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
42
52
  name: rails
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - '>='
46
- - !ruby/object:Gem::Version
47
- version: '4.0'
48
- type: :runtime
49
53
  prerelease: false
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:
59
- - - '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
54
+ requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ hash: 27
60
+ segments:
61
+ - 4
62
+ - 0
63
+ version: "4.0"
62
64
  type: :runtime
65
+ version_requirements: *id003
66
+ - !ruby/object:Gem::Dependency
67
+ name: pg
63
68
  prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - '>='
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
+ requirement: &id004 !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ hash: 3
75
+ segments:
76
+ - 0
77
+ version: "0"
78
+ type: :runtime
79
+ version_requirements: *id004
69
80
  description: Tools for importing data from raw files
70
- email:
81
+ email:
71
82
  - minhnghivn@gmail.com
72
- executables:
83
+ executables:
73
84
  - iload
74
85
  - ieval
75
86
  - ipatch
@@ -77,44 +88,57 @@ executables:
77
88
  - iexport
78
89
  - isanitize
79
90
  extensions: []
91
+
80
92
  extra_rdoc_files: []
81
- files:
93
+
94
+ files:
82
95
  - .gitignore
83
96
  - Gemfile
84
97
  - LICENSE.txt
85
98
  - README.md
86
99
  - Rakefile
87
- - bin/ieval
88
- - bin/iexport
89
- - bin/iload
90
- - bin/ipatch
91
- - bin/isanitize
92
- - bin/ivalidate
93
100
  - idata.gemspec
94
101
  - lib/idata.rb
95
102
  - lib/idata/version.rb
96
- homepage: ''
97
- licenses:
103
+ - bin/iload
104
+ - bin/ieval
105
+ - bin/ipatch
106
+ - bin/ivalidate
107
+ - bin/iexport
108
+ - bin/isanitize
109
+ has_rdoc: true
110
+ homepage: ""
111
+ licenses:
98
112
  - MIT
99
- metadata: {}
100
113
  post_install_message:
101
114
  rdoc_options: []
102
- require_paths:
115
+
116
+ require_paths:
103
117
  - lib
104
- required_ruby_version: !ruby/object:Gem::Requirement
105
- requirements:
106
- - - '>='
107
- - !ruby/object:Gem::Version
108
- version: '0'
109
- required_rubygems_version: !ruby/object:Gem::Requirement
110
- requirements:
111
- - - '>='
112
- - !ruby/object:Gem::Version
113
- version: '0'
118
+ required_ruby_version: !ruby/object:Gem::Requirement
119
+ none: false
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ hash: 3
124
+ segments:
125
+ - 0
126
+ version: "0"
127
+ required_rubygems_version: !ruby/object:Gem::Requirement
128
+ none: false
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ hash: 3
133
+ segments:
134
+ - 0
135
+ version: "0"
114
136
  requirements: []
137
+
115
138
  rubyforge_project:
116
- rubygems_version: 2.2.1
139
+ rubygems_version: 1.3.7
117
140
  signing_key:
118
- specification_version: 4
141
+ specification_version: 3
119
142
  summary: Tools for importing data from raw files
120
143
  test_files: []
144
+
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 27e594b49b95b536a5d01ed6f90155751104ec1a
4
- data.tar.gz: a4e52832bccdc2ab55ae33e7e6f659857b800991
5
- SHA512:
6
- metadata.gz: f55f15be3fbc959bcfacdb68f2b45e5b97fa560ee953890a66eb5a4715366019240e61c1b9ef36df9ed77d0ba396d6e38b32177a555d75aeb4f0deb04ae99757
7
- data.tar.gz: 0e8061590a8d5da84ee9f74d137c2f6d022a58009d9d56ca965241c10e064a9cde59fb1f0d784cab643d88d19c1cdbe3a2f688ce2bbfcc42f4cd50b14e2bcfda