erd_map 0.1.0 → 0.1.1

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: 9b868db53c728786986ef918092b37608399f674c1e0a410fc5f3e9b67d707ad
4
- data.tar.gz: 55b585aead0da7727b75e90651ec06dd3636d032cd39078d488169ed20f1374b
3
+ metadata.gz: d9e69fe8377878e310f87605d04b56cefe6584a0350d91b5f8e7e4aab53fd4dc
4
+ data.tar.gz: 1693047c4a7ea2a3b55aea08c74600a5bf4f125038c2b71edd678fc29a1b750c
5
5
  SHA512:
6
- metadata.gz: 1ee3f5b8c5d70475d4a6567086c57be4c27e6a1f730f94fb314db64d965621189d43e729c364c08dfcfffde36ac5053513926572e84a295fdae4da2e0c3985ec
7
- data.tar.gz: 3067212a98992a87fe1f55787d6a5683a603e0b80a7372bae4456ad6daf332d02d466137aa3503f28b44eebc01cb23153ff53fe1a4fe3921dc2c1a4e3381f23e
6
+ metadata.gz: 709c47b70db579119fcf67bd9775c43889d6035bf6ae6abed7c9d02afec77628ede105bd58cae97a4ed212c2300e469c0a039622cae734ef6d76ecdd5bfd3c77
7
+ data.tar.gz: 655107b287dadef687eb5ae2c5526747bf7156c44b2a2e9f81ceb629d3f908434af4e11842dc2f57864f015f79f495fe9b5f00ca45a1020474ef9546102519c0
@@ -4,6 +4,8 @@ module ErdMap
4
4
  class ErdMapController < ApplicationController
5
5
  FILE_PATH = Rails.root.join("tmp", "erd_map", "map.html")
6
6
 
7
+ skip_before_action :verify_authenticity_token, only: [:update]
8
+
7
9
  def index
8
10
  if File.exist?(FILE_PATH)
9
11
  render html: File.read(FILE_PATH).html_safe
data/lib/erd_map/graph.rb CHANGED
@@ -17,7 +17,7 @@ module ErdMap
17
17
  k = 1.0 / Math.sqrt(nodes_size) * 3.0
18
18
 
19
19
  subgraph = whole_graph.subgraph(display_nodes)
20
- layout = nx.spring_layout(subgraph, seed: 1, k: k)
20
+ layout = networkx.spring_layout(subgraph, seed: 1, k: k)
21
21
 
22
22
  layout_hash = {}
23
23
  layout.each do |node, xy|
@@ -34,7 +34,7 @@ module ErdMap
34
34
  def chunked_nodes
35
35
  return @chunked_nodes if @chunked_nodes
36
36
 
37
- centralities = nx.eigenvector_centrality(whole_graph) # { node_name => centrality }
37
+ centralities = networkx.eigenvector_centrality(whole_graph) # { node_name => centrality }
38
38
  sorted_nodes = centralities.sort_by { |_node, centrality| centrality }.reverse.map(&:first)
39
39
 
40
40
  chunk_sizes = []
@@ -133,12 +133,12 @@ module ErdMap
133
133
 
134
134
  private
135
135
 
136
- attr_reader :nx, :networkx_community
136
+ attr_reader :networkx, :networkx_community
137
137
  attr_reader :whole_graph
138
138
 
139
139
  def initialize
140
140
  import_modules = ErdMap.py_call_modules.imported_modules
141
- @nx = import_modules[:nx]
141
+ @networkx = import_modules[:networkx]
142
142
  @networkx_community = import_modules[:networkx_community]
143
143
  @whole_graph = build_whole_graph
144
144
  end
@@ -151,7 +151,7 @@ module ErdMap
151
151
  end
152
152
 
153
153
  def build_whole_graph
154
- whole_graph = nx.Graph.new
154
+ whole_graph = networkx.Graph.new
155
155
 
156
156
  whole_models.each do |model|
157
157
  whole_graph.add_node(model.name)
@@ -293,8 +293,8 @@ class GraphManager {
293
293
  if (!candidateNodes.includes(nodeName)) { return }
294
294
 
295
295
  const xy = layout[nodeName] || this.#wholeLayout[nodeName]
296
- const dx = xy[0] + this.#shiftX - this.#mouseX
297
- const dy = xy[1] + this.#shiftY - this.#mouseY
296
+ const dx = xy[0] - this.#mouseX
297
+ const dy = xy[1] - this.#mouseY
298
298
  const distance = dx * dx + dy * dy
299
299
  if (distance < minmumDistance) {
300
300
  minmumDistance = distance
@@ -405,10 +405,10 @@ class GraphManager {
405
405
  this.#changeDisplayNodes(connectedNodes)
406
406
 
407
407
  const { selectedLayout } = this.#getShowingNodesAndSelectedLayout()
408
- this.#updateLayout(selectedLayout, tappedNode)
409
- this.#nodesIndex.forEach(nodeName => {
410
- selectedLayout[nodeName][0] += this.#shiftX
411
- selectedLayout[nodeName][1] += this.#shiftY
408
+ const [nodesX, nodesY] = this.#updateLayout(selectedLayout, tappedNode)
409
+ this.#nodesIndex.forEach((nodeName, i) => {
410
+ selectedLayout[nodeName][0] = nodesX[i]
411
+ selectedLayout[nodeName][1] = nodesY[i]
412
412
  })
413
413
  this.layoutProvider.graph_layout = selectedLayout
414
414
  this.layoutProvider.change.emit()
@@ -5,7 +5,7 @@ require "pycall"
5
5
  module ErdMap
6
6
  class PyCallModules
7
7
  def initialize
8
- @nx = PyCall.import_module("networkx")
8
+ @networkx = PyCall.import_module("networkx")
9
9
  @bokeh_io = PyCall.import_module("bokeh.io")
10
10
  @bokeh_models = PyCall.import_module("bokeh.models")
11
11
  @bokeh_plotting = PyCall.import_module("bokeh.plotting")
@@ -14,7 +14,7 @@ module ErdMap
14
14
 
15
15
  def imported_modules
16
16
  {
17
- nx: @nx,
17
+ networkx: @networkx,
18
18
  bokeh_io: @bokeh_io,
19
19
  bokeh_models: @bokeh_models,
20
20
  bokeh_plotting: @bokeh_plotting,
@@ -1,3 +1,3 @@
1
1
  module ErdMap
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: erd_map
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - makicamel
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-01-15 00:00:00.000000000 Z
10
+ date: 2025-01-19 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: rails