resque_jobs_tree 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
@@ -42,12 +42,10 @@ class ResqueJobsTree::Definitions::Node < ResqueJobsTree::Definitions
|
|
42
42
|
root? ? [] : (parent.node_childs - [self])
|
43
43
|
end
|
44
44
|
|
45
|
-
def find _name
|
46
|
-
if name == _name.to_s
|
47
|
-
|
48
|
-
|
49
|
-
node_childs.inject(nil){|result,node| result ||= node.find _name }
|
50
|
-
end
|
45
|
+
def find _name, first=true
|
46
|
+
return self if name == _name.to_s
|
47
|
+
node_childs.inject(nil){|result,node| result ||= node.find(_name, false) } ||
|
48
|
+
(first && raise(ResqueJobsTree::TreeDefinitionInvalid, "Cannot find node #{_name} in #{tree.name}"))
|
51
49
|
end
|
52
50
|
|
53
51
|
def validate!
|
data/test/definitions_test.rb
CHANGED
@@ -96,4 +96,19 @@ class DefinitionsTest < MiniTest::Unit::TestCase
|
|
96
96
|
assert_equal options, @tree.find(:node2).options
|
97
97
|
end
|
98
98
|
|
99
|
+
def test_find
|
100
|
+
tree_definition = ResqueJobsTree::Factory.create :tree1 do
|
101
|
+
root :job1 do
|
102
|
+
perform {}
|
103
|
+
childs { [:job4] }
|
104
|
+
node :job2 do
|
105
|
+
perform {}
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
assert_raises ResqueJobsTree::TreeDefinitionInvalid do
|
110
|
+
tree_definition.spawn([]).launch
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
99
114
|
end
|