pg_graph 0.3.5 → 0.3.6

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: d6b2edcd76a35c76a8c18ca94f2e81416e8a5b1c12aa6688937216bf45250eb2
4
- data.tar.gz: 30bd02185aa89f1fa561e67bbced8bbdea4b69940f6790fdddf0edb037c49d2e
3
+ metadata.gz: 966d1a32c7d07915de4608914065d280dcefbcbb223e39ffafbb13c2cf5d4ad6
4
+ data.tar.gz: 29a0a95e94a719d4b35c8d8f63d72b7f31822d7f3deb26856ba317e4e4304ef0
5
5
  SHA512:
6
- metadata.gz: 1543e51a4838a9f5818abeef4cf9e2dbd213b693ac88af40ccc0744ec58bcb97ebe3c00f6b7f7f23174c5a285402e6a51eb07c36bbed7800c2d2654dd9a6cc37
7
- data.tar.gz: b246237fe7b0df971c6400cd12e17cad876d7514164c1f03de6a9167ac6e5f8dd0be6154c806dcafe7bcc7284da39fca35395dbcd01262c126fb63caa10c5c28
6
+ metadata.gz: af39f3ce7708f17745a5d7575621b1e7d2c09b5097c4a904a19f0f94432cda2073edf8520937d7c69a363f3c929c233a47c9ed1fcd56868ed61ab16c3af85173
7
+ data.tar.gz: b201dba4fb72b0082982b07799185b5931a246d1b8c52d0b0b3542653c7e6698408fbfb779b32830241a741c5c9c652c8009ad3d3e8e78718720ddfdae335690
data/doc/diagram.drawio CHANGED
@@ -1 +1 @@
1
- <mxfile host="Electron" modified="2021-06-19T19:00:11.786Z" 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="VEebFTCiVobfmwhjoPcL" 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">7V1dd5s4EP01Ptt9cA8gPh/jpGm2m3R7Ntt2+9SDjWyTYOQFnDj99StA2CBjEBhsLJPTJliIAUn3zoiZkTwA14v1R89czh+QBZ2BJFjrAbgZSJIoS9Ig/CdYb3GJoQtxwcyzLVJpW/Bo/4KkMKm2si3oZyoGCDmBvcwWTpDrwkmQKTM9D71mq02Rk73r0pzBnYLHiensln63rWBOSkXV2J64g/ZsTm6tS1p8YmEmlUlL/LlpoddUEfgwANceQkF8tFhfQyfsvKRfbNt5+nFvrZQf4uz+qzF6XPy5HsbCbqtcsmmCB92gWdFkcF9MZ0X6ayCpDr7JaBm2OHgj3aj+twqbOVqY3sx2B+AKnxWWa/wbF0adFZYPA7SMz8mpcwFcB0PTsWfkugluBfSypy04QZ4Z2IjUWbkW9Bzbhdtb46MZ+Rs94DgpuPJ9NLHji8k53Atjuj4uW9Jl59PIWxti4Fds3txrpMEOnAbxST08ufdZd+6WfSYpc2/pBXqBjXl6FXfaTdStI9KFN/E9RwjXmjoR66Y2hjMYTZEbEC0jSuTzrbmwnVA/3UHnBYZSw8YHCyeshA83zI0+BB56htfIQV70IEAQAFDVUBS+Q6r8Rv4g3iqbRw+fF64ppVLCSHGjJrB+hWgBA+8NX0ekKLoSyyGqVdaIpnlNKSqBlM1TOkolZSbRjbON6C3/8QFRARXUAeBAHdyYgTk2fcivLvhr/BRayk4qA2zte/YzsR8AkGG/aChs7NfaYr98wezvTWWnyZLMwQlXgHxqS6lwwJXHyRwuzJ4pXDFF1NSOUUXlgCr/mGOntyl8MYWegJ2eKRoHTPk7vLb3VPBFFVk3OkYVnQOq9D49/piiykrHmGJwwBQ8gqtFZe9+T5VOU0VLQoSdcX8nD3TWXIknYL1t4Y8wspq1LapwcsKIHBAmerfv+cIfX+j4agf4IuXwhRo36FpXYd4L/jR20OQZdxAuuo1G50aIP6UHKDUO0JrBRyIJecEczZBrOh+2pZnRFTddH15Xo+PxY6OVN4EF9UhIKcBAh0XyQP5ApgcqGRQPOpjoL9kHzhspIu4LsnFTtv5RQc+AYiecFreJXLUd7x1BkloiKG70jiA8uOZbqtoyrODvf2AtO0sColD4WEAHRfXxQfwAWxBv+vsAXOclDvCMa6V7uKbgqICauAZSiaCGcI0JdAbAzovz8QxsrXPAlo0sHoFQE9iqUiKoIWArgHKWdhLYeVE5noGtdw7YKqVoJb0msDW9RFBDwFYNyrfZSWDzEEQ7IKX5OO+klr2Arp99vGYyKktujHH87vf+/bdWgHvjPzpZhqHIQ9ju3nafq7LyfFrXedXTu8MaUgcdcIflxSZ5noSKrLPQeBZzlGmolrzfvyXKv+Y0VDdKBO2ZhjY180tyhBnRhHC9DHz0iK2mFyQ1XOTCpIyukwZgKczSmNxgV+ywO1YpVCSioFMjDeT3RupHr4pBiQoFK1KhQGZXFqgktm185gXLKHx60Ld/RbmmMbYo+5RvxBxzDJ2ROXmeeQib+pRNmUY/FNCEQquUMV77TFQoLu/iFNDjppFVvaRFg00efx3rllp0m4fKhAQHxweyV6Dp1Ift4EGqjwcvts49IIrUVCN4oFaeDGkVIh4NLtViLJdo3lijMmoxbkTKbKjaoeZNzQqU1WbMm15JbNvmLW/5YG/e2LXZHs/z2Zo3htBZb97qA4I381YtIHWJ5k1lNG97fAcJbqSmzRtox7zJ3TJveXGl3ryxa7PiSdf5mbe8UEZv3hoDBGfmDeS97J9bbCheWvAtakInY0PvLAR997cQAHBt+0EfKWYLDelClienX7UGeNiKKlpZ0GG69KHUmnwxOrcfDeBh86aHRc8YThkjCnLnKMMwg+89Dkweh33pChuPOjX4hnyoR51aFVMSgWb2qNMpDMViK+fVNv5WwZBA0zslylQAP06JhGa9U6IdQHDmlJAZMlIu3AKKrAuipGLg6NSg68KBFtBQqNwmoxELKApaJbknN4FynmOtN4HMRJCL5+3nZwIZ0mR6E1gfELyZQB6Wi/UOE/4cJrSLUTr5ag2Zh53kPiOro0x5oUjck2M/OVTKn6SemhsKw4s3VyuZAONrUaw0dgeyhYVMdBqSWHc9vSKVCGpoPT29Pj7piL0bWFDeSap+O+vplWo+gvNHtsz6xn9EaNNr9CSlJrTpNXo7ghqCtqEVQrUj0GZwHXAFbdZwzhH3QKGBLdcEtkYDmxbUcnqocmk7oCUJbeVq8nhLmVVqBlB7bz/aW9vW3n465cQt21GHVqtH2VFHYVjYwxe0mSe3x4M2jRTZqAltUaC33aYlta0pL21LvSQ1q0twor1LtXeL3NkLoK3tIkXBOAddycOXXZE0vH5LbP4cZ5rQtS2xFYZ1VVyZg8T81s0oaMMa0Nuv1PWc7WYPtOQ6U8QsjhWtxL8ACuu3ZAyqJZhyAG2xe9Cm02TqvhKKIk0SxnfCxtB0aZulKazuqiOiiYo7KbXfwkShRFJT3x6gnIGiTEbnYqDN6jvbk416DGTTE776yKYlNbUbNYVUWS4LMRTWbwnZlxY9M7qH7DK7XX9y29Y3vtD7aXQS2VIlZF9i7jhrILlkzYFCxchK9kGpESZRsgI1rR5BNL2a3JYnzOoBmcB9ZnjC8L24PLvMcPWADer6zPByQJxvZvjX6acJ8qX1t4/3H9c//335BNThcFd7fEYBDPX53AyfF3c7SdkUwl1H8B8XBVH7g5Xnho+I/5PMbAGNn/Ao4IPxKiCn7kx/voO/0HdPOZIzQCFGMg0LUlSiuRa2ZUXW8XVuB/BxaUaW69UzQ/xGqIUWwXx9gJT4nilXTPLGm57zJRYk7XqWhP0YYnU9Gy/63fwmWD3Iw6+vnz/9NL4/weHuW+cDsqDjR2MMN2fw6E3xr9QXI5DICBlV/z0+/CMcVnuLgnCEZ9CFnumkBE0c0/cvatBFgc7wkXKGXWpm2PFHD4WBoq0ewG2dR6OKC/8H</diagram><diagram id="Xuq1FaBXCnIs1bzDGohJ" name="Example">7Vtbk6I4FP41ProFBBEf29beqZnq2e7tnZqqeYsSMdtAmBhv/es3gaAQEFRwVh2svsDhcHI73/mSk9gBj/7mTwrD+TNxkNcxNGfTAaOOYeimYXTEj+ZsY8nA1mKBS7EjlfaCN/yBpDBRW2IHLTKKjBCP4TArnJIgQFOWkUFKyTqrNiNettQQuigneJtCLy/9jh02l1LdGuwffELYncuibaMfP/BhoixbsphDh6xTIjDugEdKCIuv/M0j8kTnJf3i4tU/0+4rGL++at/+/XCm7z7rxsaeTnll1wSKAtasaTm4K+gtZX91DMvjhQxD0WK2ld1o/VyKZg59SF0cdMADf6qFG/6XC6POEvIuI2H8zEw9Y2jDutDDrnxvyluBaPaxg6aEQoaJ1FkGDqIeDtC+aH7lyv9RBSeJ4NtCWIuFvPkTVZHLQlU2p6rkrPZ6aMbih7Z4qFY1gD4qq8UlyhRwKCzSyBRmrBBlmMPkIR6YUTR0QzlMo7iQIeFaMy9y+hnm3gSGMxIwCXLdkPdP0MeeCA+fkLdCwqroYeZ7Qolf7oAT3TBK3tEj8QiNKgI0DQDLEqZ4CSn5yBzrT71d1UV90UbBdAUg9B1KeXhDxEeMbvl70oo5kMCWkQ1ovfh+nYoTmtSZp0JEX8qgDE3uzvQefvxCIvAENII7QOPYh9i7TjgipWotOI4Hh25px4HDuhQ4zDsAxwuesiVF1wkP7LfccSw8LJU79P8bHtYdwONv4l0pNg7P5FpoKNAwctA4clp1MWj0c9DgPfag5cYOBc6DWHHyO8KVxYwhSFa0dtTHkLJEIyDcpaVM1XmKBnUkPAw5fDUqiyCUzYlLAuiN99L0iPLiUq/G9RMGzhge3jCypFNUvfbjFXZRmT2zdLj13fp4m8wczD8GqY99eFSl0ReCeYN2FkEva9CwSw3G7ZQ20utfxazZP8ls3C05s5ED7nrhfJ+0C8K14o4ULfAHnES3Wj6IFEcaD06QN4TTd5cSHnpTwJ9FHyXWaKWhIxNhDsURYa7o5ZRfd9IZHtmifV7lnBDUL/XJBAIUeZyJVln8HO+IuhKQyGy2QBfxhsH53kDjANq6Q0mIasQblDDXNZTwof8qZ0ncUuGzr9fMZ/oV8Rmo4DMtO9AWqMtnQCFI1XPO5LPeSWYP8BkffrhNqYVCYXG4MT0FBsms7VAtK/T5RVyDZhGit+xaJ5zqWqcMIjdHr3rRNkfLr405xL0RbD4P/5UT7HM9gpUaZQSr3wfBWuXOYqnEVZdg+7bCMYrn9PvnMexAO81uQxRrmkoCBZRTbIX+hSi2KB3fUuzxmCufhd4exfZair2kQ9wbxea3K8Yb6Ici/6+NIO9SuEA5BxIbDEoOPDPScg2bHlcpqgg9PnaciFvXc8zQWwgjHlxTKBwwcjvkSKdN+5qZ3Msq6jWGv3T0lQifDGM6o55k3dMZdUM77CDHZtQ1/CNc23+9M7SdfHn+0u2+8d98BuL2NptecOC2m003vtmkHlMwf+UxhUJo5FMPz7ewdkj7RMNribIIUrmWMMpZUVem/mb5ps4RyTpdCbX9ZpJ14CSzzW0+FXZ+jXTIbzZ3Pwzxm5y6Fzan6NRhO3Nvyh1ud+K+gj9/WJ+B9xK+fV6B6cAesUnBzM9BM7jkc5VkfrWbItHoNM+Fae/K96SsZmhOU84uWHXPWKibXBW8eSzNAfUsyFlnLGonzCr2pCr0ayfMCoHTbkkdG2QPx52b5NzC5tSYgf1unHuGO9wZ5+YnaCHFPhR1VzlXfsXhekn3mg42VmRcLYUmzF7dfSr1BKLZzD6VPTjNblNHQSyl2KqjIOX6l6HddpuqVpy93V2qwua0m1SXdIeboV1+u//adqy+//I7GP8H</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-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,3 +1,3 @@
1
1
  module PgGraph
2
- VERSION = "0.3.5"
2
+ VERSION = "0.3.6"
3
3
  end
data/lib/type/read.rb CHANGED
@@ -186,12 +186,6 @@ module PgGraph::Type
186
186
  that_record_type = dot(constraint.referenced_table.path).type.record_type
187
187
  SuperRecordColumn.new(this_record_type, that_record_type)
188
188
  SubRecordColumn.new(that_record_type, this_record_type)
189
-
190
- # Create hierarchy
191
- this_table = this_record_type.table
192
- that_table = that_record_type.table
193
- this_table.instance_variable_set(:@supertable, that_table)
194
- that_table.instance_variable_set(:@has_subtables, true)
195
189
  }
196
190
 
197
191
  # Create N:M or M:M reference fields
data/lib/type/type.rb CHANGED
@@ -152,14 +152,14 @@ module PgGraph::Type
152
152
 
153
153
  forward_method :type, :keys, :fields, :key?, :[], :columns, :value_columns, :column?
154
154
 
155
- # Parent table if table is a derived table and otherwise nil. Initialized by #read
156
- attr_reader :supertable
155
+ # True if table is a derived table
156
+ def subtable?() !supertable.nil? end
157
157
 
158
- # True if table is a parent table. Initialized by #read
159
- def supertable?() @has_subtables || false end
158
+ # Parent table if this table is a derived table and otherwise nil
159
+ def supertable = record_type.superrecord&.table
160
160
 
161
- # True if table is a derived table
162
- def subtable?() !@supertable.nil? end
161
+ # True if table is a parent table. Initialized by #read
162
+ def supertable?() record_type.subrecord? end
163
163
 
164
164
  def mm_table?() @mm_table end
165
165
  def nm_table?() @nm_table end
@@ -231,6 +231,42 @@ module PgGraph::Type
231
231
  class RecordType < CompositeType
232
232
  include TableObject
233
233
 
234
+ # Associated Table object
235
+ attr_reader :table
236
+
237
+ # Redefine array_type
238
+ def array_type() table_type end
239
+
240
+ def superrecord()
241
+ (@superrecord_initialized && @superrecord) or begin
242
+ @superrecord_initialized = true
243
+ @superrecord = fields.find { |field| field.is_a?(SuperRecordColumn) }&.type
244
+ end
245
+ end
246
+
247
+ def subrecord?
248
+ (@subrecord_initialized && subrecord) or begin
249
+ @subrecord_initialized = true
250
+ @subrecord = fields.find { |field| field.is_a?(SubRecordColumn) } && true || false
251
+ end
252
+ end
253
+
254
+ # A record type has the schema as parent. Note that a record is
255
+ # initialized with a Table object and not a TableType object
256
+ def initialize(table)
257
+ constrain table, Table
258
+ super(table.schema, PgGraph.inflector.table2record_type(table.name))
259
+ @table = table
260
+ table_type = TableType.new(table.schema, self) # FIXME
261
+ @table.send(:type=, table_type)
262
+ @superrecord_initialized = false
263
+ end
264
+
265
+ def attach(*args)
266
+ @columns = nil
267
+ super
268
+ end
269
+
234
270
  # List of postgres columns. The columns are sorted by ordinal
235
271
  def columns()
236
272
  @columns ||= begin
@@ -287,8 +323,6 @@ module PgGraph::Type
287
323
 
288
324
  end
289
325
 
290
- # field.is_a?(SimpleColumn) || field.is_a?(KindReference}.sort_by(&:ordinal) end
291
-
292
326
  # List of columns excluding generated fields
293
327
  def value_columns()
294
328
  columns.select { |column| !column.generated? }
@@ -301,26 +335,6 @@ module PgGraph::Type
301
335
  @columns_hash.key?(name)
302
336
  end
303
337
 
304
- # Associated Table object
305
- attr_reader :table
306
-
307
- # Redefine array_type
308
- def array_type() table_type end
309
-
310
- # A record type has the schema as parent. Note that a record is
311
- # initialized with a Table object and not a TableType object
312
- def initialize(table)
313
- constrain table, Table
314
- super(table.schema, PgGraph.inflector.table2record_type(table.name))
315
- @table = table
316
- table_type = TableType.new(table.schema, self) # FIXME
317
- @table.send(:type=, table_type)
318
- end
319
-
320
- def attach(*args)
321
- @columns = nil
322
- super
323
- end
324
338
  end
325
339
 
326
340
  class ArrayType < Type
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.5
4
+ version: 0.3.6
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-06-16 00:00:00.000000000 Z
11
+ date: 2023-12-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: boolean
@@ -240,7 +240,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
240
240
  - !ruby/object:Gem::Version
241
241
  version: '0'
242
242
  requirements: []
243
- rubygems_version: 3.3.7
243
+ rubygems_version: 3.3.18
244
244
  signing_key:
245
245
  specification_version: 4
246
246
  summary: Create graph type model of database