DepGraph 0.9.0 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +4 -0
- data/Manifest.txt +2 -0
- data/README.txt +48 -1
- data/bin/depgraph +2 -2
- data/config/hoe.rb +2 -1
- data/lib/DepGraph/version.rb +1 -1
- data/lib/file_system_node_finder.rb +5 -1
- data/lib/nodefinders/gems_node_finder.rb +49 -0
- data/spec/IntegrationTests/depgraph_spec.rb +4 -2
- data/spec/IntegrationTests/gems_node_finder_spec.rb +21 -0
- data/spec/IntegrationTests/graph_creator_spec.rb +4 -3
- data/spec/IntegrationTests/graph_image_creator_spec.rb +1 -1
- metadata +24 -4
data/History.txt
CHANGED
data/Manifest.txt
CHANGED
@@ -14,6 +14,7 @@ lib/file_system_node_finder.rb
|
|
14
14
|
lib/graph_image_creator.rb
|
15
15
|
lib/graph_creator.rb
|
16
16
|
lib/nodefinders/test_node_finder.rb
|
17
|
+
lib/nodefinders/gems_node_finder.rb
|
17
18
|
script/destroy
|
18
19
|
script/destroy.cmd
|
19
20
|
script/generate
|
@@ -23,6 +24,7 @@ script/txt2html.cmd
|
|
23
24
|
setup.rb
|
24
25
|
spec/IntegrationTests/depgraph_spec.rb
|
25
26
|
spec/IntegrationTests/file_system_node_finder_spec.rb
|
27
|
+
spec/IntegrationTests/gems_node_finder_spec.rb
|
26
28
|
spec/IntegrationTests/graph_creator_spec.rb
|
27
29
|
spec/IntegrationTests/graph_image_creator_spec.rb
|
28
30
|
spec/UnitTests/dependency_types_manager_spec.rb
|
data/README.txt
CHANGED
@@ -1 +1,48 @@
|
|
1
|
-
|
1
|
+
= DepGraph
|
2
|
+
|
3
|
+
* http://depgraph.rubyforge.org
|
4
|
+
|
5
|
+
== DESCRIPTION:
|
6
|
+
|
7
|
+
FIX (describe your package)
|
8
|
+
|
9
|
+
== FEATURES/PROBLEMS:
|
10
|
+
|
11
|
+
* FIX (list of features or problems)
|
12
|
+
|
13
|
+
== SYNOPSIS:
|
14
|
+
|
15
|
+
FIX (code sample of usage)
|
16
|
+
|
17
|
+
== REQUIREMENTS:
|
18
|
+
|
19
|
+
* Graphviz, ruby-graphviz and optiflag
|
20
|
+
|
21
|
+
== INSTALL:
|
22
|
+
|
23
|
+
* gem install DepGraph
|
24
|
+
|
25
|
+
== LICENSE:
|
26
|
+
|
27
|
+
(The MIT License)
|
28
|
+
|
29
|
+
Copyright (c) 2008 FIX
|
30
|
+
|
31
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
32
|
+
a copy of this software and associated documentation files (the
|
33
|
+
'Software'), to deal in the Software without restriction, including
|
34
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
35
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
36
|
+
permit persons to whom the Software is furnished to do so, subject to
|
37
|
+
the following conditions:
|
38
|
+
|
39
|
+
The above copyright notice and this permission notice shall be
|
40
|
+
included in all copies or substantial portions of the Software.
|
41
|
+
|
42
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
43
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
44
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
45
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
46
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
47
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
48
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/bin/depgraph
CHANGED
@@ -60,7 +60,7 @@ end
|
|
60
60
|
|
61
61
|
type = CommandLineParameters.flags.type
|
62
62
|
output = CommandLineParameters.flags.output || 'dependency_graph.png'
|
63
|
-
location = CommandLineParameters.flags.location
|
63
|
+
location = CommandLineParameters.flags.location
|
64
64
|
from = CommandLineParameters.flags.from if CommandLineParameters.flags.from?
|
65
65
|
to = CommandLineParameters.flags.to if CommandLineParameters.flags.to?
|
66
66
|
exc = CommandLineParameters.flags.exc || ''
|
@@ -69,7 +69,7 @@ trans = CommandLineParameters.flags.trans?
|
|
69
69
|
puts "Creating #{type} dependency graph. Please wait..."
|
70
70
|
|
71
71
|
dep_grapher = DepGraph::GraphCreator.new(type)
|
72
|
-
dep_grapher.location = location.split(',')
|
72
|
+
dep_grapher.location = location.split(',') if location
|
73
73
|
dep_grapher.from = from
|
74
74
|
dep_grapher.to = to
|
75
75
|
dep_grapher.trans = trans
|
data/config/hoe.rb
CHANGED
@@ -59,6 +59,7 @@ hoe = Hoe.new(GEM_NAME, VERS) do |p|
|
|
59
59
|
# == Optional
|
60
60
|
p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
|
61
61
|
#p.extra_deps = [] # An array of rubygem dependencies [name, version], e.g. [ ['active_support', '>= 1.3.1'] ]
|
62
|
+
p.extra_deps = [['ruby-graphviz', '>=0.8.0'], ['optiflag', '>=0.6.5']]
|
62
63
|
|
63
64
|
#p.spec_extras = {} # A hash of extra values to set in the gemspec.
|
64
65
|
|
@@ -67,4 +68,4 @@ end
|
|
67
68
|
CHANGES = hoe.paragraphs_of('History.txt', 0..1).join("\\n\\n")
|
68
69
|
PATH = (RUBYFORGE_PROJECT == GEM_NAME) ? RUBYFORGE_PROJECT : "#{RUBYFORGE_PROJECT}/#{GEM_NAME}"
|
69
70
|
hoe.remote_rdoc_dir = File.join(PATH.gsub(/^#{RUBYFORGE_PROJECT}\/?/,''), 'rdoc')
|
70
|
-
hoe.rsync_args = '-av --delete --ignore-errors'
|
71
|
+
hoe.rsync_args = '-av --delete --ignore-errors'
|
data/lib/DepGraph/version.rb
CHANGED
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'node'
|
2
|
+
|
3
|
+
module DepGraph
|
4
|
+
module NodeFinders
|
5
|
+
|
6
|
+
class GemsNodeFinder
|
7
|
+
def initialize
|
8
|
+
@spec_directories = Gem::SourceIndex.installed_spec_directories
|
9
|
+
end
|
10
|
+
|
11
|
+
def location=(loc)
|
12
|
+
@spec_directories = loc
|
13
|
+
end
|
14
|
+
|
15
|
+
def get_nodes
|
16
|
+
require 'rubygems'
|
17
|
+
|
18
|
+
fail 'The gem specification directories were not set' unless @spec_directories and @spec_directories.size > 0
|
19
|
+
|
20
|
+
nodes = {}
|
21
|
+
@spec_directories.each do |spec_directory|
|
22
|
+
Dir["#{spec_directory}/**/*.gemspec"].each do |gemspec_file_name|
|
23
|
+
add_nodes_from_gemspec(nodes, gemspec_file_name)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
return nodes.values
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
def add_nodes_from_gemspec(nodes, gemspec_file_name)
|
32
|
+
gem_name = File.basename(gemspec_file_name).match(/(.+)-\d+/)[1].to_s
|
33
|
+
gem_dependencies = []
|
34
|
+
content = File.read(gemspec_file_name)
|
35
|
+
content.scan(/add_dependency\(%q<([^>]+)>/) do |matches|
|
36
|
+
matches.each do |match|
|
37
|
+
gem_dependencies << match
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
nodes[gem_name] = Node.new(gem_name) unless nodes[gem_name]
|
42
|
+
gem_dependencies.each do |gem_dependency|
|
43
|
+
nodes[gem_dependency] = Node.new(gem_dependency) unless nodes[gem_dependency]
|
44
|
+
nodes[gem_name].depends_on(nodes[gem_dependency])
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -2,6 +2,7 @@ require File.dirname(__FILE__) + "/../spec_helper"
|
|
2
2
|
require 'rubygems'
|
3
3
|
gem 'filetesthelper'
|
4
4
|
require 'filetesthelper'
|
5
|
+
require 'graph_creator'
|
5
6
|
|
6
7
|
include FileTestHelper
|
7
8
|
|
@@ -14,10 +15,11 @@ describe "#{tool_name} (integration tests)" do
|
|
14
15
|
test_data = {
|
15
16
|
:csproj => {'proj1.csproj' => '"proj2.csproj"', 'proj2.csproj' => '"proj1.csproj"'},
|
16
17
|
:ruby_requires => {'rubyfile1.rb' => 'require "rubyfile2"', 'rubyfile2.rb' => 'require "rubyfile3"'},
|
18
|
+
:gems => {}
|
17
19
|
}
|
18
20
|
|
19
|
-
|
20
|
-
it "should create
|
21
|
+
DepGraph::GraphCreator.types.each do |filter_type|
|
22
|
+
it "should create an image from the #{filter_type} dependency type" do
|
21
23
|
test_files = test_data[filter_type]
|
22
24
|
with_files(test_files) do
|
23
25
|
system "ruby #{tool_path} -type #{filter_type}"
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../spec_helper"
|
2
|
+
require 'rubygems'
|
3
|
+
require 'filetesthelper'
|
4
|
+
require 'nodefinders/gems_node_finder'
|
5
|
+
|
6
|
+
include FileTestHelper
|
7
|
+
include DepGraph::NodeFinders
|
8
|
+
|
9
|
+
describe GemsNodeFinder do
|
10
|
+
it "should list all gems and its dependencies" do
|
11
|
+
with_files('fakegem-0.9.1.gemspec' => 's.add_dependency(%q<fakedependencygem>, [">= 1.5.0"])') do
|
12
|
+
gems_node_finder = GemsNodeFinder.new
|
13
|
+
gems_node_finder.location = ['./']
|
14
|
+
nodes = gems_node_finder.get_nodes
|
15
|
+
|
16
|
+
nodes.should == ['fakedependencygem', 'fakegem']
|
17
|
+
nodes[1].dependencies.size.should == 1
|
18
|
+
nodes[1].dependencies[0].name.should == 'fakedependencygem'
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -9,12 +9,13 @@ include FileTestHelper
|
|
9
9
|
|
10
10
|
test_data = {
|
11
11
|
:csproj => {'file1.csproj'=>'"file2.csproj"', 'dir/file2.csproj'=>'"file1.csproj"' },
|
12
|
-
:ruby_requires => {'file1.rb'=>'require "file2"', 'dir/file2.rb'=>'require "file1"' }
|
12
|
+
:ruby_requires => {'file1.rb'=>'require "file2"', 'dir/file2.rb'=>'require "file1"' },
|
13
|
+
:gems => {}
|
13
14
|
}
|
14
15
|
|
15
16
|
describe GraphCreator, '(integration tests)' do
|
16
|
-
|
17
|
-
it "should create a png image from the #{filter_type} dependencies found
|
17
|
+
GraphCreator.types.each do |filter_type|
|
18
|
+
it "should create a png image from the #{filter_type} dependencies found" do
|
18
19
|
with_files(test_data[filter_type]) do
|
19
20
|
GraphCreator.new(filter_type).create_image('test.png')
|
20
21
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: DepGraph
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Daniel Cadenas Ni\xF3n"
|
@@ -9,10 +9,27 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-03-
|
12
|
+
date: 2008-03-21 00:00:00 -03:00
|
13
13
|
default_executable:
|
14
|
-
dependencies:
|
15
|
-
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: ruby-graphviz
|
17
|
+
version_requirement:
|
18
|
+
version_requirements: !ruby/object:Gem::Requirement
|
19
|
+
requirements:
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 0.8.0
|
23
|
+
version:
|
24
|
+
- !ruby/object:Gem::Dependency
|
25
|
+
name: optiflag
|
26
|
+
version_requirement:
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
requirements:
|
29
|
+
- - ">="
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: 0.6.5
|
32
|
+
version:
|
16
33
|
description: A tool to create dependency graph images from source code directories
|
17
34
|
email:
|
18
35
|
- dcadenas@gmail.com
|
@@ -42,6 +59,7 @@ files:
|
|
42
59
|
- lib/graph_image_creator.rb
|
43
60
|
- lib/graph_creator.rb
|
44
61
|
- lib/nodefinders/test_node_finder.rb
|
62
|
+
- lib/nodefinders/gems_node_finder.rb
|
45
63
|
- script/destroy
|
46
64
|
- script/destroy.cmd
|
47
65
|
- script/generate
|
@@ -51,6 +69,7 @@ files:
|
|
51
69
|
- setup.rb
|
52
70
|
- spec/IntegrationTests/depgraph_spec.rb
|
53
71
|
- spec/IntegrationTests/file_system_node_finder_spec.rb
|
72
|
+
- spec/IntegrationTests/gems_node_finder_spec.rb
|
54
73
|
- spec/IntegrationTests/graph_creator_spec.rb
|
55
74
|
- spec/IntegrationTests/graph_image_creator_spec.rb
|
56
75
|
- spec/UnitTests/dependency_types_manager_spec.rb
|
@@ -96,6 +115,7 @@ summary: A tool to create dependency graph images from source code directories
|
|
96
115
|
test_files:
|
97
116
|
- spec/IntegrationTests/depgraph_spec.rb
|
98
117
|
- spec/IntegrationTests/file_system_node_finder_spec.rb
|
118
|
+
- spec/IntegrationTests/gems_node_finder_spec.rb
|
99
119
|
- spec/IntegrationTests/graph_creator_spec.rb
|
100
120
|
- spec/IntegrationTests/graph_image_creator_spec.rb
|
101
121
|
- spec/spec_helper.rb
|