db-postgres 0.3.0 → 0.4.0

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.
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.