lib/app_drone/template.rb~ in app_drone-0.5.2 vs lib/app_drone/template.rb~ in app_drone-0.6.0
- old
+ new
@@ -1,6 +1,7 @@
-class AppDrone::Template
+module AppDrone
+class Template
def initialize; @drones = {}; @directives = {} end
def add(ref,*params)
klass = ref.is_a?(Class)? ref : ('AppDrone::' + ref.to_s.classify).constantize
@drones[klass] = klass.new(self, params.first) # no idea why `.first` is required..
@@ -20,22 +21,13 @@
def do!(d,drone);
generator_method = drone.class.generator_method || :leftovers
(@directives[generator_method] ||= []) << d
end
- def check_dependencies
- drone_classes.each { |drone_class|
- drone_class.dependencies.each { |d|
- dependency = d.to_s.classify
- raise "#{drone_class} depends on #{dependency}, but it is not included in the template." unless drone_classes.include?(d)
- }
- }
- end
-
def render!
return if @rendered
- check_dependencies
+ DependencyChain.check_dependencies!(drone_classes)
drone_objects.map(&:align)
drone_objects.map(&:execute)
@rendered = true
end
@@ -56,7 +48,7 @@
render!
File.open('out.rb','w+') do |f|
f.write(render_with_wrapper)
end
end
-
+end
end