csv2sql 0.3.1 → 0.3.070927135848

Sign up to get free protection for your applications and to get access to all the features.
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 => "", # can be changed to "start transaction;\n"
35
- :after => ";\n" # can be changes to "commit;\n"
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
- if r.size > 0
130
- r = r.join args[:row_glue]
131
- r = args[:before] + r if args[:before]
132
- r = r + args[:after] if args[:after]
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
- data = open(@filename, 'r').read
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
- i += 1
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.1
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
- - History.txt
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
- has_rdoc: true
45
- homepage: http://rubyforge.com/projects/csv2sql
46
- post_install_message:
47
- rdoc_options:
48
- - --main
49
- - README.txt
50
- require_paths:
51
- - lib
52
- required_ruby_version: !ruby/object:Gem::Requirement
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
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
- rubyforge_project: csv2sql
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
@@ -1,4 +0,0 @@
1
-
2
- === 0.3.0 / 2008-07-07
3
-
4
- * new gem, rdoc public
data/Manifest.txt DELETED
@@ -1,9 +0,0 @@
1
- History.txt
2
- Manifest.txt
3
- README.txt
4
- Rakefile
5
- lib/csv2sql.rb
6
- tests/files/gmclient.csv
7
- tests/files/multilinecells.csv
8
- tests/instant.rb
9
- tests/test.rb
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]