pg_csv 0.1.9 → 0.1.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 09672330e1e4a4dea18143dba90abf87170b1ca7
4
- data.tar.gz: fea75e3598b1e8fd401f7a9e3e99a2fddca71d7a
3
+ metadata.gz: 8a104e54f42ee73ff35a94124f93e379b69f9669
4
+ data.tar.gz: f43f120f032bdfc9afc04fe5018fbfd22b8d3e28
5
5
  SHA512:
6
- metadata.gz: 17a74b7e1367170b748384afac2692740cf2f03d0c2c413cf8bd27a8fcae723b169eea387161281434f04061294c7cf050a6d804d1b23b6a0bbfc52b871e98d9
7
- data.tar.gz: bc0ba5581e055af22016ce07850da0ec109439b1b08448e6cde652764870c702924759eadb91a0bccfb11cdd180b2a7a974d03859574b64f8e0560cf26624777
6
+ metadata.gz: 0b346123dc7faf7b1d0f136c3182deb90bbef3d49f8c8b650ae4ce98e368a9c3e3c5c19052dd9b5194d7e5bbd6ffdd9740c5434f9f5ab977c106d07fd91e39f6
7
+ data.tar.gz: ea1b05e3bda8aca42f2014df7ba988f87e951f84daf3815af3a951e10b252848e11eb86d17b42377edc0a03c9c45b6e12f270849df631b5f51c1c7f283530d63
data/README.md CHANGED
@@ -17,22 +17,23 @@ PgCsv.new(opts).export(to, opts)
17
17
 
18
18
  Options:
19
19
  ``` ruby
20
- :sql => "select p.* from users u, projects p where p.user_id = u.id order by email limit 10"
21
- :connection => AR.connection
22
- :delimiter => ["\t", ",", ]
23
- :header => boolean, use pg header for fields?
24
- :logger => logger
25
- :columns => array of column names, ignore :header option
26
- :encoding => encoding (default is pg_default), list of encodings: http://www.postgresql.org/docs/8.4/static/multibyte.html#CHARSET-TABLE
20
+ :sql => "select p.* from users u, projects p where p.user_id = u.id order by email limit 10"
21
+ :connection => AR.connection
22
+ :delimiter => ["\t", ",", ]
23
+ :header => boolean, use pg header for fields?
24
+ :logger => logger
25
+ :columns => array of column names, ignore :header option
26
+ :encoding => encoding (default is pg_default), list of encodings: http://www.postgresql.org/docs/8.4/static/multibyte.html#CHARSET-TABLE
27
+ :force_quote => boolean, force quotes around all non-NULL data?
27
28
 
28
- :temp_file => boolean, generate throught temp file? final file appears by mv
29
- :temp_dir => for :temp_file, ex: '/tmp'
29
+ :temp_file => boolean, generate throught temp file? final file appears by mv
30
+ :temp_dir => for :temp_file, ex: '/tmp'
30
31
 
31
- :type => :plain - return full string
32
- => :gzip - save file to gzip
33
- => :stream - save to stream
34
- => :file - just save to file = default
35
- => :yield - return each row to block
32
+ :type => :plain - return full string
33
+ => :gzip - save file to gzip
34
+ => :stream - save to stream
35
+ => :file - just save to file = default
36
+ => :yield - return each row to block
36
37
  ```
37
38
 
38
39
  Examples:
@@ -133,7 +133,7 @@ class PgCsv
133
133
  ) TO STDOUT
134
134
  WITH CSV
135
135
  DELIMITER '#{delimiter}'
136
- #{use_pg_header? ? 'HEADER' : ''} #{encoding ? "ENCODING '#{encoding}'" : ''}
136
+ #{use_pg_header? ? 'HEADER' : ''} #{encoding ? "ENCODING '#{encoding}'" : ''} #{force_quote ? "FORCE QUOTE *" : ''}
137
137
  SQL
138
138
  end
139
139
 
@@ -193,6 +193,10 @@ class PgCsv
193
193
  def encoding
194
194
  o(:encoding)
195
195
  end
196
+
197
+ def force_quote
198
+ o(:force_quote)
199
+ end
196
200
  end
197
201
 
198
202
  include Base
@@ -1,3 +1,3 @@
1
1
  class PgCsv
2
- VERSION = "0.1.9"
2
+ VERSION = "0.1.10"
3
3
  end
@@ -63,6 +63,18 @@ describe PgCsv do
63
63
  end
64
64
  end
65
65
 
66
+ describe "force_quote" do
67
+ it "force_quote" do
68
+ PgCsv.new(:sql => @sql).export(@name, :force_quote => true)
69
+ with_file(@name){|d| d.should == "\"4\",\"5\",\"6\"\n\"1\",\"2\",\"3\"\n"}
70
+ end
71
+
72
+ it "with headers" do
73
+ PgCsv.new(:sql => @sql).export(@name, :header => true, :force_quote => true)
74
+ with_file(@name){|d| d.should == "a,b,c\n\"4\",\"5\",\"6\"\n\"1\",\"2\",\"3\"\n"}
75
+ end
76
+ end
77
+
66
78
  end
67
79
 
68
80
  describe "moving options no matter" do
@@ -93,14 +105,14 @@ describe PgCsv do
93
105
  File.exists?(@name).should == false
94
106
  PgCsv.new(:sql => @sql, :temp_file => true, :temp_dir => tmp_dir).export(@name)
95
107
  with_file(@name){|d| d.should == "4,5,6\n1,2,3\n" }
96
- sprintf("%o", File.stat(@name).mode).to_i.should >= 100660
108
+ sprintf("%o", File.stat(@name).mode).to_i.should >= 100644
97
109
  end
98
110
 
99
111
  it "same with gzip" do
100
112
  File.exists?(@name).should == false
101
113
  PgCsv.new(:sql => @sql, :temp_file => true, :temp_dir => tmp_dir, :type => :gzip).export(@name)
102
114
  with_gzfile(@name){|d| d.should == "4,5,6\n1,2,3\n" }
103
- sprintf("%o", File.stat(@name).mode).to_i.should >= 100660
115
+ sprintf("%o", File.stat(@name).mode).to_i.should >= 100644
104
116
  end
105
117
  end
106
118
 
@@ -109,7 +121,7 @@ describe PgCsv do
109
121
  File.exists?(@name).should == false
110
122
  PgCsv.new(:sql => @sql, :type => :gzip).export(@name)
111
123
  with_gzfile(@name){|d| d.should == "4,5,6\n1,2,3\n" }
112
- sprintf("%o", File.stat(@name).mode).to_i.should >= 100660
124
+ sprintf("%o", File.stat(@name).mode).to_i.should >= 100644
113
125
  end
114
126
 
115
127
  it "plain export" do
@@ -129,7 +141,7 @@ describe PgCsv do
129
141
  it "file as default" do
130
142
  PgCsv.new(:sql => @sql, :type => :file).export(@name)
131
143
  with_file(@name){|d| d.should == "4,5,6\n1,2,3\n" }
132
- sprintf("%o", File.stat(@name).mode).to_i.should >= 100660
144
+ sprintf("%o", File.stat(@name).mode).to_i.should >= 100644
133
145
  end
134
146
 
135
147
  it "yield export" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg_csv
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Makarchev Konstantin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-22 00:00:00.000000000 Z
11
+ date: 2015-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg
@@ -113,4 +113,10 @@ signing_key:
113
113
  specification_version: 4
114
114
  summary: Fast AR/PostgreSQL csv export. Used pg function 'copy to csv'. Effective
115
115
  on millions rows.
116
- test_files: []
116
+ test_files:
117
+ - spec/benchmark/bench.rb
118
+ - spec/benchmark/raw_bench.rb
119
+ - spec/pg_csv_spec.rb
120
+ - spec/spec_helper.rb
121
+ - spec/spec_support.rb
122
+ - spec/tmp/.gitkeep