pg_graph 0.5.1 → 0.5.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/exe/pg_graph +2 -0
- data/lib/pg_graph/data/render.rb +2 -1
- data/lib/pg_graph/reflector.rb +17 -4
- data/lib/pg_graph/type/read.rb +2 -2
- data/lib/pg_graph/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: c459728a41d81e623602fa57ad501d0471e674b398964a4c462b35ba38753fa4
|
4
|
+
data.tar.gz: c2f31952b99c64e13c197faff4f63b5c6dd0d2cbbc8e57fdd8afb8d3383d67a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d4fe21aead7e99b9196586701edc291d521c5a71b4d94e1fdbe32b87471845bcaf34bbf802751cc86ccd80b4107f6a39f5f1138f0ded644b7480db92c64ebe4c
|
7
|
+
data.tar.gz: e30768a57d8c0fec136af5f772b1584f91a5cf0cf7f2616297d3eeb4a40e36cbbc7e42cd005f37a6f5540730e5b4db00ee7ce580e27a1aedd67513802fecb1c1
|
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
|
data/lib/pg_graph/data/render.rb
CHANGED
@@ -213,7 +213,8 @@ module PgGraph::Data
|
|
213
213
|
|
214
214
|
def render_inserts
|
215
215
|
@insert_records.map { |table, records|
|
216
|
-
"insert into #{table.uid} (#{table.type.value_columns.map(&:name).join(', ')})
|
216
|
+
"insert into #{table.uid} (#{table.type.value_columns.map(&:name).join(', ')})" + \
|
217
|
+
" overriding system value values " + \
|
217
218
|
records.sort_by(&:id).map { |record|
|
218
219
|
"(" +
|
219
220
|
record.type.value_columns.map { |column_type|
|
data/lib/pg_graph/reflector.rb
CHANGED
@@ -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
|
147
|
-
#
|
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))
|
@@ -202,6 +214,7 @@ module PgGraph
|
|
202
214
|
conn.exec %(
|
203
215
|
insert into #{schema}.#{table}
|
204
216
|
(match, this, that, multi, pluralize, default_reflection, ordinal)
|
217
|
+
overriding system value
|
205
218
|
values
|
206
219
|
#{values}
|
207
220
|
)
|
@@ -240,7 +253,7 @@ module PgGraph
|
|
240
253
|
match_data = reflection.re.match(uid) or next
|
241
254
|
template = reflection.send(kind).dup
|
242
255
|
if template == false
|
243
|
-
return
|
256
|
+
return [false, false]
|
244
257
|
elsif template
|
245
258
|
table ||= uid.split(".")[-2]
|
246
259
|
template.gsub!(/\$\$/, table)
|
data/lib/pg_graph/type/read.rb
CHANGED
@@ -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
|
150
|
+
next if !name
|
151
151
|
|
152
152
|
# Check for name collisions
|
153
153
|
if that_record_type.key?(name)
|
data/lib/pg_graph/version.rb
CHANGED
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.
|
4
|
+
version: 0.5.3
|
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: 2025-01-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: boolean
|