class_dependencies 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/class_dependencies.rb +8 -2
- data/spec/class_dependencies_spec.rb +4 -2
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.1
|
data/lib/class_dependencies.rb
CHANGED
@@ -50,9 +50,9 @@ module Sonar
|
|
50
50
|
mc.send(:define_method, method_name) do |mod2|
|
51
51
|
raise "include #{mod.to_s} on a Class... doesn't work with intermediate modules" if ! mod2.is_a? Class
|
52
52
|
mod.descendants << class_to_sym(mod2)
|
53
|
-
dep_method_name = class_to_sym(mod)
|
54
53
|
mod2.instance_eval do
|
55
|
-
mc2 = class << self ; self ; end
|
54
|
+
mc2 = class << self ; include Sonar::ClassDependencies::ClassName ; self ; end
|
55
|
+
dep_method_name = mod.relationship_name || class_to_sym(mod)
|
56
56
|
mc2.send(:define_method, dep_method_name){|*params| mod.add_dependency(mod2, *params)}
|
57
57
|
end
|
58
58
|
end
|
@@ -80,6 +80,12 @@ module Sonar
|
|
80
80
|
module BaseModuleMethods
|
81
81
|
include Sonar::ClassDependencies::ClassName
|
82
82
|
|
83
|
+
attr_reader :relationship_name
|
84
|
+
|
85
|
+
def set_relationship_name(name)
|
86
|
+
@relationship_name = name
|
87
|
+
end
|
88
|
+
|
83
89
|
def add_dependency(from, to)
|
84
90
|
from_sym = class_to_sym(from)
|
85
91
|
to_sym = class_to_sym(to)
|
@@ -32,16 +32,18 @@ describe "ClassDependencies" do
|
|
32
32
|
|
33
33
|
module AnotherDep
|
34
34
|
include Sonar::ClassDependencies
|
35
|
+
|
36
|
+
set_relationship_name :depends_on
|
35
37
|
end
|
36
38
|
|
37
39
|
class D
|
38
40
|
include AnotherDep
|
39
|
-
|
41
|
+
depends_on :e
|
40
42
|
end
|
41
43
|
|
42
44
|
class E
|
43
45
|
include AnotherDep
|
44
|
-
|
46
|
+
depends_on :f
|
45
47
|
end
|
46
48
|
|
47
49
|
class F
|