pg_graph 0.5.1 → 0.5.2

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: 3605f3dc16a65459725b3890e9dc85d4c7f4bf3fbdbf216526a12a1c843ef6f7
4
- data.tar.gz: 34a6d5f23cf5914d43f53835f817aedb79f9699104c807d20d30fb9507633162
3
+ metadata.gz: 38b9eb4ca9867310cda60284befd00b8819dd91ab0f337c053a47e2045c41f35
4
+ data.tar.gz: f4fe9a924423df0b43b3e0609ba3075e864902ff7a6e92d1c7d2baf522065f31
5
5
  SHA512:
6
- metadata.gz: e5e870b7ecd6ec71a8c0b8e5196511963402a372374efa003c522b847ec3b92ba50904c36046451930a79f6265455f0ba33f2f65547bd6b39a79ab88dc7ba30c
7
- data.tar.gz: ec4d637a227f5a94beda42b2075240e9ecc1d70af3eaf1fa3c9c9c7c4d5990f269b70751985aa17482f3210c3ffbb635ed92638f8d5b5d69906c7e57fcc9526e
6
+ metadata.gz: f057d02742170bfb37e2fc93e6c1419c65ca8081e8543c33c497e29efa82598c9cb82ef10b3359143b7ad56482328de8c8b8e59b75749f89df940b355fe874f9
7
+ data.tar.gz: 37e9bc383ef07636a85740dd73350ba7dacd8b67036250b0959b41b31f4d91afef540f8ae4b841dbbbc513b50bd5b439e1b63230175a407d00cfd364302418a0
data/exe/pg_graph CHANGED
@@ -11,6 +11,8 @@ include ShellOpts
11
11
  SPEC = %(
12
12
  @ Load, dump, and clean databases
13
13
 
14
+ -- DATABASE
15
+
14
16
  pg_graph is a utility that uses the PgGraph module to load, dump, or clean a
15
17
  database. It uses a variety of formats that can be executed by psql(1)
16
18
  ('psql') or by the Postgres library exec() call ('exec', 'sql'). It can also
@@ -2,6 +2,12 @@
2
2
  require 'constrain'
3
3
  require 'indented_io'
4
4
 
5
+ def putv(*variables)
6
+ for var in Array(variables)
7
+ puts "#{var}: #{self.send(var).inspect}"
8
+ end
9
+ end
10
+
5
11
  module PgGraph
6
12
  class Reflection
7
13
  # Textual representation of match RE (String)
@@ -41,6 +47,11 @@ module PgGraph
41
47
  # True if this is a default reflection
42
48
  attr_reader :default_reflection
43
49
 
50
+ def dump
51
+ puts "Reflection"
52
+ indent { putv :match, :re, :this, :that, :multi?, :pluralize, :components }
53
+ end
54
+
44
55
  # +this+ and +that+ are template strings, nil, or false
45
56
  def initialize(match, this, that, multi = nil, pluralize = nil, default_reflection = false)
46
57
  constrain match, Regexp, String
@@ -141,10 +152,11 @@ module PgGraph
141
152
 
142
153
  # Find 'that' field name for the given UID by searching through reflections
143
154
  # for a match. The name is pluralized if the matcher returns true or if the
144
- # matcher returns nil and unique is false The :table option can be used to
155
+ # matcher returns nil and unique is false. The :table option can be used to
145
156
  # override the table name in '$$' rules. This is used in N:M and M:M
146
- # relations. Returns nil if no match was found or if a matching reflection
147
- # has #continue equal to false
157
+ # relations. Returns false if the :that property is set to false in the
158
+ # reflections file. Returns nil if no match was found or if a matching
159
+ # reflection has #continue equal to false
148
160
  def that(uid, unique, multi = false, table: nil)
149
161
  constrain uid, String
150
162
  if (name, pluralize = do_match(uid, :that, multi, table: table))
@@ -240,7 +252,7 @@ module PgGraph
240
252
  match_data = reflection.re.match(uid) or next
241
253
  template = reflection.send(kind).dup
242
254
  if template == false
243
- return nil
255
+ return [false, false]
244
256
  elsif template
245
257
  table ||= uid.split(".")[-2]
246
258
  template.gsub!(/\$\$/, table)
@@ -144,10 +144,10 @@ module PgGraph::Type
144
144
  else
145
145
  multi = reference_count[this_record_type][that_record_type] > 1
146
146
  name = reflector.that(uid, this_column.unique?, multi, table: this_record_type.name)
147
- name ||= PgGraph.inflector.pluralize(this_column.table.name) if this_column.kind?
147
+ name ||= PgGraph.inflector.pluralize(this_column.table.name) if name.nil? && this_column.kind?
148
148
  end
149
149
 
150
- next if name.nil?
150
+ next if !name
151
151
 
152
152
  # Check for name collisions
153
153
  if that_record_type.key?(name)
@@ -1,3 +1,3 @@
1
1
  module PgGraph
2
- VERSION = "0.5.1"
2
+ VERSION = "0.5.2"
3
3
  end
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.5.1
4
+ version: 0.5.2
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-24 00:00:00.000000000 Z
11
+ date: 2024-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: boolean