Sha256: 6cb2245c564e3615c755cf350de3fd44dab1c1b39ba4bbb029d37b329a067bdd

Contents?: true

Size: 1 KB

Versions: 6

Compression:

Stored size: 1 KB

Contents

module PoolParty
  
  class Script
    
    def self.inflate_file(file)
      inflate open(file).read
    end
        
    def self.inflate(script, file="__SCRIPT__")
      apool = new
      apool.instance_eval script, file
      apool.inflate
    end
    
    def inflate
      pools.map {|name,pool| pool.inflate } unless pools.empty?
    end
    
    def self.to_ruby(opts={},&blk)
      blk.to_ruby(opts)
    end
    
    def self.for_save_string
      returning Array.new do |out|
        pools.collect {|n,pl| pl}.each do |pl|
          out << "pool :#{pl.name} do"
          clouds.each do |n,cl|
            out << <<-EOE
  cloud :#{cl.name} do
    #{cl.minimum_runnable_options.map {|o| "#{o} #{cl.send(o).respec_string}"}.join("\n")}
  end
            EOE
          end
          out << "end"
        end
      end.join("\n")
    end
    
    def self.save!(to_file=true)
      write_to_file_in_storage_directory(Base.default_specfile_name, for_save_string) if to_file
      for_save_string
    end
    
  end
  
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
auser-poolparty-0.2.66 lib/poolparty/pool/script.rb
auser-poolparty-0.2.67 lib/poolparty/pool/script.rb
auser-poolparty-0.2.68 lib/poolparty/pool/script.rb
auser-poolparty-0.2.69 lib/poolparty/pool/script.rb
auser-poolparty-0.2.70 lib/poolparty/pool/script.rb
poolparty-0.2.69 lib/poolparty/pool/script.rb