idata 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/bin/iexport CHANGED
@@ -18,6 +18,7 @@ SUPPORTED_INPUT_FORMATS = ['CSV']
18
18
  POSTGRESQL_PORT = 5432
19
19
  CSV_DEFAULT_DELIMITER = ','
20
20
  CSV_ROW_SEP = "\r\n"
21
+ CSV_DEFAULT_QUOTE_CHAR = '"'
21
22
 
22
23
  $options = {}
23
24
  parser = OptionParser.new("", 24) do |opts|
@@ -31,9 +32,17 @@ parser = OptionParser.new("", 24) do |opts|
31
32
  $options[:headers] = v
32
33
  end
33
34
 
35
+ opts.on("--[no-]quote-empty", "Whether or not export the header") do |v|
36
+ $options[:quote_empty] = v
37
+ end
38
+
34
39
  opts.on("--[no-]quotes", "Quote null values") do |v|
35
40
  $options[:quotes] = v
36
41
  end
42
+
43
+ opts.on("--quote-char CHAR", "Quote null values") do |v|
44
+ $options[:quote_char] = v
45
+ end
37
46
 
38
47
  opts.on("--delim DELIMITER", "CSV delimiter") do |v|
39
48
  $options[:delim] = v
@@ -146,9 +155,11 @@ end
146
155
  $options[:listen] ||= POSTGRESQL_PORT
147
156
  $options[:delim] ||= CSV_DEFAULT_DELIMITER
148
157
  $options[:linebreak] ||= CSV_ROW_SEP
158
+ $options[:quote_char] ||= CSV_DEFAULT_QUOTE_CHAR
149
159
  $options[:delim] = "\t" if $options[:delim] == '\t'
150
160
  $options[:headers] ||= false
151
161
  $options[:quotes] ||= false
162
+ $options[:quote_empty] ||= false
152
163
  $options[:select] ||= '*'
153
164
  $options[:where] ||= 'true'
154
165
 
@@ -167,12 +178,17 @@ class Product < ActiveRecord::Base
167
178
  self.table_name = $options[:table]
168
179
  end
169
180
 
170
- CSV.open($options[:output], "wb", :col_sep => $options[:delim], :row_sep => $options[:linebreak], :force_quotes => $options[:quotes]) do |csv|
181
+ CSV.open($options[:output], "wb", :quote_char => $options[:quote_char], :col_sep => $options[:delim], :row_sep => $options[:linebreak], :force_quotes => $options[:quotes]) do |csv|
171
182
  scope = Product.select($options[:select]).where($options[:where])
172
183
  csv << scope.first.attributes.keys if $options[:headers]
173
184
 
174
185
  scope.each do |item|
175
- csv << item.attributes.values
186
+ attrs = item.attributes.values
187
+ if $options[:quote_empty]
188
+ attrs.map!{|e| e == "" ? nil : e }
189
+ end
190
+
191
+ csv << attrs
176
192
  end
177
193
  end
178
194
 
Binary file
data/lib/idata/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Idata
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
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.3
3
+ version: !ruby/object:Gem::Version
4
+ hash: 23
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 4
10
+ version: 0.0.4
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-22 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,8 +88,10 @@ 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
@@ -90,31 +103,43 @@ files:
90
103
  - bin/ipatch
91
104
  - bin/isanitize
92
105
  - bin/ivalidate
106
+ - guideline/Guideline.docx
93
107
  - idata.gemspec
94
108
  - lib/idata.rb
95
109
  - lib/idata/version.rb
96
- homepage: ''
97
- licenses:
110
+ has_rdoc: true
111
+ homepage: ""
112
+ licenses:
98
113
  - MIT
99
- metadata: {}
100
114
  post_install_message:
101
115
  rdoc_options: []
102
- require_paths:
116
+
117
+ require_paths:
103
118
  - 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'
119
+ required_ruby_version: !ruby/object:Gem::Requirement
120
+ none: false
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ hash: 3
125
+ segments:
126
+ - 0
127
+ version: "0"
128
+ required_rubygems_version: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ hash: 3
134
+ segments:
135
+ - 0
136
+ version: "0"
114
137
  requirements: []
138
+
115
139
  rubyforge_project:
116
- rubygems_version: 2.2.1
140
+ rubygems_version: 1.3.7
117
141
  signing_key:
118
- specification_version: 4
142
+ specification_version: 3
119
143
  summary: Tools for importing data from raw files
120
144
  test_files: []
145
+
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: de1fa33723709e45d67e5495ed8ca37134878e0c
4
- data.tar.gz: bd2ed5bb808e59a51289a8f6c43094dbc250b57f
5
- SHA512:
6
- metadata.gz: d7e6f3453ba1f48d6544cce26965ae1886b4e075adcef4afb2d966430d26e08ddd3796f125c8956b1daaf360923bfcd1cf57d20e77319cd4b397d5c336364a53
7
- data.tar.gz: c3ee509d9390d2f495a99441458b7c3c90a9a5d295969b37ae4653585b904236c6d7c8a45fd7dbb317a91c1df153521a98160ca8b3fad41f35dc099bc9ef1669