db-postgres 0.3.0 → 0.4.0

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
  SHA256:
3
- metadata.gz: c1e8cc873554e3bcefdbf489094450d6007f0451757cf16989f812fac85d33d2
4
- data.tar.gz: 91131bfb88f971578e00272aa4c410e445ed2906d051cae8105e389e35bd4423
3
+ metadata.gz: 7d9080559ec253dbc5e79e48cba81f8dec73e6bb9abd2f2cd5ae0cdeaf882b97
4
+ data.tar.gz: 8011d89fb8b19abbd805ca0068986da5763e189a7a0b046920e7d408cabdfa60
5
5
  SHA512:
6
- metadata.gz: e81269f302f34a4243f0122e3c33146e5f5e988ea90ab19424a11c2acaaea176547b2fdaa5cc339659f2847edf95b57dda6b0fbbd6077ececd6e9bef887badb7
7
- data.tar.gz: 1c5557f07a0234abbcf9609c655a63a22f5fc1178c25ed86cf8666b80fa88341ab893ffb94f6187ad38e9e9877a98bf9c09850ddff58a2d30c053c81c7051756
6
+ metadata.gz: 8e6e16336a47e226dcc2adaa548abd522a44af09dfe0751d09806fa991fed224dd254a34a39e2f8318da843a82936d988b27c854a2382b38f18a3e2b801c943d
7
+ data.tar.gz: 183c5724efcc8025409d2e6856c3934a154aa10c59b568a9e20d8ae90769fd1595b584b9a6fe5b0c8cb72759e3068f0296327a36eb7904a01590ca186d52d07c
data/lib/.DS_Store ADDED
Binary file
@@ -65,20 +65,33 @@ module DB
65
65
  end
66
66
 
67
67
  def append_identifier(value, buffer = String.new)
68
- buffer << @native.escape_identifier(value)
68
+ case value
69
+ when Array
70
+ first = true
71
+ value.each do |part|
72
+ buffer << '.' unless first
73
+ first = false
74
+
75
+ buffer << @native.escape_identifier(part)
76
+ end
77
+ else
78
+ buffer << @native.escape_identifier(value)
79
+ end
69
80
 
70
81
  return buffer
71
82
  end
72
83
 
73
- def id_column(name = 'id', primary_key: true)
84
+ def key_column(name = 'id', primary: true, null: false)
74
85
  buffer = String.new
75
86
 
76
87
  append_identifier(name, buffer)
77
88
 
78
89
  buffer << " BIGSERIAL"
79
90
 
80
- if primary_key
91
+ if primary
81
92
  buffer << " PRIMARY KEY"
93
+ elsif !null
94
+ buffer << " NOT NULL"
82
95
  end
83
96
 
84
97
  return buffer
@@ -54,6 +54,8 @@ module DB
54
54
  attach_function :free_memory, :PQfreemem, [:pointer], :void
55
55
 
56
56
  class Result < FFI::Pointer
57
+ include Enumerable
58
+
57
59
  def initialize(connection, types = {}, address)
58
60
  super(address)
59
61
 
@@ -99,16 +101,6 @@ module DB
99
101
  Native.clear(self)
100
102
  end
101
103
 
102
- def to_a
103
- rows = []
104
-
105
- self.each do |row|
106
- rows << row
107
- end
108
-
109
- return rows
110
- end
111
-
112
104
  protected
113
105
  def get_value(row, field)
114
106
  if Native.get_is_null(self, row, field) == 0
@@ -20,6 +20,6 @@
20
20
 
21
21
  module DB
22
22
  module Postgres
23
- VERSION = "0.3.0"
23
+ VERSION = "0.4.0"
24
24
  end
25
25
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: db-postgres
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-15 00:00:00.000000000 Z
11
+ date: 2021-04-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -128,6 +128,7 @@ executables: []
128
128
  extensions: []
129
129
  extra_rdoc_files: []
130
130
  files:
131
+ - lib/.DS_Store
131
132
  - lib/db/postgres.rb
132
133
  - lib/db/postgres/adapter.rb
133
134
  - lib/db/postgres/connection.rb
@@ -157,7 +158,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
157
158
  - !ruby/object:Gem::Version
158
159
  version: '0'
159
160
  requirements: []
160
- rubygems_version: 3.1.2
161
+ rubygems_version: 3.2.3
161
162
  signing_key:
162
163
  specification_version: 4
163
164
  summary: Ruby FFI bindings for libpq C interface.