fixture_fox 0.2.7 → 0.2.9

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: f5d11738a008959b4da678a81352f3cf2d78c5a32dfcee362085cf9371b729ac
4
- data.tar.gz: 7fc2a1f30a2b3f5a940e2454c9856e2979b71317559b1577955e2cae1b08348b
3
+ metadata.gz: 50051aef4f91108da08251be8bed03837c44b2fcc39c0a28156601ac8c36ddff
4
+ data.tar.gz: 329e39a3220f4b9503d3a25a09bafcb0ad1605bfb8e38203a8ab89766a6607eb
5
5
  SHA512:
6
- metadata.gz: f34d0bf3301a95c14fc8666a86934c51e9ffc51de5016233a4567173731c1dd92827011db9b99225748dc0af26749246f177d52d98fa06df6b97989d5082cb22
7
- data.tar.gz: 5df4eb70caa2e9e1f21bd018f7c30ce0d9c93b718b4c9796b28632c74f31ca2ef419441907496fe0fe079567305fa6d07abc94a23d2307f6bf2b905f1adb3afc
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
- # Dump types
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
@@ -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, record.id)
329
+ record_id, record_column.that_link_column, key)
324
330
  }
325
331
  end
326
332
  else
@@ -165,12 +165,3 @@ module FixtureFox
165
165
  end
166
166
  end
167
167
 
168
-
169
-
170
-
171
-
172
-
173
-
174
-
175
-
176
-
@@ -1,3 +1,3 @@
1
1
  module FixtureFox
2
- VERSION = "0.2.7"
2
+ VERSION = "0.2.9"
3
3
  end
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.7
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-07-16 00:00:00.000000000 Z
11
+ date: 2024-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg