csv2sql 0.3.1 → 0.3.070927135848
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.
- data/{README.txt → README} +0 -0
- data/lib/csv2sql.rb +11 -25
- metadata +38 -58
- data/History.txt +0 -4
- data/Manifest.txt +0 -9
- data/Rakefile +0 -31
data/{README.txt → README}
RENAMED
File without changes
|
data/lib/csv2sql.rb
CHANGED
@@ -28,11 +28,9 @@ require 'pathname'
|
|
28
28
|
#
|
29
29
|
class Csv2sql
|
30
30
|
|
31
|
-
VERSION = '0.3.1'
|
32
|
-
|
33
31
|
@@defaults = {
|
34
|
-
:before
|
35
|
-
:after
|
32
|
+
:before => "", # can be changed to "start transaction;\n"
|
33
|
+
:after => ";\n" # can be changes to "commit;\n"
|
36
34
|
}
|
37
35
|
|
38
36
|
def self.default_value_filter(v, i=nil, j=nil)
|
@@ -107,10 +105,8 @@ class Csv2sql
|
|
107
105
|
# :row_format
|
108
106
|
# :row_glue
|
109
107
|
# :after
|
110
|
-
# :when_empty
|
111
108
|
#
|
112
109
|
def to_any(args={})
|
113
|
-
args[:when_empty] ||= ""
|
114
110
|
args[:values_glue] ||= ", "
|
115
111
|
args[:row_format] ||= "%s"
|
116
112
|
args[:row_glue] ||= "\n"
|
@@ -126,14 +122,10 @@ class Csv2sql
|
|
126
122
|
r << args[:row_format].call(values) # LOOK OUT: args[:values_glue] ignored
|
127
123
|
end
|
128
124
|
end
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
r
|
134
|
-
else
|
135
|
-
args[:when_empty]
|
136
|
-
end
|
125
|
+
r = r.join args[:row_glue]
|
126
|
+
r = args[:before] + r if args[:before]
|
127
|
+
r = r + args[:after] if args[:after]
|
128
|
+
r
|
137
129
|
end
|
138
130
|
|
139
131
|
# Parse file
|
@@ -143,16 +135,10 @@ class Csv2sql
|
|
143
135
|
#
|
144
136
|
def parse(args={})
|
145
137
|
args[:value_filter] ||= Csv2sql.method :default_value_filter
|
146
|
-
|
147
|
-
last_offset = offset = 0
|
148
|
-
i = 0
|
149
|
-
begin
|
150
|
-
values = []
|
151
|
-
last_offset = offset
|
152
|
-
parsed_cells, offset = CSV.parse_row(data, offset, values)
|
153
|
-
# TODO: ignore blank lines? what about single column csv files with blank values?
|
138
|
+
CSV.open(@filename, 'r').each_with_index do |values, i|
|
154
139
|
values = args[:values_filter].call(values, i) if args[:values_filter]
|
155
140
|
if values
|
141
|
+
|
156
142
|
if args[:value_filter] # LOOK OUT! value_filter is for single value, values_filter is for whole row
|
157
143
|
j = -1
|
158
144
|
values = values.map do |value|
|
@@ -160,11 +146,11 @@ class Csv2sql
|
|
160
146
|
args[:value_filter].call(value, i, j)
|
161
147
|
end
|
162
148
|
end
|
149
|
+
|
163
150
|
yield values if values
|
151
|
+
|
164
152
|
end
|
165
|
-
|
166
|
-
end while parsed_cells > 0
|
167
|
-
#raise "Illegal format error in #{@filename} at row starting with the line #{i} (last offset #{offset} not the same as the data size #{data.size})" if offset != data.size
|
153
|
+
end
|
168
154
|
end
|
169
155
|
|
170
156
|
end
|
metadata
CHANGED
@@ -1,72 +1,52 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.9.2
|
3
|
+
specification_version: 1
|
2
4
|
name: csv2sql
|
3
5
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
6
|
+
version: 0.3.070927135848
|
7
|
+
date: 2007-09-27 00:00:00 +01:00
|
8
|
+
summary: Csv2sql provides an easy way to convert comma separated files to sql
|
9
|
+
require_paths:
|
10
|
+
- lib
|
11
|
+
email: ruby@mirekrusin.com
|
12
|
+
homepage: http://mirekrusin.com/ruby/csv2sql
|
13
|
+
rubyforge_project:
|
14
|
+
description:
|
15
|
+
autorequire: csv2sql
|
16
|
+
default_executable:
|
17
|
+
bindir: bin
|
18
|
+
has_rdoc: true
|
19
|
+
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.0.0
|
24
|
+
version:
|
5
25
|
platform: ruby
|
26
|
+
signing_key:
|
27
|
+
cert_chain:
|
28
|
+
post_install_message:
|
6
29
|
authors:
|
7
30
|
- Mirek Rusin
|
8
|
-
autorequire:
|
9
|
-
bindir: bin
|
10
|
-
cert_chain: []
|
11
|
-
|
12
|
-
date: 2008-07-07 00:00:00 +01:00
|
13
|
-
default_executable:
|
14
|
-
dependencies:
|
15
|
-
- !ruby/object:Gem::Dependency
|
16
|
-
name: hoe
|
17
|
-
version_requirement:
|
18
|
-
version_requirements: !ruby/object:Gem::Requirement
|
19
|
-
requirements:
|
20
|
-
- - ">="
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 1.6.0
|
23
|
-
version:
|
24
|
-
description: Csv2sql provides an easy way to convert comma separated files to sql
|
25
|
-
email: ruby@mirekrusin.com
|
26
|
-
executables: []
|
27
|
-
|
28
|
-
extensions: []
|
29
|
-
|
30
|
-
extra_rdoc_files:
|
31
|
-
- History.txt
|
32
|
-
- Manifest.txt
|
33
|
-
- README.txt
|
34
31
|
files:
|
35
|
-
-
|
36
|
-
- Manifest.txt
|
37
|
-
- README.txt
|
38
|
-
- Rakefile
|
39
|
-
- lib/csv2sql.rb
|
32
|
+
- tests/files
|
40
33
|
- tests/files/gmclient.csv
|
41
34
|
- tests/files/multilinecells.csv
|
42
35
|
- tests/instant.rb
|
43
36
|
- tests/test.rb
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
version: "0"
|
57
|
-
version:
|
58
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
59
|
-
requirements:
|
60
|
-
- - ">="
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: "0"
|
63
|
-
version:
|
37
|
+
- lib/csv2sql.rb
|
38
|
+
- README
|
39
|
+
test_files: []
|
40
|
+
|
41
|
+
rdoc_options: []
|
42
|
+
|
43
|
+
extra_rdoc_files:
|
44
|
+
- README
|
45
|
+
executables: []
|
46
|
+
|
47
|
+
extensions: []
|
48
|
+
|
64
49
|
requirements: []
|
65
50
|
|
66
|
-
|
67
|
-
rubygems_version: 1.0.1
|
68
|
-
signing_key:
|
69
|
-
specification_version: 2
|
70
|
-
summary: Csv2sql provides an easy way to convert comma separated files to sql
|
71
|
-
test_files: []
|
51
|
+
dependencies: []
|
72
52
|
|
data/History.txt
DELETED
data/Manifest.txt
DELETED
data/Rakefile
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'rubygems'
|
3
|
-
require 'hoe'
|
4
|
-
|
5
|
-
$:.unshift(File.dirname(__FILE__) + "/lib")
|
6
|
-
require 'csv2sql'
|
7
|
-
|
8
|
-
RUBYFORGE_PROJECT = 'csv2sql'
|
9
|
-
|
10
|
-
Hoe.new('Csv2sql', Csv2sql::VERSION) do |p|
|
11
|
-
p.name = RUBYFORGE_PROJECT
|
12
|
-
p.author = "Mirek Rusin"
|
13
|
-
p.email = 'ruby@mirekrusin.com'
|
14
|
-
p.summary = "Csv2sql provides an easy way to convert comma separated files to sql"
|
15
|
-
p.description = "Csv2sql provides an easy way to convert comma separated files to sql"
|
16
|
-
p.url = "http://rubyforge.com/projects/#{RUBYFORGE_PROJECT}"
|
17
|
-
p.clean_globs = ['test/actual'] # Remove this directory on "rake clean"
|
18
|
-
p.remote_rdoc_dir = '' # Release to root
|
19
|
-
p.changes = p.paragraphs_of('CHANGELOG', 0..1).join("\n\n")
|
20
|
-
#p.rsync_args << ' --exclude=statsvn/'
|
21
|
-
# * extra_deps - An array of rubygem dependencies.
|
22
|
-
end
|
23
|
-
|
24
|
-
desc 'Publish RDoc to RubyForge via pscp'
|
25
|
-
task :publish_docs_via_pscp => [:clean, :docs] do
|
26
|
-
config = YAML.load(File.read(File.expand_path("~/.rubyforge/user-config.yml")))
|
27
|
-
sh %{pscp -r doc/* #{config["username"]}@rubyforge.org:/var/www/gforge-projects/#{RUBYFORGE_PROJECT}/}
|
28
|
-
end
|
29
|
-
|
30
|
-
desc "Release and publish documentation"
|
31
|
-
task :default => [:release, :publish_docs_via_pscp]
|