Sha256: 6ee60d96d48479435157f5221b2781cfe38227b99101ec5be1393394d8a4dcad

Contents?: true

Size: 1.23 KB

Versions: 48

Compression:

Stored size: 1.23 KB

Contents

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:
    
    def self.build(file_targets_yaml, destination)
      data = nil
      
      File.open(file_targets_yaml, 'r') do |f|
        data = f.read
      end
      
      targets = YAML.load(data)
      targets.each do |target|
        # 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

Version data entries

48 entries across 48 versions & 1 rubygems

Version Path
sprout-0.7.219-i686-darwin10 lib/sprout/builder.rb
sprout-0.7.219-mswin32 lib/sprout/builder.rb
sprout-0.7.219-darwin lib/sprout/builder.rb
sprout-0.7.218 lib/sprout/builder.rb
sprout-0.7.218-x86-linux lib/sprout/builder.rb
sprout-0.7.218-mswin32 lib/sprout/builder.rb
sprout-0.7.218-darwin lib/sprout/builder.rb
sprout-0.7.217-x86-linux lib/sprout/builder.rb
sprout-0.7.217-mswin32 lib/sprout/builder.rb
sprout-0.7.217-darwin lib/sprout/builder.rb
sprout-0.7.217 lib/sprout/builder.rb
sprout-0.7.215-x86-linux lib/sprout/builder.rb
sprout-0.7.215 lib/sprout/builder.rb
sprout-0.7.215-mswin32 lib/sprout/builder.rb
sprout-0.7.215-darwin lib/sprout/builder.rb
sprout-0.7.213-x86-linux lib/sprout/builder.rb
sprout-0.7.213-mswin32 lib/sprout/builder.rb
sprout-0.7.213-darwin lib/sprout/builder.rb
sprout-0.7.212-x86-linux lib/sprout/builder.rb
sprout-0.7.212-mswin32 lib/sprout/builder.rb