pg 0.18.1 → 0.18.2

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.
@@ -15,6 +15,8 @@ describe "PG::Type derivations" do
15
15
  let!(:textdec_string) { PG::TextDecoder::String.new }
16
16
  let!(:textenc_timestamp) { PG::TextEncoder::TimestampWithoutTimeZone.new }
17
17
  let!(:textdec_timestamp) { PG::TextDecoder::TimestampWithoutTimeZone.new }
18
+ let!(:textenc_timestamptz) { PG::TextEncoder::TimestampWithTimeZone.new }
19
+ let!(:textdec_timestamptz) { PG::TextDecoder::TimestampWithTimeZone.new }
18
20
  let!(:textenc_bytea) { PG::TextEncoder::Bytea.new }
19
21
  let!(:textdec_bytea) { PG::TextDecoder::Bytea.new }
20
22
  let!(:binaryenc_int2) { PG::BinaryEncoder::Int2.new }
@@ -85,6 +87,48 @@ describe "PG::Type derivations" do
85
87
  expect( textdec_bytea.decode("\\377\\000") ).to eq( "\xff\0".b )
86
88
  end
87
89
 
90
+ context 'timestamps' do
91
+ it 'decodes timestamps without timezone' do
92
+ expect( textdec_timestamp.decode('2016-01-02 23:23:59.123456') ).
93
+ to be_within(0.000001).of( Time.new(2016,01,02, 23, 23, 59.123456) )
94
+ end
95
+ it 'decodes timestamps with hour timezone' do
96
+ expect( textdec_timestamptz.decode('2015-01-26 17:26:42.691511-04') ).
97
+ to be_within(0.000001).of( Time.new(2015,01,26, 17, 26, 42.691511, "-04:00") )
98
+ expect( textdec_timestamptz.decode('2015-01-26 17:26:42.691511+10') ).
99
+ to be_within(0.000001).of( Time.new(2015,01,26, 17, 26, 42.691511, "+10:00") )
100
+ end
101
+ it 'decodes timestamps with hour:minute timezone' do
102
+ expect( textdec_timestamptz.decode('2015-01-26 17:26:42.691511-04:15') ).
103
+ to be_within(0.000001).of( Time.new(2015,01,26, 17, 26, 42.691511, "-04:15") )
104
+ expect( textdec_timestamptz.decode('2015-01-26 17:26:42.691511-0430') ).
105
+ to be_within(0.000001).of( Time.new(2015,01,26, 17, 26, 42.691511, "-04:30") )
106
+ expect( textdec_timestamptz.decode('2015-01-26 17:26:42.691511+10:45') ).
107
+ to be_within(0.000001).of( Time.new(2015,01,26, 17, 26, 42.691511, "+10:45") )
108
+ end
109
+ it 'decodes timestamps with hour:minute:sec timezone' do
110
+ # SET TIME ZONE 'Europe/Dublin'; -- Was UTC−00:25:21 until 1916
111
+ # SELECT '1900-01-01'::timestamptz;
112
+ # -- "1900-01-01 00:00:00-00:25:21"
113
+ expect( textdec_timestamptz.decode('1916-01-01 00:00:00-00:25:21') ).
114
+ to be_within(0.000001).of( Time.new(1916, 1, 1, 0, 0, 0, "-00:25:21") )
115
+ end
116
+ end
117
+
118
+ context 'identifier quotation' do
119
+ it 'should build an array out of an quoted identifier string' do
120
+ quoted_type = PG::TextDecoder::Identifier.new
121
+ expect( quoted_type.decode(%["A.".".B"]) ).to eq( ["A.", ".B"] )
122
+ expect( quoted_type.decode(%["'A"".""B'"]) ).to eq( ['\'A"."B\''] )
123
+ end
124
+
125
+ it 'should split unquoted identifier string' do
126
+ quoted_type = PG::TextDecoder::Identifier.new
127
+ expect( quoted_type.decode(%[a.b]) ).to eq( ['a','b'] )
128
+ expect( quoted_type.decode(%[a]) ).to eq( ['a'] )
129
+ end
130
+ end
131
+
88
132
  it "should raise when decode method is called with wrong args" do
89
133
  expect{ textdec_int.decode() }.to raise_error(ArgumentError)
90
134
  expect{ textdec_int.decode("123", 2, 3, 4) }.to raise_error(ArgumentError)
@@ -156,6 +200,15 @@ describe "PG::Type derivations" do
156
200
  expect( textenc_bytea.encode("\x00\x01\x02\x03\xef".b) ).to eq( "\\x00010203ef" )
157
201
  end
158
202
 
203
+ context 'identifier quotation' do
204
+ it 'should quote and escape identifier' do
205
+ quoted_type = PG::TextEncoder::Identifier.new
206
+ expect( quoted_type.encode(['schema','table','col']) ).to eq( %["schema"."table"."col"] )
207
+ expect( quoted_type.encode(['A.','.B']) ).to eq( %["A.".".B"] )
208
+ expect( quoted_type.encode(%['A"."B']) ).to eq( %["'A"".""B'"] )
209
+ end
210
+ end
211
+
159
212
  it "should encode with ruby encoder" do
160
213
  expect( intenc_incrementer.encode(3) ).to eq( "4 " )
161
214
  end
@@ -347,20 +400,6 @@ describe "PG::Type derivations" do
347
400
  array_type = PG::TextDecoder::Array.new elements_type: nil
348
401
  expect( array_type.decode(%[{3,4}]) ).to eq( ['3','4'] )
349
402
  end
350
-
351
- context 'identifier quotation' do
352
- it 'should build an array out of an quoted identifier string' do
353
- quoted_type = PG::TextDecoder::Identifier.new elements_type: textdec_string
354
- expect( quoted_type.decode(%["A.".".B"]) ).to eq( ["A.", ".B"] )
355
- expect( quoted_type.decode(%["'A"".""B'"]) ).to eq( ['\'A"."B\''] )
356
- end
357
-
358
- it 'should split unquoted identifier string' do
359
- quoted_type = PG::TextDecoder::Identifier.new elements_type: textdec_string
360
- expect( quoted_type.decode(%[a.b]) ).to eq( ['a','b'] )
361
- expect( quoted_type.decode(%[a]) ).to eq( ['a'] )
362
- end
363
- end
364
403
  end
365
404
 
366
405
  describe '#encode' do
@@ -422,22 +461,6 @@ describe "PG::Type derivations" do
422
461
  expect( textenc_float_array.encode(1234) ).to eq( "1234" )
423
462
  end
424
463
 
425
- context 'identifier quotation' do
426
- it 'should quote and escape identifier' do
427
- quoted_type = PG::TextEncoder::Identifier.new elements_type: textenc_string
428
- expect( quoted_type.encode(['schema','table','col']) ).to eq( %["schema"."table"."col"] )
429
- expect( quoted_type.encode(['A.','.B']) ).to eq( %["A.".".B"] )
430
- expect( quoted_type.encode(%['A"."B']) ).to eq( %["'A"".""B'"] )
431
- end
432
-
433
- it 'shouldn\'t quote or escape identifier if requested to not do' do
434
- quoted_type = PG::TextEncoder::Identifier.new elements_type: textenc_string,
435
- needs_quotation: false
436
- expect( quoted_type.encode(['a','b']) ).to eq( %[a.b] )
437
- expect( quoted_type.encode(%[a.b]) ).to eq( %[a.b] )
438
- end
439
- end
440
-
441
464
  context 'literal quotation' do
442
465
  it 'should quote and escape literals' do
443
466
  quoted_type = PG::TextEncoder::QuotedLiteral.new elements_type: textenc_string_array
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.1
4
+ version: 0.18.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Granger
@@ -13,7 +13,7 @@ cert_chain:
13
13
  -----BEGIN CERTIFICATE-----
14
14
  MIIDbDCCAlSgAwIBAgIBATANBgkqhkiG9w0BAQUFADA+MQwwCgYDVQQDDANnZWQx
15
15
  GTAXBgoJkiaJk/IsZAEZFglGYWVyaWVNVUQxEzARBgoJkiaJk/IsZAEZFgNvcmcw
16
- HhcNMTQwMzE5MDQzNTI2WhcNMTUwMzE5MDQzNTI2WjA+MQwwCgYDVQQDDANnZWQx
16
+ HhcNMTUwNDAxMjEyNDEzWhcNMTYwMzMxMjEyNDEzWjA+MQwwCgYDVQQDDANnZWQx
17
17
  GTAXBgoJkiaJk/IsZAEZFglGYWVyaWVNVUQxEzARBgoJkiaJk/IsZAEZFgNvcmcw
18
18
  ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDb92mkyYwuGBg1oRxt2tkH
19
19
  +Uo3LAsaL/APBfSLzy8o3+B3AUHKCjMUaVeBoZdWtMHB75X3VQlvXfZMyBxj59Vo
@@ -24,125 +24,125 @@ cert_chain:
24
24
  AgMBAAGjdTBzMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBSZ0hCV
25
25
  qoHr122fGKelqffzEQBhszAcBgNVHREEFTATgRFnZWRARmFlcmllTVVELm9yZzAc
26
26
  BgNVHRIEFTATgRFnZWRARmFlcmllTVVELm9yZzANBgkqhkiG9w0BAQUFAAOCAQEA
27
- TuL1Bzl6TBs1YEzEubFHb9XAPgehWzzUudjDKzTRd+uyZmxnomBqTCQjT5ucNRph
28
- 3jZ6bhLNooLQxTjIuHodeGcEMHZdt4Yi7SyPmw5Nry12z6wrDp+5aGps3HsE5WsQ
29
- Zq2EuyEOc96g31uoIvjNdieKs+1kE+K+dJDjtw+wTH2i63P7r6N/NfPPXpxsFquo
30
- wcYRRrHdR7GhdJeT+V8Q8Bi5bglCUGdx+8scMgkkePc98k9osQHypbACmzO+Bqkv
31
- c7ZKPJcWBv0sm81+FCZXNACn2f9jfF8OQinxVs0O052KbGuEQaaiGIYeuuwQE2q6
32
- ggcrPfcYeTwWlfZPu2LrBg==
27
+ lUKo3NXePpuvN3QGsOLJ6QhNd4+Q9Rz75GipuMrCl296V8QFkd2gg9EG44Pqtk+9
28
+ Zac8TkKc9bCSR0snakp+cCPplVvZF0/gMzkSTUJkDBHlNV16z73CyWpbQQa+iLJ4
29
+ uisI6gF2ZXK919MYLn2bFJfb7OsCvVfyTPqq8afPY+rq9vlf9ZPwU49AlD8bPRic
30
+ 0LX0gO5ykvETIOv+WgGcqp96ceNi9XVuJMh20uWuw6pmv/Ub2RqAf82jQSbpz09G
31
+ G8LHR7EjtPPmqCCunfyecJ6MmCNaiJCBxq2NYzyNmluPyHT8+0fuB5kccUVZm6CD
32
+ xn3DzOkDE6NYbk8gC9rTsA==
33
33
  -----END CERTIFICATE-----
34
- date: 2015-01-05 00:00:00.000000000 Z
34
+ date: 2015-05-14 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: hoe-mercurial
38
38
  requirement: !ruby/object:Gem::Requirement
39
39
  requirements:
40
- - - ~>
40
+ - - "~>"
41
41
  - !ruby/object:Gem::Version
42
42
  version: '1.4'
43
43
  type: :development
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - ~>
47
+ - - "~>"
48
48
  - !ruby/object:Gem::Version
49
49
  version: '1.4'
50
50
  - !ruby/object:Gem::Dependency
51
51
  name: hoe-deveiate
52
52
  requirement: !ruby/object:Gem::Requirement
53
53
  requirements:
54
- - - ~>
54
+ - - "~>"
55
55
  - !ruby/object:Gem::Version
56
56
  version: '0.6'
57
57
  type: :development
58
58
  prerelease: false
59
59
  version_requirements: !ruby/object:Gem::Requirement
60
60
  requirements:
61
- - - ~>
61
+ - - "~>"
62
62
  - !ruby/object:Gem::Version
63
63
  version: '0.6'
64
64
  - !ruby/object:Gem::Dependency
65
65
  name: hoe-highline
66
66
  requirement: !ruby/object:Gem::Requirement
67
67
  requirements:
68
- - - ~>
68
+ - - "~>"
69
69
  - !ruby/object:Gem::Version
70
70
  version: '0.2'
71
71
  type: :development
72
72
  prerelease: false
73
73
  version_requirements: !ruby/object:Gem::Requirement
74
74
  requirements:
75
- - - ~>
75
+ - - "~>"
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0.2'
78
78
  - !ruby/object:Gem::Dependency
79
79
  name: rdoc
80
80
  requirement: !ruby/object:Gem::Requirement
81
81
  requirements:
82
- - - ~>
82
+ - - "~>"
83
83
  - !ruby/object:Gem::Version
84
84
  version: '4.0'
85
85
  type: :development
86
86
  prerelease: false
87
87
  version_requirements: !ruby/object:Gem::Requirement
88
88
  requirements:
89
- - - ~>
89
+ - - "~>"
90
90
  - !ruby/object:Gem::Version
91
91
  version: '4.0'
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: rake-compiler
94
94
  requirement: !ruby/object:Gem::Requirement
95
95
  requirements:
96
- - - ~>
96
+ - - "~>"
97
97
  - !ruby/object:Gem::Version
98
98
  version: '0.9'
99
99
  type: :development
100
100
  prerelease: false
101
101
  version_requirements: !ruby/object:Gem::Requirement
102
102
  requirements:
103
- - - ~>
103
+ - - "~>"
104
104
  - !ruby/object:Gem::Version
105
105
  version: '0.9'
106
106
  - !ruby/object:Gem::Dependency
107
107
  name: hoe
108
108
  requirement: !ruby/object:Gem::Requirement
109
109
  requirements:
110
- - - ~>
110
+ - - "~>"
111
111
  - !ruby/object:Gem::Version
112
112
  version: '3.12'
113
113
  type: :development
114
114
  prerelease: false
115
115
  version_requirements: !ruby/object:Gem::Requirement
116
116
  requirements:
117
- - - ~>
117
+ - - "~>"
118
118
  - !ruby/object:Gem::Version
119
119
  version: '3.12'
120
120
  - !ruby/object:Gem::Dependency
121
121
  name: hoe-bundler
122
122
  requirement: !ruby/object:Gem::Requirement
123
123
  requirements:
124
- - - ~>
124
+ - - "~>"
125
125
  - !ruby/object:Gem::Version
126
126
  version: '1.0'
127
127
  type: :development
128
128
  prerelease: false
129
129
  version_requirements: !ruby/object:Gem::Requirement
130
130
  requirements:
131
- - - ~>
131
+ - - "~>"
132
132
  - !ruby/object:Gem::Version
133
133
  version: '1.0'
134
134
  - !ruby/object:Gem::Dependency
135
135
  name: rspec
136
136
  requirement: !ruby/object:Gem::Requirement
137
137
  requirements:
138
- - - ~>
138
+ - - "~>"
139
139
  - !ruby/object:Gem::Version
140
140
  version: '3.0'
141
141
  type: :development
142
142
  prerelease: false
143
143
  version_requirements: !ruby/object:Gem::Requirement
144
144
  requirements:
145
- - - ~>
145
+ - - "~>"
146
146
  - !ruby/object:Gem::Version
147
147
  version: '3.0'
148
148
  description: |-
@@ -202,7 +202,7 @@ extra_rdoc_files:
202
202
  - ext/pg_type_map_in_ruby.c
203
203
  - ext/util.c
204
204
  files:
205
- - .gemtest
205
+ - ".gemtest"
206
206
  - BSDL
207
207
  - ChangeLog
208
208
  - Contributors.rdoc
@@ -295,27 +295,27 @@ licenses:
295
295
  metadata: {}
296
296
  post_install_message:
297
297
  rdoc_options:
298
- - -f
298
+ - "-f"
299
299
  - fivefish
300
- - -t
300
+ - "-t"
301
301
  - 'pg: The Ruby Interface to PostgreSQL'
302
- - -m
302
+ - "-m"
303
303
  - README.rdoc
304
304
  require_paths:
305
305
  - lib
306
306
  required_ruby_version: !ruby/object:Gem::Requirement
307
307
  requirements:
308
- - - '>='
308
+ - - ">="
309
309
  - !ruby/object:Gem::Version
310
310
  version: 1.9.3
311
311
  required_rubygems_version: !ruby/object:Gem::Requirement
312
312
  requirements:
313
- - - '>='
313
+ - - ">="
314
314
  - !ruby/object:Gem::Version
315
315
  version: '0'
316
316
  requirements: []
317
317
  rubyforge_project:
318
- rubygems_version: 2.4.5
318
+ rubygems_version: 2.4.6
319
319
  signing_key:
320
320
  specification_version: 4
321
321
  summary: Pg is the Ruby interface to the {PostgreSQL RDBMS}[http://www.postgresql.org/]
metadata.gz.sig CHANGED
Binary file