pg_meta 0.2.2 → 0.2.4
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 +4 -4
- data/lib/pg_meta/meta.rb +29 -4
- data/lib/pg_meta/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 41bfef6f94d3f36e05970e1e7894f7cbf31a5658d424186caa10deb6b14adc5d
|
4
|
+
data.tar.gz: 2c2b1e00874ee2d7c33ca83fd22a10a6367b21656ef0d4653a6289b3e2874814
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c7815f55fea97137928df544fb2456ab4c7aa10e4eee0727491ed18904c63ed9c48c4a024e56db48e5c669b9e6c3fecb83bcfacb13ff6a0dfe8bd8eb57a4a0b3
|
7
|
+
data.tar.gz: 022334e098b1f5cd42ea2a503421a46c5ced08637ff4d50414e9e77e8b482fac9fe976b5e507224828b4ae0fc9e2dba46e1559b8b5d7332a7197e8db9cbd10e3
|
data/lib/pg_meta/meta.rb
CHANGED
@@ -2,20 +2,28 @@ require 'yaml'
|
|
2
2
|
|
3
3
|
module PgMeta
|
4
4
|
class Node
|
5
|
-
# Database object. Equal to self for Database objects
|
5
|
+
# Database object. Equal to self for Database objects. TODO: Rename 'database'
|
6
6
|
attr_reader :root
|
7
7
|
|
8
8
|
# Parent object. nil for Database objects
|
9
9
|
attr_reader :parent
|
10
10
|
|
11
11
|
# Unique name within parent context. This is usually what we understand as
|
12
|
-
# the name of an object but functions have the full signature as "name"
|
12
|
+
# the name of an object but functions have the full signature as "name",
|
13
|
+
# eg. 'func(integer)'
|
13
14
|
attr_reader :name
|
14
15
|
|
16
|
+
# Unique id within a schema. Only tables, columns, and functions have a sid
|
17
|
+
def sid()
|
18
|
+
@sid = nil
|
19
|
+
end
|
20
|
+
|
21
|
+
# Unique id within a database. The database object itself has a nil uid
|
15
22
|
def uid()
|
16
23
|
@uid ||= [parent.uid, name].compact.join(".")
|
17
24
|
end
|
18
25
|
|
26
|
+
# Unique id within a RDBMS
|
19
27
|
def guid()
|
20
28
|
@guid ||= [parent.guid, name].compact.join(".")
|
21
29
|
end
|
@@ -27,8 +35,9 @@ module PgMeta
|
|
27
35
|
parent && parent.root.send(:add_node, self) # Add object to global database lookup
|
28
36
|
end
|
29
37
|
|
30
|
-
def
|
31
|
-
def
|
38
|
+
def to_s = name.to_s
|
39
|
+
def to_h = raise StandardError, "Undefined method"
|
40
|
+
def to_yaml = to_h.to_yaml
|
32
41
|
|
33
42
|
def inspect() "#<#{self.class}:#{guid}>" end
|
34
43
|
|
@@ -134,6 +143,9 @@ module PgMeta
|
|
134
143
|
database.schemas[name] = self
|
135
144
|
end
|
136
145
|
|
146
|
+
# Lookup schema objects by sid
|
147
|
+
def [](sid) = database["#{uid}.#{sid}"]
|
148
|
+
|
137
149
|
# True if schema is hidden. This can be set dynamically
|
138
150
|
def hidden?() @hidden end
|
139
151
|
|
@@ -154,6 +166,8 @@ module PgMeta
|
|
154
166
|
# Schema of the table
|
155
167
|
alias_method :schema, :parent
|
156
168
|
|
169
|
+
alias_method :sid, :name
|
170
|
+
|
157
171
|
# True iff table is a real table and not a view
|
158
172
|
def table?() true end
|
159
173
|
|
@@ -182,6 +196,9 @@ module PgMeta
|
|
182
196
|
end
|
183
197
|
end
|
184
198
|
|
199
|
+
# Lookup column by name
|
200
|
+
def [](name) = @columns[name]
|
201
|
+
|
185
202
|
# List of primary key columns
|
186
203
|
#
|
187
204
|
# Note: Assigned by PrimaryKeyConstraint#initialize
|
@@ -296,6 +313,10 @@ module PgMeta
|
|
296
313
|
end
|
297
314
|
|
298
315
|
class Column < Node
|
316
|
+
def sid()
|
317
|
+
@sid ||= "#{table.name}.#{name}"
|
318
|
+
end
|
319
|
+
|
299
320
|
# Table of the column
|
300
321
|
alias_method :table, :parent
|
301
322
|
|
@@ -495,6 +516,10 @@ module PgMeta
|
|
495
516
|
end
|
496
517
|
|
497
518
|
class Function < Node
|
519
|
+
def sid()
|
520
|
+
@sid ||= name
|
521
|
+
end
|
522
|
+
|
498
523
|
# Schema of the function
|
499
524
|
alias_method :schema, :parent
|
500
525
|
|
data/lib/pg_meta/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pg_meta
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Claus Rasmussen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-08-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: indented_io
|