pg_graph 0.3.6 → 0.4.1

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: 966d1a32c7d07915de4608914065d280dcefbcbb223e39ffafbb13c2cf5d4ad6
4
- data.tar.gz: 29a0a95e94a719d4b35c8d8f63d72b7f31822d7f3deb26856ba317e4e4304ef0
3
+ metadata.gz: 9c276d6c75a8880b77b66f8d40346511069a635088070835903b36ae2b000401
4
+ data.tar.gz: fc96bb277f909cc6da83566b2151d6a30628cb143e3d2cd9ecc7af1d800dd31d
5
5
  SHA512:
6
- metadata.gz: af39f3ce7708f17745a5d7575621b1e7d2c09b5097c4a904a19f0f94432cda2073edf8520937d7c69a363f3c929c233a47c9ed1fcd56868ed61ab16c3af85173
7
- data.tar.gz: b201dba4fb72b0082982b07799185b5931a246d1b8c52d0b0b3542653c7e6698408fbfb779b32830241a741c5c9c652c8009ad3d3e8e78718720ddfdae335690
6
+ metadata.gz: 6b5a9ef6de526ff63c3930677822eb244e7bc486fe95d4db340592ea363c91427410cd1449cb46f8f99635aa3cff6886b9b30826dcea8163a63c7d36fbad4eaa
7
+ data.tar.gz: eae096de222265d3d229bbc755356781bf1c7027cfdd54eec382f08c98c390bb6fe5d43ee3e47df17ef949b5b4c4d4b3e33241ebc3441f882ddcd6129f1bc82c
data/doc/diagram.drawio CHANGED
@@ -1 +1 @@
1
- <mxfile host="Electron" modified="2023-12-17T02:17:24.280Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.5.1 Chrome/89.0.4389.82 Electron/12.0.1 Safari/537.36" etag="kcVUq0MUUabcbGdeMGgH" version="14.5.1" type="device" pages="4"><diagram name="PgGraph::Type" id="cKRLOOJVSauCXKW0aq4U">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</diagram><diagram name="PgGraph::Data" id="GMbTPo9J8OV5Z1ZZLrwW">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</diagram><diagram id="Xuq1FaBXCnIs1bzDGohJ" name="Example">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</diagram><diagram id="KvlQ_p8h7sZ-zoqvewi3" name="Page-3">7Vpdb5swFP01PFYCGwh5zEezSlOnKJ22aS8VhRvi1WDmOGmyXz8DhoCTqmnUNhRFqlp8fH2v7/U5tkNj4FG8+cL9dHHLQqAGMsONgccGQpaNkJH9mOG2QPqeWQARJ6Ey2gF35B8osDRbkRCWDUPBGBUkbYIBSxIIRAPzOWdPTbM5o82oqR/BHnAX+HQf/UlCsVCo5fZ3HTdAooUK7aFe0RH7pbHKZLnwQ/ZUg/C1gUecMVE8xZsR0Kx4ZV2C+2BmAYj7P/8WTjhlP2bTb1eFs8lrhlQpcEjEya6Xv8Rwltxag/vHmQ2/h+vZzVc1xFz7dKXqZSCXyiDDNMtYbFUZ3b+rLM1h7POIJAYeyF4z3cjfEsyLleFXgqVFn13rE7ARVz4lkRoXyCyAN7tDCBj3BWHKZpWEwClJYBdaPkXqbz7BhxKYRrcg/BKWBXjQTSWW6tiC68hJGVOYi6LTyzqfnexetOacUCM2WgMXRHJ4UFRtnNd1qGo4LmIOmbSa05yRcyKXGg/nLBFKgRZS7YkfE5pp9wboGjKvWfIippmRfKxYnTcEZ48wYpTxfCLYNDF23cyVjFDDx/a1NXGqqWfzhY0muBfYalUSknsPsBgE38pxykvPVtRU245dtp9qIjYVtqjp11WYr/aNqHK904Z8UPJ4hVSsTkgl3+WzgXjwfZvCRTWdVg02z60a1DXVjP3LWdMx1TjYaZlqcAdUM2Gbi046pRNXO10s99w6sTugkylbimUKwUUsnRIL6jstE4vTBbFEdyRO6eVzS7fEot/AHO/cYnEPiEVbNkjCQfaCUrYSJtnbKHRhDeHey8lj6iTDsBUP4GUxC8lLEC+dkPt1r9XVOVDWEuNApVDXzRwO1VpFmDIis6uWFePmhQHZ2nIVaapR9XeXuiNPu3n0NUdFHfYc5UtfpX06G7yOsME0zsiGnttcRBefyAbPajqqdosPYkO/5Wwwj2TDM3vyB7Gh/1ZssM/LhpKMraUD/hR0QNpR0TuRDr2e5gh9MB0O/Z+gTXRAR9IBn5MOSDvwbV3UR98ctCuIrW8z702HQ6/yPiMdWnWRdKxT6aDzSv8A8d50OPTGqk10sD/l7nDqYbG3O7zZYSGbu2+GFOa779fg6/8=</diagram></mxfile>
1
+ <mxfile host="Electron" modified="2023-12-17T05:00:21.171Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.5.1 Chrome/89.0.4389.82 Electron/12.0.1 Safari/537.36" etag="McMkOBbJ6DXexKbjZrkx" version="14.5.1" type="device" pages="4"><diagram name="PgGraph::Type" id="cKRLOOJVSauCXKW0aq4U">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</diagram><diagram name="PgGraph::Data" id="GMbTPo9J8OV5Z1ZZLrwW">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</diagram><diagram id="Xuq1FaBXCnIs1bzDGohJ" name="Example">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</diagram><diagram id="KvlQ_p8h7sZ-zoqvewi3" name="Page-3">7Vpdb5swFP01PFYCGwh5zEezSlOnKJ22aS8VhRvi1WDmOGmyXz8DhoCTqmnUNhRFqlp8fH2v7/U5tkNj4FG8+cL9dHHLQqAGMsONgccGQpaNkJH9mOG2QPqeWQARJ6Ey2gF35B8osDRbkRCWDUPBGBUkbYIBSxIIRAPzOWdPTbM5o82oqR/BHnAX+HQf/UlCsVCo5fZ3HTdAooUK7aFe0RH7pbHKZLnwQ/ZUg/C1gUecMVE8xZsR0Kx4ZV2C+2BmAYj7P/8WTjhlP2bTb1eFs8lrhlQpcEjEya6Xv8Rwltxag/vHmQ2/h+vZzVc1xFz7dKXqZSCXyiDDNMtYbFUZ3b+rLM1h7POIJAYeyF4z3cjfEsyLleFXgqVFn13rE7ARVz4lkRoXyCyAN7tDCBj3BWHKZpWEwClJYBdaPkXqbz7BhxKYRrcg/BKWBXjQTSWW6tiC68hJGVOYi6LTyzqfnexetOacUCM2WgMXRHJ4UFRtnNd1qGo4LmIOmbSa05yRcyKXGg/nLBFKgRZS7YkfE5pp9wboGjKvWfIippmRfKxYnTcEZ48wYpTxfCLYNDF23cyVjFDDx/a1NXGqqWfzhY0muBfYalUSknsPsBgE38pxykvPVtRU245dtp9qIjYVtqjp11WYr/aNqHK904Z8UPJ4hVSsTkgl3+WzgXjwfZvCRTWdVg02z60a1DXVjP3LWdMx1TjYaZlqcAdUM2Gbi046pRNXO10s99w6sTugkylbimUKwUUsnRIL6jstE4vTBbFEdyRO6eVzS7fEot/AHO/cYnEPiEVbNkjCQfaCUrYSJtnbKHRhDeHey8lj6iTDsBUP4GUxC8lLEC+dkPt1r9XVOVDWEuNApVDXzRwO1VpFmDIis6uWFePmhQHZ2nIVaapR9XeXuiNPu3n0NUdFHfYc5UtfpX06G7yOsME0zsiGnttcRBefyAbPajqqdosPYkO/5Wwwj2TDM3vyB7Gh/1ZssM/LhpKMraUD/hR0QNpR0TuRDr2e5gh9MB0O/Z+gTXRAR9IBn5MOSDvwbV3UR98ctCuIrW8z702HQ6/yPiMdWnWRdKxT6aDzSv8A8d50OPTGqk10sD/l7nDqYbG3O7zZYSGbu2+GFOa779fg6/8=</diagram></mxfile>
@@ -211,7 +211,7 @@ module PgGraph::Data
211
211
 
212
212
  def render_restart_sequences()
213
213
  @tables.map { |table|
214
- if table.type.subtable?
214
+ if table.type.sub_table?
215
215
  nil
216
216
  elsif table.empty? && @with_deletes || !table.empty? && table.max_id > @ids[table.uid]
217
217
  "alter table #{table.uid} alter column id restart with #{table.max_id+1};"
@@ -2,8 +2,8 @@ require 'indented_io'
2
2
 
3
3
  module PgGraph::Type
4
4
  class Node
5
- def dump(children = self.children.values.sort_by(&:name), link_info: false, supertable: nil)
6
- print identifier + (supertable ? " < #{supertable}" : "")
5
+ def dump(children = self.children.values.sort_by(&:name), link_info: false, super_table: nil)
6
+ print identifier + (super_table ? " < #{super_table}" : "")
7
7
  puts
8
8
  indent { children.each { |child| child.dump(link_info: link_info) } }
9
9
  end
@@ -17,11 +17,11 @@ module PgGraph::Type
17
17
 
18
18
  class RecordType
19
19
  def dump(**opts)
20
- supertable = table.supertable&.identifier
20
+ super_table = table.super_table&.identifier
21
21
  columns = fields.reject { |column|
22
22
  column.primary_key? || column.name =~ /_id$/ || column.name =~ /_kind$/ # FIXME
23
23
  }
24
- super(columns, supertable: supertable, **opts)
24
+ super(columns, super_table: super_table, **opts)
25
25
  end
26
26
  end
27
27
 
@@ -179,7 +179,7 @@ module PgGraph::Type
179
179
  end
180
180
  }
181
181
 
182
- # Setup super/subtables
182
+ # Setup super/sub_tables
183
183
  id_link_columns.each { |this_record_type, meta_column|
184
184
  # Create forward and backward references for id links
185
185
  constraint = meta_column.references.first
@@ -152,14 +152,17 @@ module PgGraph::Type
152
152
 
153
153
  forward_method :type, :keys, :fields, :key?, :[], :columns, :value_columns, :column?
154
154
 
155
- # True if table is a derived table
156
- def subtable?() !supertable.nil? end
155
+ # True if table is a derived table. TODO: Use sub_table etc.
156
+ def sub_table?() !super_table.nil? end
157
157
 
158
158
  # Parent table if this table is a derived table and otherwise nil
159
- def supertable = record_type.superrecord&.table
159
+ def super_table = record_type.super_record&.table
160
+
161
+ # Recursive parent table if table is a derived table and otherwise nil
162
+ def root_table = record_type.root_record&.table
160
163
 
161
164
  # True if table is a parent table. Initialized by #read
162
- def supertable?() record_type.subrecord? end
165
+ def super_table?() record_type.sub_record? end
163
166
 
164
167
  def mm_table?() @mm_table end
165
168
  def nm_table?() @nm_table end
@@ -237,17 +240,28 @@ module PgGraph::Type
237
240
  # Redefine array_type
238
241
  def array_type() table_type end
239
242
 
240
- def superrecord()
241
- (@superrecord_initialized && @superrecord) or begin
242
- @superrecord_initialized = true
243
- @superrecord = fields.find { |field| field.is_a?(SuperRecordColumn) }&.type
243
+ def super_record()
244
+ (@super_record_initialized && @super_record) or begin
245
+ @super_record_initialized = true
246
+ @super_record = fields.find { |field| field.is_a?(SuperRecordColumn) }&.type
247
+ end
248
+ end
249
+
250
+ def root_record()
251
+ (@root_record_initialized && @root_record) or begin
252
+ @root_record_initialized = true
253
+ @root_record = super_record
254
+ while @root_record&.super_record
255
+ @root_record = @root_record.super_record
256
+ end
257
+ @root_record
244
258
  end
245
259
  end
246
260
 
247
- def subrecord?
248
- (@subrecord_initialized && subrecord) or begin
249
- @subrecord_initialized = true
250
- @subrecord = fields.find { |field| field.is_a?(SubRecordColumn) } && true || false
261
+ def sub_record?
262
+ (@sub_record_initialized && sub_record) or begin
263
+ @sub_record_initialized = true
264
+ @sub_record = fields.find { |field| field.is_a?(SubRecordColumn) } && true || false
251
265
  end
252
266
  end
253
267
 
@@ -259,7 +273,7 @@ module PgGraph::Type
259
273
  @table = table
260
274
  table_type = TableType.new(table.schema, self) # FIXME
261
275
  @table.send(:type=, table_type)
262
- @superrecord_initialized = false
276
+ @super_record_initialized = false
263
277
  end
264
278
 
265
279
  def attach(*args)
@@ -1,3 +1,3 @@
1
1
  module PgGraph
2
- VERSION = "0.3.6"
2
+ VERSION = "0.4.1"
3
3
  end
data/lib/pg_graph.rb CHANGED
@@ -10,23 +10,23 @@ require "developer_exceptions"
10
10
 
11
11
  require "hash_tree"
12
12
 
13
- require "ext/meta.rb"
14
- require "ext/module.rb"
13
+ require "pg_graph/ext/meta.rb"
14
+ require "pg_graph/ext/module.rb"
15
15
 
16
16
  require "pg_graph/version.rb"
17
17
  require "pg_graph/inflector.rb"
18
18
  require "pg_graph/reflector.rb"
19
19
 
20
- require "type/type.rb"
21
- require "type/read.rb"
22
- require "type/dump_type.rb"
20
+ require "pg_graph/type/type.rb"
21
+ require "pg_graph/type/read.rb"
22
+ require "pg_graph/type/dump_type.rb"
23
23
 
24
- require "data/data.rb"
25
- require "data/association.rb"
26
- require "data/value.rb"
27
- require "data/dimension.rb"
28
- require "data/read.rb"
29
- require "data/render.rb"
24
+ require "pg_graph/data/data.rb"
25
+ require "pg_graph/data/association.rb"
26
+ require "pg_graph/data/value.rb"
27
+ require "pg_graph/data/dimension.rb"
28
+ require "pg_graph/data/read.rb"
29
+ require "pg_graph/data/render.rb"
30
30
 
31
31
  module PgGraph
32
32
  include DeveloperExceptions
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg_graph
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Claus Rasmussen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-12-17 00:00:00.000000000 Z
11
+ date: 2024-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: boolean
@@ -198,22 +198,22 @@ files:
198
198
  - bin/setup
199
199
  - doc/diagram.drawio
200
200
  - exe/pg_graph
201
- - lib/data/association.rb
202
- - lib/data/data.rb
203
- - lib/data/dimension.rb
204
- - lib/data/read.rb
205
- - lib/data/render.rb
206
- - lib/data/value.rb
207
- - lib/ext/meta.rb
208
- - lib/ext/module.rb
209
201
  - lib/pg_graph.rb
202
+ - lib/pg_graph/data/association.rb
203
+ - lib/pg_graph/data/data.rb
204
+ - lib/pg_graph/data/dimension.rb
205
+ - lib/pg_graph/data/read.rb
206
+ - lib/pg_graph/data/render.rb
207
+ - lib/pg_graph/data/value.rb
208
+ - lib/pg_graph/ext/meta.rb
209
+ - lib/pg_graph/ext/module.rb
210
210
  - lib/pg_graph/inflector.rb
211
211
  - lib/pg_graph/reflector.rb
212
212
  - lib/pg_graph/timer.rb
213
+ - lib/pg_graph/type/dump_type.rb
214
+ - lib/pg_graph/type/read.rb
215
+ - lib/pg_graph/type/type.rb
213
216
  - lib/pg_graph/version.rb
214
- - lib/type/dump_type.rb
215
- - lib/type/read.rb
216
- - lib/type/type.rb
217
217
  - pg_graph.gemspec
218
218
  - snippets/1-1.sql
219
219
  - snippets/N-M.sql
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes