activerecord-postgres-copy 0.2.2 → 0.3.6

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/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --colour
2
+ --format d
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', '0.8.7'
7
+ gem 'rspec', '~> 2.6'
8
+ gem 'rspec-core', '~> 2.6'
@@ -1,21 +1,94 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- activemodel (3.0.3)
5
- activesupport (= 3.0.3)
6
- builder (~> 2.1.2)
7
- i18n (~> 0.4)
8
- activerecord (3.0.3)
9
- activemodel (= 3.0.3)
10
- activesupport (= 3.0.3)
11
- arel (~> 2.0.2)
12
- tzinfo (~> 0.3.23)
13
- activesupport (3.0.3)
14
- arel (2.0.6)
15
- builder (2.1.2)
16
- i18n (0.5.0)
17
- pg (0.10.1)
18
- tzinfo (0.3.23)
4
+ actionmailer (3.1.3)
5
+ actionpack (= 3.1.3)
6
+ mail (~> 2.3.0)
7
+ actionpack (3.1.3)
8
+ activemodel (= 3.1.3)
9
+ activesupport (= 3.1.3)
10
+ builder (~> 3.0.0)
11
+ erubis (~> 2.7.0)
12
+ i18n (~> 0.6)
13
+ rack (~> 1.3.5)
14
+ rack-cache (~> 1.1)
15
+ rack-mount (~> 0.8.2)
16
+ rack-test (~> 0.6.1)
17
+ sprockets (~> 2.0.3)
18
+ activemodel (3.1.3)
19
+ activesupport (= 3.1.3)
20
+ builder (~> 3.0.0)
21
+ i18n (~> 0.6)
22
+ activerecord (3.1.3)
23
+ activemodel (= 3.1.3)
24
+ activesupport (= 3.1.3)
25
+ arel (~> 2.2.1)
26
+ tzinfo (~> 0.3.29)
27
+ activeresource (3.1.3)
28
+ activemodel (= 3.1.3)
29
+ activesupport (= 3.1.3)
30
+ activesupport (3.1.3)
31
+ multi_json (~> 1.0)
32
+ arel (2.2.1)
33
+ builder (3.0.0)
34
+ diff-lcs (1.1.2)
35
+ erubis (2.7.0)
36
+ hike (1.2.1)
37
+ i18n (0.6.0)
38
+ json (1.6.4)
39
+ mail (2.3.0)
40
+ i18n (>= 0.4.0)
41
+ mime-types (~> 1.16)
42
+ treetop (~> 1.4.8)
43
+ mime-types (1.17.2)
44
+ multi_json (1.0.4)
45
+ pg (0.11.0)
46
+ polyglot (0.3.3)
47
+ rack (1.3.6)
48
+ rack-cache (1.1)
49
+ rack (>= 0.4)
50
+ rack-mount (0.8.3)
51
+ rack (>= 1.0.0)
52
+ rack-ssl (1.3.2)
53
+ rack
54
+ rack-test (0.6.1)
55
+ rack (>= 1.0)
56
+ rails (3.1.3)
57
+ actionmailer (= 3.1.3)
58
+ actionpack (= 3.1.3)
59
+ activerecord (= 3.1.3)
60
+ activeresource (= 3.1.3)
61
+ activesupport (= 3.1.3)
62
+ bundler (~> 1.0)
63
+ railties (= 3.1.3)
64
+ railties (3.1.3)
65
+ actionpack (= 3.1.3)
66
+ activesupport (= 3.1.3)
67
+ rack-ssl (~> 1.3.2)
68
+ rake (>= 0.8.7)
69
+ rdoc (~> 3.4)
70
+ thor (~> 0.14.6)
71
+ rake (0.8.7)
72
+ rdoc (3.12)
73
+ json (~> 1.4)
74
+ rspec (2.6.0)
75
+ rspec-core (~> 2.6.0)
76
+ rspec-expectations (~> 2.6.0)
77
+ rspec-mocks (~> 2.6.0)
78
+ rspec-core (2.6.3)
79
+ rspec-expectations (2.6.0)
80
+ diff-lcs (~> 1.1.2)
81
+ rspec-mocks (2.6.0)
82
+ sprockets (2.0.3)
83
+ hike (~> 1.2)
84
+ rack (~> 1.0)
85
+ tilt (~> 1.1, != 1.3.0)
86
+ thor (0.14.6)
87
+ tilt (1.3.3)
88
+ treetop (1.4.10)
89
+ polyglot
90
+ polyglot (>= 0.3.1)
91
+ tzinfo (0.3.31)
19
92
 
20
93
  PLATFORMS
21
94
  ruby
@@ -23,3 +96,7 @@ PLATFORMS
23
96
  DEPENDENCIES
24
97
  activerecord
25
98
  pg
99
+ rails
100
+ rake (= 0.8.7)
101
+ rspec (~> 2.6)
102
+ rspec-core (~> 2.6)
data/README.md CHANGED
@@ -1,11 +1,14 @@
1
- # activerecord-postgres-copy
1
+ # postgres-copy
2
2
 
3
3
  This Gem will enable your AR models to use the PostgreSQL COPY command to import/export data in CSV format.
4
- It's still in its ealry stages of development, *not production ready*.
4
+ If you need to tranfer data between a PostgreSQL database and CSV files, the PostgreSQL native CSV parser
5
+ will give you a greater performance than using the ruby CSV+INSERT commands.
6
+ I have not found time to make accurate benchmarks, but in the use scenario where I have developed the gem
7
+ I have had a four-fold performance gain.
5
8
 
6
9
  ## Install
7
10
 
8
- gem install activerecord-postgres-copy
11
+ gem install postgres-copy
9
12
 
10
13
  ## Usage
11
14
 
data/Rakefile CHANGED
@@ -5,10 +5,10 @@ begin
5
5
  require 'jeweler'
6
6
  Jeweler::Tasks.new do |gem|
7
7
  gem.name = "activerecord-postgres-copy"
8
- gem.summary = %Q{Put COPY command functionality in ActiveRecord's model class}
9
- gem.description = %Q{Now you can use the super fast COPY for import/export data directly from your AR models.}
8
+ gem.summary = %Q{This version is obsolete, please use the postgres-copy gem}
9
+ gem.description = %Q{This version is obsolete, please use the postgres-copy gem}
10
10
  gem.email = "diogob@gmail.com"
11
- gem.homepage = "http://github.com/diogob/activerecord-postgres-copy"
11
+ gem.homepage = "http://github.com/diogob/postgres-copy"
12
12
  gem.authors = ["Diogo Biazus"]
13
13
  gem.add_development_dependency "rspec", ">= 1.2.9"
14
14
  gem.add_dependency "activerecord", ">= 3.0.0"
@@ -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.2.2
1
+ 0.3.6
@@ -0,0 +1,17 @@
1
+ require 'rubygems'
2
+ require 'active_record'
3
+ require 'postgres-copy/active_record'
4
+ require 'rails'
5
+
6
+ class PostgresCopy < Rails::Railtie
7
+
8
+ initializer 'postgres-copy' do
9
+ ActiveSupport.on_load :active_record do
10
+ require "postgres-copy/active_record"
11
+ end
12
+ ActiveSupport.on_load :action_controller do
13
+ require "postgres-copy/csv_responder"
14
+ require "postgres-copy/zip_responder"
15
+ end
16
+ end
17
+ end
@@ -12,6 +12,13 @@ module ActiveRecord
12
12
  end
13
13
  return self
14
14
  end
15
+
16
+ def self.pg_copy_to_string
17
+ # It would be cool to work like an Enumerable
18
+ data = ''
19
+ self.pg_copy_to{|l| data += l }
20
+ data
21
+ end
15
22
 
16
23
  def self.pg_copy_from path_or_io, options = {}
17
24
  options = {:delimiter => "\t"}.merge(options)
@@ -20,13 +27,13 @@ module ActiveRecord
20
27
  line = io.gets
21
28
  columns_list = options[:columns] || line.strip.split(options[:delimiter])
22
29
  columns_list = columns_list.map{|c| options[:map][c.to_s] } if options[:map]
23
- 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}
24
31
  while line = io.gets do
25
32
  next if line.strip.size == 0
26
33
  if block_given?
27
34
  row = line.strip.split(options[:delimiter])
28
35
  yield(row)
29
- line = row.join(options[:delimiter])
36
+ line = row.join(options[:delimiter]) + "\n"
30
37
  end
31
38
  connection.raw_connection.put_copy_data line
32
39
  end
@@ -0,0 +1,7 @@
1
+ class ActionController::Responder
2
+ def to_csv
3
+ name = "#{controller.resource.class.name.downcase}_#{Time.now.to_i}"
4
+
5
+ return controller.send_data controller.send(:end_of_association_chain).pg_copy_to_string, :filename => "/tmp/#{name}.csv", :type => "application/zip", :disposition => 'inline'
6
+ end
7
+ end
@@ -0,0 +1,14 @@
1
+
2
+ Mime::Type.register 'application/zip', :zip
3
+
4
+ class ActionController::Responder
5
+ def to_zip
6
+ name = "#{controller.resource.class.name.downcase}_#{Time.now.to_i}"
7
+ controller.send(:end_of_association_chain).pg_copy_to "/tmp/#{name}.csv"
8
+ Dir.chdir('/tmp') do
9
+ `zip #{name} #{name}.csv`
10
+ zip = "#{name}.zip"
11
+ return controller.send_file zip, :filename => zip, :type => "application/zip", :disposition => 'inline'
12
+ end
13
+ end
14
+ end
@@ -1,4 +1,4 @@
1
- require 'activerecord-postgres-copy'
1
+ require 'postgres-copy'
2
2
 
3
3
  class ExtraField < ActiveRecord::Base
4
4
  end
@@ -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
@@ -0,0 +1,3 @@
1
+ id data
2
+ 1 test data 1
3
+ 2 test data 2
@@ -1,4 +1,4 @@
1
- require 'activerecord-postgres-copy'
1
+ require 'postgres-copy'
2
2
 
3
3
  class TestModel < ActiveRecord::Base
4
4
  end
@@ -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'}]
@@ -60,11 +68,17 @@ describe "COPY FROM" do
60
68
  TestModel.order(:id).all.map{|r| r.attributes}.should == [{'id' => 1, 'data' => 'test data 1'}]
61
69
  end
62
70
 
63
- it "should raise error in malformed files" do
64
- lambda do
65
- TestModel.pg_copy_from(File.open(File.expand_path('spec/fixtures/tab_with_error.csv'), 'r'))
66
- end.should raise_error
67
- TestModel.order(:id).all.map{|r| r.attributes}.should == []
71
+ #we should implement this later
72
+ #it "should raise error in malformed files" do
73
+ #lambda do
74
+ #TestModel.pg_copy_from(File.open(File.expand_path('spec/fixtures/tab_with_error.csv'), 'r'))
75
+ #end.should raise_error
76
+ #TestModel.order(:id).all.map{|r| r.attributes}.should == []
77
+ #end
78
+
79
+ it "should copy from even when table fields need identifier quoting" do
80
+ ReservedWordModel.pg_copy_from File.expand_path('spec/fixtures/reserved_words.csv')
81
+ ReservedWordModel.order(:id).all.map{|r| r.attributes}.should == [{"group"=>"group name", "id"=>1, "select"=>"test select"}]
68
82
  end
69
83
  end
70
84
 
@@ -2,10 +2,11 @@ $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 'fixtures/reserved_word_model'
6
+ require 'rspec'
7
+ require 'rspec/autorun'
7
8
 
8
- Spec::Runner.configure do |config|
9
+ RSpec.configure do |config|
9
10
  config.before(:suite) do
10
11
  # we create a test database if it does not exist
11
12
  # I do not use database users or password for the tests, using ident authentication instead
@@ -19,11 +20,13 @@ Spec::Runner.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,77 +1,127 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: activerecord-postgres-copy
3
- version: !ruby/object:Gem::Version
4
- hash: 19
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 2
9
- - 2
10
- version: 0.2.2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.6
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Diogo Biazus
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-02-09 00:00:00 -02:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2011-12-30 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: pg
16
+ requirement: &70222191228800 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70222191228800
25
+ - !ruby/object:Gem::Dependency
26
+ name: activerecord
27
+ requirement: &70222191225880 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70222191225880
36
+ - !ruby/object:Gem::Dependency
37
+ name: rails
38
+ requirement: &70222191402760 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *70222191402760
47
+ - !ruby/object:Gem::Dependency
48
+ name: rake
49
+ requirement: &70222191398800 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - =
53
+ - !ruby/object:Gem::Version
54
+ version: 0.8.7
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *70222191398800
58
+ - !ruby/object:Gem::Dependency
22
59
  name: rspec
60
+ requirement: &70222191395200 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ~>
64
+ - !ruby/object:Gem::Version
65
+ version: '2.6'
66
+ type: :runtime
23
67
  prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
68
+ version_requirements: *70222191395200
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec-core
71
+ requirement: &70222191406500 !ruby/object:Gem::Requirement
25
72
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 13
30
- segments:
31
- - 1
32
- - 2
33
- - 9
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ version: '2.6'
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: *70222191406500
80
+ - !ruby/object:Gem::Dependency
81
+ name: rspec
82
+ requirement: &70222191404700 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
34
87
  version: 1.2.9
35
88
  type: :development
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: activerecord
39
89
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
90
+ version_requirements: *70222191404700
91
+ - !ruby/object:Gem::Dependency
92
+ name: activerecord
93
+ requirement: &70222191403940 !ruby/object:Gem::Requirement
41
94
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- hash: 7
46
- segments:
47
- - 3
48
- - 0
49
- - 0
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
50
98
  version: 3.0.0
51
99
  type: :runtime
52
- version_requirements: *id002
53
- description: Now you can use the super fast COPY for import/export data directly from your AR models.
100
+ prerelease: false
101
+ version_requirements: *70222191403940
102
+ description: This version is obsolete, please use the postgres-copy gem
54
103
  email: diogob@gmail.com
55
104
  executables: []
56
-
57
105
  extensions: []
58
-
59
- extra_rdoc_files:
106
+ extra_rdoc_files:
60
107
  - LICENSE
61
108
  - README.md
62
- files:
109
+ files:
63
110
  - .document
64
- - .gitignore
111
+ - .rspec
65
112
  - Gemfile
66
113
  - Gemfile.lock
67
114
  - LICENSE
68
115
  - README.md
69
116
  - Rakefile
70
117
  - VERSION
71
- - activerecord-postgres-copy.gemspec
72
- - lib/activerecord-postgres-copy.rb
73
- - lib/activerecord-postgres-copy/base.rb
118
+ - lib/postgres-copy.rb
119
+ - lib/postgres-copy/active_record.rb
120
+ - lib/postgres-copy/csv_responder.rb
121
+ - lib/postgres-copy/zip_responder.rb
74
122
  - spec/fixtures/extra_field.rb
123
+ - spec/fixtures/reserved_word_model.rb
124
+ - spec/fixtures/reserved_words.csv
75
125
  - spec/fixtures/semicolon_with_different_header.csv
76
126
  - spec/fixtures/semicolon_with_header.csv
77
127
  - spec/fixtures/tab_only_data.csv
@@ -79,48 +129,34 @@ files:
79
129
  - spec/fixtures/tab_with_error.csv
80
130
  - spec/fixtures/tab_with_extra_line.csv
81
131
  - spec/fixtures/tab_with_header.csv
132
+ - spec/fixtures/tab_with_two_lines.csv
82
133
  - spec/fixtures/test_model.rb
83
134
  - spec/pg_copy_from_spec.rb
84
135
  - spec/pg_copy_to_spec.rb
85
136
  - spec/spec.opts
86
137
  - spec/spec_helper.rb
87
- has_rdoc: true
88
- homepage: http://github.com/diogob/activerecord-postgres-copy
138
+ homepage: http://github.com/diogob/postgres-copy
89
139
  licenses: []
90
-
91
140
  post_install_message:
92
- rdoc_options:
93
- - --charset=UTF-8
94
- require_paths:
141
+ rdoc_options: []
142
+ require_paths:
95
143
  - lib
96
- required_ruby_version: !ruby/object:Gem::Requirement
144
+ required_ruby_version: !ruby/object:Gem::Requirement
97
145
  none: false
98
- requirements:
99
- - - ">="
100
- - !ruby/object:Gem::Version
101
- hash: 3
102
- segments:
103
- - 0
104
- version: "0"
105
- required_rubygems_version: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - ! '>='
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
150
+ required_rubygems_version: !ruby/object:Gem::Requirement
106
151
  none: false
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- hash: 3
111
- segments:
112
- - 0
113
- version: "0"
152
+ requirements:
153
+ - - ! '>='
154
+ - !ruby/object:Gem::Version
155
+ version: '0'
114
156
  requirements: []
115
-
116
157
  rubyforge_project:
117
- rubygems_version: 1.3.7
158
+ rubygems_version: 1.8.10
118
159
  signing_key:
119
160
  specification_version: 3
120
- summary: Put COPY command functionality in ActiveRecord's model class
121
- test_files:
122
- - spec/spec_helper.rb
123
- - spec/pg_copy_from_spec.rb
124
- - spec/pg_copy_to_spec.rb
125
- - spec/fixtures/test_model.rb
126
- - spec/fixtures/extra_field.rb
161
+ summary: This version is obsolete, please use the postgres-copy gem
162
+ test_files: []
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
@@ -1,74 +0,0 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
- # -*- encoding: utf-8 -*-
5
-
6
- Gem::Specification.new do |s|
7
- s.name = %q{activerecord-postgres-copy}
8
- s.version = "0.2.2"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Diogo Biazus"]
12
- s.date = %q{2011-02-09}
13
- s.description = %q{Now you can use the super fast COPY for import/export data directly from your AR models.}
14
- s.email = %q{diogob@gmail.com}
15
- s.extra_rdoc_files = [
16
- "LICENSE",
17
- "README.md"
18
- ]
19
- s.files = [
20
- ".document",
21
- ".gitignore",
22
- "Gemfile",
23
- "Gemfile.lock",
24
- "LICENSE",
25
- "README.md",
26
- "Rakefile",
27
- "VERSION",
28
- "activerecord-postgres-copy.gemspec",
29
- "lib/activerecord-postgres-copy.rb",
30
- "lib/activerecord-postgres-copy/base.rb",
31
- "spec/fixtures/extra_field.rb",
32
- "spec/fixtures/semicolon_with_different_header.csv",
33
- "spec/fixtures/semicolon_with_header.csv",
34
- "spec/fixtures/tab_only_data.csv",
35
- "spec/fixtures/tab_with_different_header.csv",
36
- "spec/fixtures/tab_with_error.csv",
37
- "spec/fixtures/tab_with_extra_line.csv",
38
- "spec/fixtures/tab_with_header.csv",
39
- "spec/fixtures/test_model.rb",
40
- "spec/pg_copy_from_spec.rb",
41
- "spec/pg_copy_to_spec.rb",
42
- "spec/spec.opts",
43
- "spec/spec_helper.rb"
44
- ]
45
- s.homepage = %q{http://github.com/diogob/activerecord-postgres-copy}
46
- s.rdoc_options = ["--charset=UTF-8"]
47
- s.require_paths = ["lib"]
48
- s.rubygems_version = %q{1.3.7}
49
- s.summary = %q{Put COPY command functionality in ActiveRecord's model class}
50
- s.test_files = [
51
- "spec/spec_helper.rb",
52
- "spec/pg_copy_from_spec.rb",
53
- "spec/pg_copy_to_spec.rb",
54
- "spec/fixtures/test_model.rb",
55
- "spec/fixtures/extra_field.rb"
56
- ]
57
-
58
- if s.respond_to? :specification_version then
59
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
60
- s.specification_version = 3
61
-
62
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
63
- s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
64
- s.add_runtime_dependency(%q<activerecord>, [">= 3.0.0"])
65
- else
66
- s.add_dependency(%q<rspec>, [">= 1.2.9"])
67
- s.add_dependency(%q<activerecord>, [">= 3.0.0"])
68
- end
69
- else
70
- s.add_dependency(%q<rspec>, [">= 1.2.9"])
71
- s.add_dependency(%q<activerecord>, [">= 3.0.0"])
72
- end
73
- end
74
-
@@ -1,3 +0,0 @@
1
- require 'rubygems'
2
- require 'active_record'
3
- require 'activerecord-postgres-copy/base'