idata 0.0.2 → 0.0.3

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