idata 0.0.1 → 0.0.2

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