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.
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]