nanahoshi 0.0.1 → 0.0.2

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
  SHA1:
3
- metadata.gz: 2f94acb94f46bdae0e4f5796d5012f177a3b5509
4
- data.tar.gz: 87fe486f3f53eb4ec7040fda5cf640cd088007f5
3
+ metadata.gz: 383f33702a55fd9a8012ae2256fea25fd79bc2cf
4
+ data.tar.gz: d3dac95ac85d5bf4493f5eb22a722d0970de90c9
5
5
  SHA512:
6
- metadata.gz: e2d2c8037304e1ee6818d1cc25a0a327b25abf9a8a66101658ceaa245f5e6b29621dc2ecf9c26d0af02f1e46bad08503c79debf2571410c298f504b6e686e811
7
- data.tar.gz: 690eb3987543debfe4c7d7778c1cf0b95f20399dbf2d09d62052657fe8cf62122891ee121a0803fc1043afcccc2b6a595af33849d7d926ed3ae74147b6c0ecba
6
+ metadata.gz: 6597545d6b448e8ce87ac747fdef71ea2a8a87659b45c8892bafe0148403cca8ad73fb4d64b21f32aa7b45916a4ab130cc30cf0ada530c3ccc1cc02fe9c3f785
7
+ data.tar.gz: 68810efa49e7b94a4afa1a164cae61939b13ed73f5e91de3930f8cbfdf7e6d635633f038403b657d1f97356c3b5bb653625e49af6f912695bded48728ef27b76
@@ -1,24 +1,6 @@
1
1
  require 'bundler'
2
2
  class Nanahoshi::InfoController < ApplicationController
3
3
  def index
4
- lookup = Bundler.load.specs.to_hash
5
- hash = lookup.each_with_object({}) do |(gemname, specs), hash|
6
- hash[gemname] = specs.map do |spec|
7
- spec.dependencies.select{|dependency|dependency.type == :runtime}.map(&:name)
8
- end.flatten.uniq
9
- end
10
-
11
- gem_names = hash.keys
12
- @nodes = gem_names.map{|gem_name|{name: gem_name}}
13
-
14
- @edges = []
15
- hash.each do |gem, deps|
16
- source_index = gem_names.index(gem)
17
- dependence_edges = deps.map do |dep|
18
- {source: source_index, target: gem_names.index(dep)}
19
- end
20
-
21
- @edges.concat(dependence_edges)
22
- end
4
+ @nodes, @edges = Nanahoshi::Info.nodes_and_edges
23
5
  end
24
6
  end
@@ -8,7 +8,9 @@ circle {
8
8
  stroke: #333;
9
9
  stroke-width: 1.5px;
10
10
  }
11
-
11
+ circle.start_leaf{fill: #ffc0cb}
12
+ circle.end_leaf{fill: #90ee90}
13
+ circle.start_leaf.end_leaf{fill: #f0e68c}
12
14
  text {
13
15
  font: 10px sans-serif;
14
16
  pointer-events: none;
@@ -39,7 +41,7 @@ var line = svg.append("g").attr("class", "line-group")
39
41
 
40
42
  var circle = svg.append("g").attr("class", "circle-group")
41
43
  .selectAll("circle").data(nodes).enter()
42
- .append("circle").attr("r", 6).call(force.drag);
44
+ .append("circle").attr("class", function(d){return (d.type || []).join(" ")}).attr("r", 6).call(force.drag);
43
45
 
44
46
  var text = svg.append("g").attr("class", "text-group")
45
47
  .selectAll("text").data(nodes).enter()
data/lib/nanahoshi.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require "nanahoshi/engine"
2
2
 
3
3
  module Nanahoshi
4
+ autoload :Info, 'nanahoshi/info'
4
5
  end
@@ -0,0 +1,36 @@
1
+ module Nanahoshi::Info
2
+ class << self
3
+ def nodes_and_edges
4
+ graph = load_graph
5
+ gem_names = graph.keys
6
+
7
+ nodes = gem_names.map{|gn|{name: gn, type: %i(start_leaf end_leaf)}}
8
+
9
+ edges = []
10
+ graph.each do |gem_name, deps|
11
+ source_index = gem_names.index(gem_name)
12
+ unless deps.empty?
13
+ nodes[source_index][:type].delete(:end_leaf)
14
+ end
15
+ dependence_edges = deps.map do |dep|
16
+ target_index = gem_names.index(dep)
17
+ nodes[target_index][:type].delete(:start_leaf)
18
+ {source: source_index, target: target_index}
19
+ end
20
+ edges.concat(dependence_edges)
21
+ end
22
+ [nodes, edges]
23
+ end
24
+
25
+ private
26
+ def load_graph
27
+ lookup = Bundler.load.specs.to_hash
28
+ lookup.each_with_object({}) do |(gemname, specs), hash|
29
+ hash[gemname] = specs.map do |spec|
30
+ spec.dependencies.select{|dependency|dependency.type == :runtime}.map(&:name)
31
+ end.flatten.uniq
32
+ end
33
+ end
34
+ end
35
+
36
+ end
@@ -1,3 +1,3 @@
1
1
  module Nanahoshi
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nanahoshi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - yousuketto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-22 00:00:00.000000000 Z
11
+ date: 2014-12-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -52,6 +52,7 @@ files:
52
52
  - config/routes.rb
53
53
  - lib/nanahoshi.rb
54
54
  - lib/nanahoshi/engine.rb
55
+ - lib/nanahoshi/info.rb
55
56
  - lib/nanahoshi/version.rb
56
57
  - lib/tasks/nanahoshi_tasks.rake
57
58
  homepage: https://github.com/yousuketto/nanahoshi