idata 0.0.2 → 0.0.3

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/iexport +19 -3
  3. data/lib/idata/version.rb +1 -1
  4. metadata +79 -103
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: de1fa33723709e45d67e5495ed8ca37134878e0c
4
+ data.tar.gz: bd2ed5bb808e59a51289a8f6c43094dbc250b57f
5
+ SHA512:
6
+ metadata.gz: d7e6f3453ba1f48d6544cce26965ae1886b4e075adcef4afb2d966430d26e08ddd3796f125c8956b1daaf360923bfcd1cf57d20e77319cd4b397d5c336364a53
7
+ data.tar.gz: c3ee509d9390d2f495a99441458b7c3c90a9a5d295969b37ae4653585b904236c6d7c8a45fd7dbb317a91c1df153521a98160ca8b3fad41f35dc099bc9ef1669
@@ -17,6 +17,7 @@ require 'fileutils'
17
17
  SUPPORTED_INPUT_FORMATS = ['CSV']
18
18
  POSTGRESQL_PORT = 5432
19
19
  CSV_DEFAULT_DELIMITER = ','
20
+ CSV_ROW_SEP = "\r\n"
20
21
 
21
22
  $options = {}
22
23
  parser = OptionParser.new("", 24) do |opts|
@@ -26,10 +27,22 @@ parser = OptionParser.new("", 24) do |opts|
26
27
  $options[:format] = v
27
28
  end
28
29
 
30
+ opts.on("--[no-]headers", "Whether or not export the header") do |v|
31
+ $options[:headers] = v
32
+ end
33
+
34
+ opts.on("--[no-]quotes", "Quote null values") do |v|
35
+ $options[:quotes] = v
36
+ end
37
+
29
38
  opts.on("--delim DELIMITER", "CSV delimiter") do |v|
30
39
  $options[:delim] = v
31
40
  end
32
41
 
42
+ opts.on("--linebreak CHAR", "") do |v|
43
+ $options[:linebreak] = v
44
+ end
45
+
33
46
  opts.on("-t", "--table TABLE", "Table name to be created") do |v|
34
47
  $options[:table] = v
35
48
  end
@@ -79,7 +92,7 @@ EXAMPLES
79
92
  -------------------------------------------------------
80
93
 
81
94
  ruby export.rb --host=localhost --username=postgres --database=db --table=items \\
82
- --output=/tmp/data.csv --format=csv --delim="\\t" \\
95
+ --output=/tmp/data.csv --format=csv --delim="\\t" --linebreak=$'\\r\\n' \\
83
96
  --select="id, name AS vendor_name, age" --where="active = 1"
84
97
 
85
98
  eos
@@ -132,7 +145,10 @@ end
132
145
  # Default value
133
146
  $options[:listen] ||= POSTGRESQL_PORT
134
147
  $options[:delim] ||= CSV_DEFAULT_DELIMITER
148
+ $options[:linebreak] ||= CSV_ROW_SEP
135
149
  $options[:delim] = "\t" if $options[:delim] == '\t'
150
+ $options[:headers] ||= false
151
+ $options[:quotes] ||= false
136
152
  $options[:select] ||= '*'
137
153
  $options[:where] ||= 'true'
138
154
 
@@ -151,9 +167,9 @@ class Product < ActiveRecord::Base
151
167
  self.table_name = $options[:table]
152
168
  end
153
169
 
154
- CSV.open($options[:output], "wb", :col_sep => $options[:delim]) do |csv|
170
+ CSV.open($options[:output], "wb", :col_sep => $options[:delim], :row_sep => $options[:linebreak], :force_quotes => $options[:quotes]) do |csv|
155
171
  scope = Product.select($options[:select]).where($options[:where])
156
- csv << scope.first.attributes.keys
172
+ csv << scope.first.attributes.keys if $options[:headers]
157
173
 
158
174
  scope.each do |item|
159
175
  csv << item.attributes.values
@@ -1,3 +1,3 @@
1
1
  module Idata
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,86 +1,75 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: idata
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
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
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-04-21 00:00:00 +07:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
11
+ date: 2014-04-21 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:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 9
30
- segments:
31
- - 1
32
- - 3
33
- version: "1.3"
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
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:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 25
45
- segments:
46
- - 0
47
- - 9
48
- version: "0.9"
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'
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:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- hash: 27
60
- segments:
61
- - 4
62
- - 0
63
- version: "4.0"
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0.9'
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:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- hash: 3
75
- segments:
76
- - 0
77
- version: "0"
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'
78
62
  type: :runtime
79
- version_requirements: *id004
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
80
69
  description: Tools for importing data from raw files
81
- email:
70
+ email:
82
71
  - minhnghivn@gmail.com
83
- executables:
72
+ executables:
84
73
  - iload
85
74
  - ieval
86
75
  - ipatch
@@ -88,57 +77,44 @@ executables:
88
77
  - iexport
89
78
  - isanitize
90
79
  extensions: []
91
-
92
80
  extra_rdoc_files: []
93
-
94
- files:
81
+ files:
95
82
  - .gitignore
96
83
  - Gemfile
97
84
  - LICENSE.txt
98
85
  - README.md
99
86
  - Rakefile
100
- - idata.gemspec
101
- - lib/idata.rb
102
- - lib/idata/version.rb
103
- - bin/iload
104
87
  - bin/ieval
105
- - bin/ipatch
106
- - bin/ivalidate
107
88
  - bin/iexport
89
+ - bin/iload
90
+ - bin/ipatch
108
91
  - bin/isanitize
109
- has_rdoc: true
110
- homepage: ""
111
- licenses:
92
+ - bin/ivalidate
93
+ - idata.gemspec
94
+ - lib/idata.rb
95
+ - lib/idata/version.rb
96
+ homepage: ''
97
+ licenses:
112
98
  - MIT
99
+ metadata: {}
113
100
  post_install_message:
114
101
  rdoc_options: []
115
-
116
- require_paths:
102
+ require_paths:
117
103
  - lib
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"
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'
136
114
  requirements: []
137
-
138
115
  rubyforge_project:
139
- rubygems_version: 1.3.7
116
+ rubygems_version: 2.2.1
140
117
  signing_key:
141
- specification_version: 3
118
+ specification_version: 4
142
119
  summary: Tools for importing data from raw files
143
120
  test_files: []
144
-