lib/sprout/builder.rb in sprout-0.7.206-darwin vs lib/sprout/builder.rb in sprout-0.7.210
- old
+ new
@@ -1,34 +1,43 @@
module Sprout
+ class BuilderError < StandardError #:nodoc:
+ end
+
# accepts a destination path and a sprout specification
# and will download and unpack the platform-specific
# archives that are identified in the spec
class Builder # :nodoc:
- class BuilderError < StandardError #:nodoc:
- end
-
def self.build(file_targets_yaml, destination)
data = nil
File.open(file_targets_yaml, 'r') do |f|
data = f.read
end
- usr = User.new
- platform = usr.platform.to_s
-
targets = YAML.load(data)
targets.each do |target|
- if(target.platform == 'universal' || target.platform == platform)
+ # iterate over the provided RemoteFileTargets until we
+ # encounter one that is appropriate for our platform,
+ # or one that claims to be universal.
+ # When authoring a sprout.spec for libraries or tools,
+ # put the most specific RemoteFileTargets first, then
+ # universals to catch unexpected platforms.
+ if(target.platform == platform || target.platform == 'universal')
target.install_path = FileUtils.mkdir_p(destination)
target.resolve
return target
end
end
raise BuilderError.new("Sprout::Builder.build failed, unsupported platform or unexpected yaml")
+ end
+
+ private
+
+ def self.platform
+ @@platform ||= User.new.platform.to_s
end
end
end