postgres-copy 0.3.2 → 0.3.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.
data/Gemfile CHANGED
@@ -2,3 +2,7 @@ source :gemcutter
2
2
 
3
3
  gem 'pg'
4
4
  gem 'activerecord'
5
+ gem 'rails'
6
+ gem 'rake'
7
+ gem 'rspec', '~> 2.5'
8
+ gem 'rspec-core', '~> 2.5'
@@ -1,21 +1,78 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- activemodel (3.0.3)
5
- activesupport (= 3.0.3)
4
+ abstract (1.0.0)
5
+ actionmailer (3.0.6)
6
+ actionpack (= 3.0.6)
7
+ mail (~> 2.2.15)
8
+ actionpack (3.0.6)
9
+ activemodel (= 3.0.6)
10
+ activesupport (= 3.0.6)
6
11
  builder (~> 2.1.2)
7
- i18n (~> 0.4)
8
- activerecord (3.0.3)
9
- activemodel (= 3.0.3)
10
- activesupport (= 3.0.3)
12
+ erubis (~> 2.6.6)
13
+ i18n (~> 0.5.0)
14
+ rack (~> 1.2.1)
15
+ rack-mount (~> 0.6.14)
16
+ rack-test (~> 0.5.7)
17
+ tzinfo (~> 0.3.23)
18
+ activemodel (3.0.6)
19
+ activesupport (= 3.0.6)
20
+ builder (~> 2.1.2)
21
+ i18n (~> 0.5.0)
22
+ activerecord (3.0.6)
23
+ activemodel (= 3.0.6)
24
+ activesupport (= 3.0.6)
11
25
  arel (~> 2.0.2)
12
26
  tzinfo (~> 0.3.23)
13
- activesupport (3.0.3)
14
- arel (2.0.6)
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)
15
32
  builder (2.1.2)
33
+ diff-lcs (1.1.2)
34
+ erubis (2.6.6)
35
+ abstract (>= 1.0.0)
16
36
  i18n (0.5.0)
37
+ mail (2.2.15)
38
+ activesupport (>= 2.3.6)
39
+ i18n (>= 0.4.0)
40
+ mime-types (~> 1.16)
41
+ treetop (~> 1.4.8)
42
+ mime-types (1.16)
17
43
  pg (0.10.1)
18
- tzinfo (0.3.23)
44
+ polyglot (0.3.1)
45
+ rack (1.2.2)
46
+ rack-mount (0.6.14)
47
+ rack (>= 1.0.0)
48
+ rack-test (0.5.7)
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)
56
+ bundler (~> 1.0)
57
+ railties (= 3.0.6)
58
+ railties (3.0.6)
59
+ actionpack (= 3.0.6)
60
+ activesupport (= 3.0.6)
61
+ rake (>= 0.8.7)
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)
70
+ diff-lcs (~> 1.1.2)
71
+ rspec-mocks (2.5.0)
72
+ thor (0.14.6)
73
+ treetop (1.4.9)
74
+ polyglot (>= 0.3.1)
75
+ tzinfo (0.3.26)
19
76
 
20
77
  PLATFORMS
21
78
  ruby
@@ -23,3 +80,7 @@ PLATFORMS
23
80
  DEPENDENCIES
24
81
  activerecord
25
82
  pg
83
+ rails
84
+ rake
85
+ rspec (~> 2.5)
86
+ rspec-core (~> 2.5)
data/Rakefile CHANGED
@@ -19,26 +19,16 @@ rescue LoadError
19
19
  puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
20
20
  end
21
21
 
22
- require 'spec/rake/spectask'
23
- Spec::Rake::SpecTask.new(:spec) do |spec|
24
- spec.libs << 'lib' << 'spec'
25
- spec.spec_files = FileList['spec/**/*_spec.rb']
22
+ require "rspec/core/rake_task" # RSpec 2.0
23
+ RSpec::Core::RakeTask.new(:spec) do |spec|
24
+ spec.pattern = 'spec/*_spec.rb'
25
+ spec.rspec_opts = ["--backtrace", "--color", "--format progress", "-r ./spec/spec_helper.rb"]
26
26
  end
27
-
28
- Spec::Rake::SpecTask.new(:rcov) do |spec|
29
- spec.libs << 'lib' << 'spec'
30
- spec.pattern = 'spec/**/*_spec.rb'
31
- spec.rcov = true
32
- end
33
-
34
- task :spec => :check_dependencies
35
-
36
27
  task :default => :spec
37
28
 
38
29
  require 'rake/rdoctask'
39
30
  Rake::RDocTask.new do |rdoc|
40
31
  version = File.exist?('VERSION') ? File.read('VERSION') : ""
41
-
42
32
  rdoc.rdoc_dir = 'rdoc'
43
33
  rdoc.title = "activerecord-postgres-copy #{version}"
44
34
  rdoc.rdoc_files.include('README*')
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.2
1
+ 0.3.3
@@ -33,7 +33,7 @@ module ActiveRecord
33
33
  if block_given?
34
34
  row = line.strip.split(options[:delimiter])
35
35
  yield(row)
36
- line = row.join(options[:delimiter])
36
+ line = row.join(options[:delimiter]) + "\n"
37
37
  end
38
38
  connection.raw_connection.put_copy_data line
39
39
  end
@@ -1,60 +1,59 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{postgres-copy}
8
- s.version = "0.3.2"
8
+ s.version = "0.3.3"
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-03-17}
12
+ s.date = %q{2011-04-11}
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 = [
16
16
  "LICENSE",
17
- "README.md"
17
+ "README.md"
18
18
  ]
19
19
  s.files = [
20
20
  ".document",
21
- ".gitignore",
22
- "Gemfile",
23
- "Gemfile.lock",
24
- "LICENSE",
25
- "README.md",
26
- "Rakefile",
27
- "VERSION",
28
- "lib/postgres-copy.rb",
29
- "lib/postgres-copy/active_record.rb",
30
- "lib/postgres-copy/csv_responder.rb",
31
- "lib/postgres-copy/zip_responder.rb",
32
- "postgres-copy.gemspec",
33
- "spec/fixtures/extra_field.rb",
34
- "spec/fixtures/semicolon_with_different_header.csv",
35
- "spec/fixtures/semicolon_with_header.csv",
36
- "spec/fixtures/tab_only_data.csv",
37
- "spec/fixtures/tab_with_different_header.csv",
38
- "spec/fixtures/tab_with_error.csv",
39
- "spec/fixtures/tab_with_extra_line.csv",
40
- "spec/fixtures/tab_with_header.csv",
41
- "spec/fixtures/test_model.rb",
42
- "spec/pg_copy_from_spec.rb",
43
- "spec/pg_copy_to_spec.rb",
44
- "spec/spec.opts",
45
- "spec/spec_helper.rb"
21
+ "Gemfile",
22
+ "Gemfile.lock",
23
+ "LICENSE",
24
+ "README.md",
25
+ "Rakefile",
26
+ "VERSION",
27
+ "lib/postgres-copy.rb",
28
+ "lib/postgres-copy/active_record.rb",
29
+ "lib/postgres-copy/csv_responder.rb",
30
+ "lib/postgres-copy/zip_responder.rb",
31
+ "postgres-copy.gemspec",
32
+ "spec/fixtures/extra_field.rb",
33
+ "spec/fixtures/semicolon_with_different_header.csv",
34
+ "spec/fixtures/semicolon_with_header.csv",
35
+ "spec/fixtures/tab_only_data.csv",
36
+ "spec/fixtures/tab_with_different_header.csv",
37
+ "spec/fixtures/tab_with_error.csv",
38
+ "spec/fixtures/tab_with_extra_line.csv",
39
+ "spec/fixtures/tab_with_header.csv",
40
+ "spec/fixtures/tab_with_two_lines.csv",
41
+ "spec/fixtures/test_model.rb",
42
+ "spec/pg_copy_from_spec.rb",
43
+ "spec/pg_copy_to_spec.rb",
44
+ "spec/spec.opts",
45
+ "spec/spec_helper.rb"
46
46
  ]
47
47
  s.homepage = %q{http://github.com/diogob/postgres-copy}
48
- s.rdoc_options = ["--charset=UTF-8"]
49
48
  s.require_paths = ["lib"]
50
49
  s.rubygems_version = %q{1.3.7}
51
50
  s.summary = %q{Put COPY command functionality in ActiveRecord's model class}
52
51
  s.test_files = [
53
- "spec/spec_helper.rb",
54
- "spec/pg_copy_from_spec.rb",
55
- "spec/pg_copy_to_spec.rb",
56
- "spec/fixtures/test_model.rb",
57
- "spec/fixtures/extra_field.rb"
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"
58
57
  ]
59
58
 
60
59
  if s.respond_to? :specification_version then
@@ -62,13 +61,31 @@ Gem::Specification.new do |s|
62
61
  s.specification_version = 3
63
62
 
64
63
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
64
+ s.add_runtime_dependency(%q<pg>, [">= 0"])
65
+ s.add_runtime_dependency(%q<activerecord>, [">= 0"])
66
+ s.add_runtime_dependency(%q<rails>, [">= 0"])
67
+ s.add_runtime_dependency(%q<rake>, [">= 0"])
68
+ s.add_runtime_dependency(%q<rspec>, ["~> 2.5"])
69
+ s.add_runtime_dependency(%q<rspec-core>, ["~> 2.5"])
65
70
  s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
66
71
  s.add_runtime_dependency(%q<activerecord>, [">= 3.0.0"])
67
72
  else
73
+ s.add_dependency(%q<pg>, [">= 0"])
74
+ s.add_dependency(%q<activerecord>, [">= 0"])
75
+ s.add_dependency(%q<rails>, [">= 0"])
76
+ s.add_dependency(%q<rake>, [">= 0"])
77
+ s.add_dependency(%q<rspec>, ["~> 2.5"])
78
+ s.add_dependency(%q<rspec-core>, ["~> 2.5"])
68
79
  s.add_dependency(%q<rspec>, [">= 1.2.9"])
69
80
  s.add_dependency(%q<activerecord>, [">= 3.0.0"])
70
81
  end
71
82
  else
83
+ s.add_dependency(%q<pg>, [">= 0"])
84
+ s.add_dependency(%q<activerecord>, [">= 0"])
85
+ s.add_dependency(%q<rails>, [">= 0"])
86
+ s.add_dependency(%q<rake>, [">= 0"])
87
+ s.add_dependency(%q<rspec>, ["~> 2.5"])
88
+ s.add_dependency(%q<rspec-core>, ["~> 2.5"])
72
89
  s.add_dependency(%q<rspec>, [">= 1.2.9"])
73
90
  s.add_dependency(%q<activerecord>, [">= 3.0.0"])
74
91
  end
@@ -0,0 +1,3 @@
1
+ id data
2
+ 1 test data 1
3
+ 2 test data 2
@@ -35,6 +35,14 @@ describe "COPY FROM" do
35
35
  TestModel.order(:id).all.map{|r| r.attributes}.should == [{'id' => 1, 'data' => 'changed this data'}]
36
36
  end
37
37
 
38
+ it "should import 2 lines and allow changes in block" do
39
+ TestModel.pg_copy_from(File.open(File.expand_path('spec/fixtures/tab_with_two_lines.csv'), 'r')) do |row|
40
+ row[1] = 'changed this data'
41
+ end
42
+ TestModel.order(:id).first.attributes.should == {'id' => 1, 'data' => 'changed this data'}
43
+ TestModel.count.should == 2
44
+ end
45
+
38
46
  it "should be able to copy from using custom set of columns" do
39
47
  TestModel.pg_copy_from(File.open(File.expand_path('spec/fixtures/tab_only_data.csv'), 'r'), :columns => ["data"])
40
48
  TestModel.order(:id).all.map{|r| r.attributes}.should == [{'id' => 1, 'data' => 'test data 1'}]
@@ -2,10 +2,10 @@ $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 'spec'
6
- require 'spec/autorun'
5
+ require 'rspec'
6
+ require 'rspec/autorun'
7
7
 
8
- Spec::Runner.configure do |config|
8
+ RSpec.configure do |config|
9
9
  config.before(:suite) do
10
10
  # we create a test database if it does not exist
11
11
  # I do not use database users or password for the tests, using ident authentication instead
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: postgres-copy
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 2
10
- version: 0.3.2
9
+ - 3
10
+ version: 0.3.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Diogo Biazus
@@ -15,13 +15,100 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-03-17 00:00:00 -03:00
18
+ date: 2011-04-11 00:00:00 -03:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
+ type: :runtime
23
+ prerelease: false
24
+ name: pg
25
+ version_requirements: &id001 !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ hash: 3
31
+ segments:
32
+ - 0
33
+ version: "0"
34
+ requirement: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ type: :runtime
37
+ prerelease: false
38
+ name: activerecord
39
+ version_requirements: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 3
45
+ segments:
46
+ - 0
47
+ version: "0"
48
+ requirement: *id002
49
+ - !ruby/object:Gem::Dependency
50
+ type: :runtime
51
+ prerelease: false
52
+ name: rails
53
+ version_requirements: &id003 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ hash: 3
59
+ segments:
60
+ - 0
61
+ version: "0"
62
+ requirement: *id003
63
+ - !ruby/object:Gem::Dependency
64
+ type: :runtime
65
+ prerelease: false
66
+ name: rake
67
+ version_requirements: &id004 !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ hash: 3
73
+ segments:
74
+ - 0
75
+ version: "0"
76
+ requirement: *id004
77
+ - !ruby/object:Gem::Dependency
78
+ type: :runtime
79
+ prerelease: false
22
80
  name: rspec
81
+ version_requirements: &id005 !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ~>
85
+ - !ruby/object:Gem::Version
86
+ hash: 9
87
+ segments:
88
+ - 2
89
+ - 5
90
+ version: "2.5"
91
+ requirement: *id005
92
+ - !ruby/object:Gem::Dependency
93
+ type: :runtime
94
+ prerelease: false
95
+ name: rspec-core
96
+ version_requirements: &id006 !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ hash: 9
102
+ segments:
103
+ - 2
104
+ - 5
105
+ version: "2.5"
106
+ requirement: *id006
107
+ - !ruby/object:Gem::Dependency
108
+ type: :development
23
109
  prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
110
+ name: rspec
111
+ version_requirements: &id007 !ruby/object:Gem::Requirement
25
112
  none: false
26
113
  requirements:
27
114
  - - ">="
@@ -32,12 +119,12 @@ dependencies:
32
119
  - 2
33
120
  - 9
34
121
  version: 1.2.9
35
- type: :development
36
- version_requirements: *id001
122
+ requirement: *id007
37
123
  - !ruby/object:Gem::Dependency
38
- name: activerecord
124
+ type: :runtime
39
125
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
126
+ name: activerecord
127
+ version_requirements: &id008 !ruby/object:Gem::Requirement
41
128
  none: false
42
129
  requirements:
43
130
  - - ">="
@@ -48,8 +135,7 @@ dependencies:
48
135
  - 0
49
136
  - 0
50
137
  version: 3.0.0
51
- type: :runtime
52
- version_requirements: *id002
138
+ requirement: *id008
53
139
  description: Now you can use the super fast COPY for import/export data directly from your AR models.
54
140
  email: diogob@gmail.com
55
141
  executables: []
@@ -61,7 +147,6 @@ extra_rdoc_files:
61
147
  - README.md
62
148
  files:
63
149
  - .document
64
- - .gitignore
65
150
  - Gemfile
66
151
  - Gemfile.lock
67
152
  - LICENSE
@@ -81,6 +166,7 @@ files:
81
166
  - spec/fixtures/tab_with_error.csv
82
167
  - spec/fixtures/tab_with_extra_line.csv
83
168
  - spec/fixtures/tab_with_header.csv
169
+ - spec/fixtures/tab_with_two_lines.csv
84
170
  - spec/fixtures/test_model.rb
85
171
  - spec/pg_copy_from_spec.rb
86
172
  - spec/pg_copy_to_spec.rb
@@ -91,8 +177,8 @@ homepage: http://github.com/diogob/postgres-copy
91
177
  licenses: []
92
178
 
93
179
  post_install_message:
94
- rdoc_options:
95
- - --charset=UTF-8
180
+ rdoc_options: []
181
+
96
182
  require_paths:
97
183
  - lib
98
184
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -121,8 +207,8 @@ signing_key:
121
207
  specification_version: 3
122
208
  summary: Put COPY command functionality in ActiveRecord's model class
123
209
  test_files:
124
- - spec/spec_helper.rb
210
+ - spec/fixtures/extra_field.rb
211
+ - spec/fixtures/test_model.rb
125
212
  - spec/pg_copy_from_spec.rb
126
213
  - spec/pg_copy_to_spec.rb
127
- - spec/fixtures/test_model.rb
128
- - spec/fixtures/extra_field.rb
214
+ - spec/spec_helper.rb
data/.gitignore DELETED
@@ -1,21 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC