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