fixture_fox 0.2.7 → 0.2.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/exe/fox +10 -3
- data/lib/fixture_fox/analyzer.rb +13 -7
- data/lib/fixture_fox/ast.rb +0 -9
- data/lib/fixture_fox/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: 50051aef4f91108da08251be8bed03837c44b2fcc39c0a28156601ac8c36ddff
|
4
|
+
data.tar.gz: 329e39a3220f4b9503d3a25a09bafcb0ad1605bfb8e38203a8ab89766a6607eb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5f97dbaa8de152779d9b9b3d092b8b4ea10121d2ef79250b92f59e5a9aa9ab984108d6cb565d039e68a6c23ca6f164b243d985b0e7d855a789fe2bce5848592e
|
7
|
+
data.tar.gz: 19671da5508132d13cfc5a3c9c5e796ad729e1daedae4eafe63e42911c36d9cbe9f89148aaa1e0e237ee560164970f28fa9cf0ae11f75d813a236b888b5bfdde
|
data/exe/fox
CHANGED
@@ -44,6 +44,11 @@ SPEC = %(
|
|
44
44
|
-x,exec
|
45
45
|
Execute the generated SQL instead of printing it on standard output
|
46
46
|
|
47
|
+
+e,exclude=SCHEMA,
|
48
|
+
Exclude the given schemas. The schemas are passed on to PgGraph to
|
49
|
+
exclude schemas that doesn't comply with PgGraph's naming conventions,
|
50
|
+
typically FDW schemas. This option can be repeated
|
51
|
+
|
47
52
|
-t,time
|
48
53
|
Emit timings for sub-processes
|
49
54
|
|
@@ -67,7 +72,7 @@ begin
|
|
67
72
|
|
68
73
|
opts.format ||= 'psql'
|
69
74
|
|
70
|
-
if opts.state?
|
75
|
+
if opts.state?
|
71
76
|
opts.state = File.expand_path(opts.state || DEFAULT_STATE_FILE)
|
72
77
|
FileUtils.touch(opts.state) if !File.exist?(opts.state)
|
73
78
|
end
|
@@ -103,8 +108,10 @@ begin
|
|
103
108
|
reflector = tg.time("reflections") { PgGraph::Reflector.new }
|
104
109
|
end
|
105
110
|
|
106
|
-
#
|
107
|
-
type = tg.time("type") { PgGraph::Type.new(meta, reflector) }
|
111
|
+
# Load types
|
112
|
+
type = tg.time("type") { PgGraph::Type.new(meta, reflector, ignore: opts.exclude || []) }
|
113
|
+
|
114
|
+
# Dump types?
|
108
115
|
if opts.dump == "type"
|
109
116
|
type.dump
|
110
117
|
exit
|
data/lib/fixture_fox/analyzer.rb
CHANGED
@@ -211,8 +211,6 @@ module FixtureFox
|
|
211
211
|
end
|
212
212
|
|
213
213
|
def generate_record_ids
|
214
|
-
# puts "generate_record_ids"
|
215
|
-
# puts " ids: #{@ids}"
|
216
214
|
@super_table_records = [] # Array of pairs of super_table/id
|
217
215
|
records.each { |ast_record|
|
218
216
|
table = ast_record.type.table
|
@@ -270,19 +268,17 @@ module FixtureFox
|
|
270
268
|
records.each { |record|
|
271
269
|
record.members.each { |field|
|
272
270
|
table = nil # To bring table into scope. FIXME: Yt?
|
271
|
+
# puts "#{field.class}"
|
273
272
|
case field
|
274
273
|
when AstFieldMember
|
275
|
-
# puts "AstFieldMember: #{field}"
|
276
274
|
table = record.type.table
|
277
275
|
column = field.column.postgres_column
|
278
276
|
idr.put(table.schema.name, table.name, record.id, column, field.value.value)
|
279
277
|
when AstReferenceMember
|
280
|
-
# puts "AstReferenceMember: #{field}"
|
281
278
|
table = record.type.table
|
282
279
|
column = field.column.postgres_column
|
283
280
|
idr.put(table.schema.name, table.name, record.id, column, field.referenced_anchor.id)
|
284
281
|
when AstRecordMember
|
285
|
-
# puts "AstRecordMember: #{record.type}"
|
286
282
|
column = field.column
|
287
283
|
|
288
284
|
this_record_id = field.record.id
|
@@ -300,7 +296,6 @@ module FixtureFox
|
|
300
296
|
idr.put(schema.name, table.name, that_record_id, link_column, this_record_id)
|
301
297
|
end
|
302
298
|
when AstTableMember
|
303
|
-
# puts "AstTableMember: #{field}"
|
304
299
|
if field.column.is_a?(PgGraph::Type::MmTableColumn)
|
305
300
|
table = mm_table = field.column.mm_table
|
306
301
|
this_mm_column = field.column.this_mm_column
|
@@ -316,11 +311,22 @@ module FixtureFox
|
|
316
311
|
else
|
317
312
|
table = record_table = field.column.type.table
|
318
313
|
record_column = field.column
|
314
|
+
|
319
315
|
field.elements.each { |r|
|
320
316
|
record_id = r.is_a?(AstReferenceElement) ? r.referenced_anchor.id : r.id
|
317
|
+
if record_table[record_column.that_link_column].kind?
|
318
|
+
key_schema_name = record_column.table.schema.name
|
319
|
+
key_table_name = record_column.table.name
|
320
|
+
key_record_id = record.id
|
321
|
+
key_field = record_column.this_link_column.to_sym
|
322
|
+
key = idr.data[key_schema_name][key_table_name][key_record_id][key_field]
|
323
|
+
else
|
324
|
+
key = record.id
|
325
|
+
end
|
326
|
+
|
321
327
|
idr.put(
|
322
328
|
record_table.schema.name, record_table.name,
|
323
|
-
record_id, record_column.that_link_column,
|
329
|
+
record_id, record_column.that_link_column, key)
|
324
330
|
}
|
325
331
|
end
|
326
332
|
else
|
data/lib/fixture_fox/ast.rb
CHANGED
data/lib/fixture_fox/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fixture_fox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Claus Rasmussen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-09-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pg
|