lib/bpm/package.rb in bpm-0.1.3 vs lib/bpm/package.rb in bpm-0.1.4

- old
+ new

@@ -106,10 +106,32 @@ def load_json read && parse end + def expanded_deps(project) + ret = [] + seen = [] + todo = [self] + while todo.size > 0 + pkg = todo.shift + pkg.dependencies.each do |dep_name, dep_vers| + next if seen.include? dep_name + seen << dep_name + found = project.local_deps.find { |x| x.name == dep_name } + if found + todo << found + ret << found + else + puts "COULD NOT FIND DEP: #{dep_name}" + end + end + + end + ret + end + # TODO: Make better errors # TODO: This might not work well with conflicting versions def local_deps(search_path=nil) search_path ||= File.join(root_path, "packages") @@ -176,10 +198,16 @@ dependencies.keys.map do |pkg_name| dep = project.local_deps.find do |pkg| pkg.load_json pkg.name == pkg_name end - dep.attributes[key_name] + + if dep + dep.attributes[key_name] + else + puts "COULD NOT FIND DEP: #{pkg_name}" + end + end.compact end # named directories that are expected to contain code. These will be # searched for supported modules