postgres-copy 0.3.3 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -3,6 +3,6 @@ source :gemcutter
3
3
  gem 'pg'
4
4
  gem 'activerecord'
5
5
  gem 'rails'
6
- gem 'rake'
6
+ gem 'rake', '0.8.7'
7
7
  gem 'rspec', '~> 2.5'
8
8
  gem 'rspec-core', '~> 2.5'
data/Gemfile.lock CHANGED
@@ -2,12 +2,12 @@ GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
4
  abstract (1.0.0)
5
- actionmailer (3.0.6)
6
- actionpack (= 3.0.6)
5
+ actionmailer (3.0.7)
6
+ actionpack (= 3.0.7)
7
7
  mail (~> 2.2.15)
8
- actionpack (3.0.6)
9
- activemodel (= 3.0.6)
10
- activesupport (= 3.0.6)
8
+ actionpack (3.0.7)
9
+ activemodel (= 3.0.7)
10
+ activesupport (= 3.0.7)
11
11
  builder (~> 2.1.2)
12
12
  erubis (~> 2.6.6)
13
13
  i18n (~> 0.5.0)
@@ -15,64 +15,64 @@ GEM
15
15
  rack-mount (~> 0.6.14)
16
16
  rack-test (~> 0.5.7)
17
17
  tzinfo (~> 0.3.23)
18
- activemodel (3.0.6)
19
- activesupport (= 3.0.6)
18
+ activemodel (3.0.7)
19
+ activesupport (= 3.0.7)
20
20
  builder (~> 2.1.2)
21
21
  i18n (~> 0.5.0)
22
- activerecord (3.0.6)
23
- activemodel (= 3.0.6)
24
- activesupport (= 3.0.6)
22
+ activerecord (3.0.7)
23
+ activemodel (= 3.0.7)
24
+ activesupport (= 3.0.7)
25
25
  arel (~> 2.0.2)
26
26
  tzinfo (~> 0.3.23)
27
- activeresource (3.0.6)
28
- activemodel (= 3.0.6)
29
- activesupport (= 3.0.6)
30
- activesupport (3.0.6)
31
- arel (2.0.9)
27
+ activeresource (3.0.7)
28
+ activemodel (= 3.0.7)
29
+ activesupport (= 3.0.7)
30
+ activesupport (3.0.7)
31
+ arel (2.0.10)
32
32
  builder (2.1.2)
33
33
  diff-lcs (1.1.2)
34
34
  erubis (2.6.6)
35
35
  abstract (>= 1.0.0)
36
36
  i18n (0.5.0)
37
- mail (2.2.15)
37
+ mail (2.2.19)
38
38
  activesupport (>= 2.3.6)
39
39
  i18n (>= 0.4.0)
40
40
  mime-types (~> 1.16)
41
41
  treetop (~> 1.4.8)
42
42
  mime-types (1.16)
43
- pg (0.10.1)
43
+ pg (0.11.0)
44
44
  polyglot (0.3.1)
45
- rack (1.2.2)
45
+ rack (1.2.3)
46
46
  rack-mount (0.6.14)
47
47
  rack (>= 1.0.0)
48
48
  rack-test (0.5.7)
49
49
  rack (>= 1.0)
50
- rails (3.0.6)
51
- actionmailer (= 3.0.6)
52
- actionpack (= 3.0.6)
53
- activerecord (= 3.0.6)
54
- activeresource (= 3.0.6)
55
- activesupport (= 3.0.6)
50
+ rails (3.0.7)
51
+ actionmailer (= 3.0.7)
52
+ actionpack (= 3.0.7)
53
+ activerecord (= 3.0.7)
54
+ activeresource (= 3.0.7)
55
+ activesupport (= 3.0.7)
56
56
  bundler (~> 1.0)
57
- railties (= 3.0.6)
58
- railties (3.0.6)
59
- actionpack (= 3.0.6)
60
- activesupport (= 3.0.6)
57
+ railties (= 3.0.7)
58
+ railties (3.0.7)
59
+ actionpack (= 3.0.7)
60
+ activesupport (= 3.0.7)
61
61
  rake (>= 0.8.7)
62
62
  thor (~> 0.14.4)
63
- rake (0.8.7)
64
- rspec (2.5.0)
65
- rspec-core (~> 2.5.0)
66
- rspec-expectations (~> 2.5.0)
67
- rspec-mocks (~> 2.5.0)
68
- rspec-core (2.5.1)
69
- rspec-expectations (2.5.0)
63
+ rake (0.9.0)
64
+ rspec (2.6.0)
65
+ rspec-core (~> 2.6.0)
66
+ rspec-expectations (~> 2.6.0)
67
+ rspec-mocks (~> 2.6.0)
68
+ rspec-core (2.6.3)
69
+ rspec-expectations (2.6.0)
70
70
  diff-lcs (~> 1.1.2)
71
- rspec-mocks (2.5.0)
71
+ rspec-mocks (2.6.0)
72
72
  thor (0.14.6)
73
73
  treetop (1.4.9)
74
74
  polyglot (>= 0.3.1)
75
- tzinfo (0.3.26)
75
+ tzinfo (0.3.27)
76
76
 
77
77
  PLATFORMS
78
78
  ruby
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.3
1
+ 0.3.4
@@ -27,7 +27,7 @@ module ActiveRecord
27
27
  line = io.gets
28
28
  columns_list = options[:columns] || line.strip.split(options[:delimiter])
29
29
  columns_list = columns_list.map{|c| options[:map][c.to_s] } if options[:map]
30
- connection.execute "COPY #{quoted_table_name} (#{columns_list.join(",")}) FROM STDIN WITH DELIMITER '#{options[:delimiter]}' CSV"
30
+ connection.execute %{COPY #{quoted_table_name} ("#{columns_list.join('","')}") FROM STDIN WITH DELIMITER '#{options[:delimiter]}' CSV}
31
31
  while line = io.gets do
32
32
  next if line.strip.size == 0
33
33
  if block_given?
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{postgres-copy}
8
- s.version = "0.3.3"
8
+ s.version = "0.3.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Diogo Biazus"]
12
- s.date = %q{2011-04-11}
12
+ s.date = %q{2011-05-26}
13
13
  s.description = %q{Now you can use the super fast COPY for import/export data directly from your AR models.}
14
14
  s.email = %q{diogob@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -30,6 +30,8 @@ Gem::Specification.new do |s|
30
30
  "lib/postgres-copy/zip_responder.rb",
31
31
  "postgres-copy.gemspec",
32
32
  "spec/fixtures/extra_field.rb",
33
+ "spec/fixtures/reserved_word_model.rb",
34
+ "spec/fixtures/reserved_words.csv",
33
35
  "spec/fixtures/semicolon_with_different_header.csv",
34
36
  "spec/fixtures/semicolon_with_header.csv",
35
37
  "spec/fixtures/tab_only_data.csv",
@@ -46,25 +48,17 @@ Gem::Specification.new do |s|
46
48
  ]
47
49
  s.homepage = %q{http://github.com/diogob/postgres-copy}
48
50
  s.require_paths = ["lib"]
49
- s.rubygems_version = %q{1.3.7}
51
+ s.rubygems_version = %q{1.7.2}
50
52
  s.summary = %q{Put COPY command functionality in ActiveRecord's model class}
51
- s.test_files = [
52
- "spec/fixtures/extra_field.rb",
53
- "spec/fixtures/test_model.rb",
54
- "spec/pg_copy_from_spec.rb",
55
- "spec/pg_copy_to_spec.rb",
56
- "spec/spec_helper.rb"
57
- ]
58
53
 
59
54
  if s.respond_to? :specification_version then
60
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
61
55
  s.specification_version = 3
62
56
 
63
57
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
64
58
  s.add_runtime_dependency(%q<pg>, [">= 0"])
65
59
  s.add_runtime_dependency(%q<activerecord>, [">= 0"])
66
60
  s.add_runtime_dependency(%q<rails>, [">= 0"])
67
- s.add_runtime_dependency(%q<rake>, [">= 0"])
61
+ s.add_runtime_dependency(%q<rake>, ["= 0.8.7"])
68
62
  s.add_runtime_dependency(%q<rspec>, ["~> 2.5"])
69
63
  s.add_runtime_dependency(%q<rspec-core>, ["~> 2.5"])
70
64
  s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
@@ -73,7 +67,7 @@ Gem::Specification.new do |s|
73
67
  s.add_dependency(%q<pg>, [">= 0"])
74
68
  s.add_dependency(%q<activerecord>, [">= 0"])
75
69
  s.add_dependency(%q<rails>, [">= 0"])
76
- s.add_dependency(%q<rake>, [">= 0"])
70
+ s.add_dependency(%q<rake>, ["= 0.8.7"])
77
71
  s.add_dependency(%q<rspec>, ["~> 2.5"])
78
72
  s.add_dependency(%q<rspec-core>, ["~> 2.5"])
79
73
  s.add_dependency(%q<rspec>, [">= 1.2.9"])
@@ -83,7 +77,7 @@ Gem::Specification.new do |s|
83
77
  s.add_dependency(%q<pg>, [">= 0"])
84
78
  s.add_dependency(%q<activerecord>, [">= 0"])
85
79
  s.add_dependency(%q<rails>, [">= 0"])
86
- s.add_dependency(%q<rake>, [">= 0"])
80
+ s.add_dependency(%q<rake>, ["= 0.8.7"])
87
81
  s.add_dependency(%q<rspec>, ["~> 2.5"])
88
82
  s.add_dependency(%q<rspec-core>, ["~> 2.5"])
89
83
  s.add_dependency(%q<rspec>, [">= 1.2.9"])
@@ -0,0 +1,5 @@
1
+ require 'postgres-copy'
2
+
3
+ class ReservedWordModel < ActiveRecord::Base
4
+ end
5
+
@@ -0,0 +1,2 @@
1
+ id select group
2
+ 1 test select group name
@@ -74,5 +74,10 @@ describe "COPY FROM" do
74
74
  end.should raise_error
75
75
  TestModel.order(:id).all.map{|r| r.attributes}.should == []
76
76
  end
77
+
78
+ it "should copy from even when table fields need identifier quoting" do
79
+ ReservedWordModel.pg_copy_from File.expand_path('spec/fixtures/reserved_words.csv')
80
+ ReservedWordModel.order(:id).all.map{|r| r.attributes}.should == [{"group"=>"group name", "id"=>1, "select"=>"test select"}]
81
+ end
77
82
  end
78
83
 
data/spec/spec_helper.rb CHANGED
@@ -2,6 +2,7 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
2
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
3
  require 'fixtures/test_model'
4
4
  require 'fixtures/extra_field'
5
+ require 'fixtures/reserved_word_model'
5
6
  require 'rspec'
6
7
  require 'rspec/autorun'
7
8
 
@@ -19,11 +20,13 @@ RSpec.configure do |config|
19
20
  SET client_min_messages TO warning;
20
21
  DROP TABLE IF EXISTS test_models;
21
22
  DROP TABLE IF EXISTS extra_fields;
23
+ DROP TABLE IF EXISTS reserved_word_models;
22
24
  CREATE TABLE test_models (id serial PRIMARY KEY, data text);
25
+ CREATE TABLE reserved_word_models (id serial PRIMARY KEY, "select" text, "group" text);
23
26
  CREATE TABLE extra_fields (id serial PRIMARY KEY, data text, created_at timestamp, updated_at timestamp);
24
27
  }
25
28
  rescue Exception => e
26
- puts "RESCUE"
29
+ puts "Exception: #{e}"
27
30
  ActiveRecord::Base.establish_connection(
28
31
  :adapter => "postgresql",
29
32
  :host => "localhost",
metadata CHANGED
@@ -1,13 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: postgres-copy
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 3
9
- - 3
10
- version: 0.3.3
4
+ prerelease:
5
+ version: 0.3.4
11
6
  platform: ruby
12
7
  authors:
13
8
  - Diogo Biazus
@@ -15,127 +10,96 @@ autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
12
 
18
- date: 2011-04-11 00:00:00 -03:00
19
- default_executable:
13
+ date: 2011-05-26 00:00:00 Z
20
14
  dependencies:
21
15
  - !ruby/object:Gem::Dependency
22
- type: :runtime
23
- prerelease: false
24
16
  name: pg
25
- version_requirements: &id001 !ruby/object:Gem::Requirement
17
+ requirement: &id001 !ruby/object:Gem::Requirement
26
18
  none: false
27
19
  requirements:
28
20
  - - ">="
29
21
  - !ruby/object:Gem::Version
30
- hash: 3
31
- segments:
32
- - 0
33
22
  version: "0"
34
- requirement: *id001
35
- - !ruby/object:Gem::Dependency
36
23
  type: :runtime
37
24
  prerelease: false
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
38
27
  name: activerecord
39
- version_requirements: &id002 !ruby/object:Gem::Requirement
28
+ requirement: &id002 !ruby/object:Gem::Requirement
40
29
  none: false
41
30
  requirements:
42
31
  - - ">="
43
32
  - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 0
47
33
  version: "0"
48
- requirement: *id002
49
- - !ruby/object:Gem::Dependency
50
34
  type: :runtime
51
35
  prerelease: false
36
+ version_requirements: *id002
37
+ - !ruby/object:Gem::Dependency
52
38
  name: rails
53
- version_requirements: &id003 !ruby/object:Gem::Requirement
39
+ requirement: &id003 !ruby/object:Gem::Requirement
54
40
  none: false
55
41
  requirements:
56
42
  - - ">="
57
43
  - !ruby/object:Gem::Version
58
- hash: 3
59
- segments:
60
- - 0
61
44
  version: "0"
62
- requirement: *id003
63
- - !ruby/object:Gem::Dependency
64
45
  type: :runtime
65
46
  prerelease: false
47
+ version_requirements: *id003
48
+ - !ruby/object:Gem::Dependency
66
49
  name: rake
67
- version_requirements: &id004 !ruby/object:Gem::Requirement
50
+ requirement: &id004 !ruby/object:Gem::Requirement
68
51
  none: false
69
52
  requirements:
70
- - - ">="
53
+ - - "="
71
54
  - !ruby/object:Gem::Version
72
- hash: 3
73
- segments:
74
- - 0
75
- version: "0"
76
- requirement: *id004
77
- - !ruby/object:Gem::Dependency
55
+ version: 0.8.7
78
56
  type: :runtime
79
57
  prerelease: false
58
+ version_requirements: *id004
59
+ - !ruby/object:Gem::Dependency
80
60
  name: rspec
81
- version_requirements: &id005 !ruby/object:Gem::Requirement
61
+ requirement: &id005 !ruby/object:Gem::Requirement
82
62
  none: false
83
63
  requirements:
84
64
  - - ~>
85
65
  - !ruby/object:Gem::Version
86
- hash: 9
87
- segments:
88
- - 2
89
- - 5
90
66
  version: "2.5"
91
- requirement: *id005
92
- - !ruby/object:Gem::Dependency
93
67
  type: :runtime
94
68
  prerelease: false
69
+ version_requirements: *id005
70
+ - !ruby/object:Gem::Dependency
95
71
  name: rspec-core
96
- version_requirements: &id006 !ruby/object:Gem::Requirement
72
+ requirement: &id006 !ruby/object:Gem::Requirement
97
73
  none: false
98
74
  requirements:
99
75
  - - ~>
100
76
  - !ruby/object:Gem::Version
101
- hash: 9
102
- segments:
103
- - 2
104
- - 5
105
77
  version: "2.5"
106
- requirement: *id006
107
- - !ruby/object:Gem::Dependency
108
- type: :development
78
+ type: :runtime
109
79
  prerelease: false
80
+ version_requirements: *id006
81
+ - !ruby/object:Gem::Dependency
110
82
  name: rspec
111
- version_requirements: &id007 !ruby/object:Gem::Requirement
83
+ requirement: &id007 !ruby/object:Gem::Requirement
112
84
  none: false
113
85
  requirements:
114
86
  - - ">="
115
87
  - !ruby/object:Gem::Version
116
- hash: 13
117
- segments:
118
- - 1
119
- - 2
120
- - 9
121
88
  version: 1.2.9
122
- requirement: *id007
123
- - !ruby/object:Gem::Dependency
124
- type: :runtime
89
+ type: :development
125
90
  prerelease: false
91
+ version_requirements: *id007
92
+ - !ruby/object:Gem::Dependency
126
93
  name: activerecord
127
- version_requirements: &id008 !ruby/object:Gem::Requirement
94
+ requirement: &id008 !ruby/object:Gem::Requirement
128
95
  none: false
129
96
  requirements:
130
97
  - - ">="
131
98
  - !ruby/object:Gem::Version
132
- hash: 7
133
- segments:
134
- - 3
135
- - 0
136
- - 0
137
99
  version: 3.0.0
138
- requirement: *id008
100
+ type: :runtime
101
+ prerelease: false
102
+ version_requirements: *id008
139
103
  description: Now you can use the super fast COPY for import/export data directly from your AR models.
140
104
  email: diogob@gmail.com
141
105
  executables: []
@@ -159,6 +123,8 @@ files:
159
123
  - lib/postgres-copy/zip_responder.rb
160
124
  - postgres-copy.gemspec
161
125
  - spec/fixtures/extra_field.rb
126
+ - spec/fixtures/reserved_word_model.rb
127
+ - spec/fixtures/reserved_words.csv
162
128
  - spec/fixtures/semicolon_with_different_header.csv
163
129
  - spec/fixtures/semicolon_with_header.csv
164
130
  - spec/fixtures/tab_only_data.csv
@@ -172,7 +138,6 @@ files:
172
138
  - spec/pg_copy_to_spec.rb
173
139
  - spec/spec.opts
174
140
  - spec/spec_helper.rb
175
- has_rdoc: true
176
141
  homepage: http://github.com/diogob/postgres-copy
177
142
  licenses: []
178
143
 
@@ -186,29 +151,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
186
151
  requirements:
187
152
  - - ">="
188
153
  - !ruby/object:Gem::Version
189
- hash: 3
190
- segments:
191
- - 0
192
154
  version: "0"
193
155
  required_rubygems_version: !ruby/object:Gem::Requirement
194
156
  none: false
195
157
  requirements:
196
158
  - - ">="
197
159
  - !ruby/object:Gem::Version
198
- hash: 3
199
- segments:
200
- - 0
201
160
  version: "0"
202
161
  requirements: []
203
162
 
204
163
  rubyforge_project:
205
- rubygems_version: 1.3.7
164
+ rubygems_version: 1.7.2
206
165
  signing_key:
207
166
  specification_version: 3
208
167
  summary: Put COPY command functionality in ActiveRecord's model class
209
- test_files:
210
- - spec/fixtures/extra_field.rb
211
- - spec/fixtures/test_model.rb
212
- - spec/pg_copy_from_spec.rb
213
- - spec/pg_copy_to_spec.rb
214
- - spec/spec_helper.rb
168
+ test_files: []
169
+