rails-erd-d3 0.0.17 → 0.0.18
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 +4 -4
- data/lib/rails_erd_d3.rb +8 -94
- data/rails-erd-d3.gemspec +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 38658c61efe4ebf8e29642a91806d706365cf314
|
|
4
|
+
data.tar.gz: 81fa3ad4a2cce8318fbd77a78948a5491630e3ee
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e424c6190f20e55c88520a523fff2a478b2b3c06d0acc2369686c08827e40b987aae1441f3bba94c88cfd6a45391597feb67226f6cc706ffbbb74c032712f26f
|
|
7
|
+
data.tar.gz: 8611e2c176c733f876b4c25f3f14e608f3c7c2be3c17fa983acea95c9ab38936d3610ee4b42fd69a1c927f35aa9ebf211b5413d0ff39cd38a0be9751f3880856
|
data/lib/rails_erd_d3.rb
CHANGED
|
@@ -84,100 +84,14 @@ class RailsErdD3
|
|
|
84
84
|
end
|
|
85
85
|
|
|
86
86
|
def self.get_d3
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|| document.body.clientHeight;
|
|
96
|
-
|
|
97
|
-
var colorScale = d3.scaleOrdinal(d3.schemeCategory20);
|
|
98
|
-
|
|
99
|
-
var svg = d3.select('#erd').append('svg')
|
|
100
|
-
.attr('height', height)
|
|
101
|
-
.attr('width', width)
|
|
102
|
-
.style('background', 'white');
|
|
103
|
-
|
|
104
|
-
var simulation = d3.forceSimulation()
|
|
105
|
-
.force('link', d3.forceLink().id(function(d) { return d.index }))
|
|
106
|
-
.force('collide',d3.forceCollide( function(d){return d.r + 20 }).iterations(30) )
|
|
107
|
-
.force('charge', d3.forceManyBody())
|
|
108
|
-
.force('center', d3.forceCenter(width / 2, height / 2))
|
|
109
|
-
.force('y', d3.forceY(0))
|
|
110
|
-
.force('x', d3.forceX(0));
|
|
111
|
-
|
|
112
|
-
var link = svg.append('g')
|
|
113
|
-
.classed('links', true)
|
|
114
|
-
.selectAll('line')
|
|
115
|
-
.data(data.links)
|
|
116
|
-
.enter()
|
|
117
|
-
.append('line')
|
|
118
|
-
.attr('stroke', 'black');
|
|
119
|
-
|
|
120
|
-
var node = svg.selectAll('.node')
|
|
121
|
-
.data(data.nodes)
|
|
122
|
-
.enter()
|
|
123
|
-
.append('g')
|
|
124
|
-
.classed('node', true)
|
|
125
|
-
.style('cursor', 'pointer')
|
|
126
|
-
.attr('data-toggle', 'modal')
|
|
127
|
-
.attr('data-target', function(d, i){ return '#' + data.nodes[i].label })
|
|
128
|
-
.call(d3.drag()
|
|
129
|
-
.on('start', dragstarted)
|
|
130
|
-
.on('drag', dragged)
|
|
131
|
-
.on('end', dragended));
|
|
132
|
-
|
|
133
|
-
node.append('circle')
|
|
134
|
-
.classed('circle', true)
|
|
135
|
-
.attr('r', function(d){ return d.r })
|
|
136
|
-
.attr('fill', function(d, i){ return colorScale(i) });
|
|
137
|
-
|
|
138
|
-
node.append('text')
|
|
139
|
-
.classed('text', true)
|
|
140
|
-
.text(function(d) {
|
|
141
|
-
return d.label;
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
var ticked = function() {
|
|
145
|
-
link
|
|
146
|
-
.attr('x1', function(d) { return d.source.x; })
|
|
147
|
-
.attr('y1', function(d) { return d.source.y; })
|
|
148
|
-
.attr('x2', function(d) { return d.target.x; })
|
|
149
|
-
.attr('y2', function(d) { return d.target.y; });
|
|
150
|
-
|
|
151
|
-
node
|
|
152
|
-
.attr('transform', function(d) {
|
|
153
|
-
return 'translate(' + [d.x, d.y] + ')';
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
simulation.nodes(data.nodes)
|
|
158
|
-
.on('tick', ticked);
|
|
159
|
-
|
|
160
|
-
simulation.force('link')
|
|
161
|
-
.links(data.links);
|
|
162
|
-
|
|
163
|
-
function dragstarted(d) {
|
|
164
|
-
if (!d3.event.active) simulation.alphaTarget(0.3).restart();
|
|
165
|
-
d.fx = d.x;
|
|
166
|
-
d.fy = d.y;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
function dragged(d) {
|
|
170
|
-
d.fx = d3.event.x;
|
|
171
|
-
d.fy = d3.event.y;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
function dragended(d) {
|
|
175
|
-
if (!d3.event.active) simulation.alphaTarget(0);
|
|
176
|
-
d.fx = null;
|
|
177
|
-
d.fy = null;
|
|
178
|
-
}
|
|
179
|
-
</script>
|
|
180
|
-
"
|
|
87
|
+
ERB.new(
|
|
88
|
+
File.read(
|
|
89
|
+
File.expand_path(
|
|
90
|
+
"templates/d3.html.erb",
|
|
91
|
+
File.dirname(__FILE__)
|
|
92
|
+
)
|
|
93
|
+
)
|
|
94
|
+
).result(binding)
|
|
181
95
|
end
|
|
182
96
|
|
|
183
97
|
def self.get_modals
|
data/rails-erd-d3.gemspec
CHANGED
|
@@ -6,7 +6,7 @@ Gem::Specification.new do |spec|
|
|
|
6
6
|
spec.name = "rails-erd-d3"
|
|
7
7
|
spec.authors = ["Roman Krasavtsev"]
|
|
8
8
|
spec.email = ["mr.krasavtsev@gmail.com"]
|
|
9
|
-
spec.version = "0.0.
|
|
9
|
+
spec.version = "0.0.18"
|
|
10
10
|
spec.summary = "Entity–relationship diagram with D3.js for Rails application"
|
|
11
11
|
spec.description = "This gem creates entity–relationship diagram with D3.js for your Rails application"
|
|
12
12
|
spec.homepage = "https://github.com/RomanKrasavtsev/rails-erd-d3"
|