Sha256: c3fd7a15f0a64bca5e33a53fcb3c3e90e75f6a46906d7296d3fea3a781f154ec

Contents?: true

Size: 1.21 KB

Versions: 13

Compression:

Stored size: 1.21 KB

Contents

module PoolParty
  module Pool
    
    def pool(name=:app, &block)
      pools.has_key?(name) ? pools[name] : (pools[name] = Pool.new(name, &block))
    end    
    
    def pools
      $pools ||= {}
    end
    
    def with_pool(pool, opts={}, &block)
      pool.options.merge!(opts)
      pool.instance_eval &block if block
    end
        
    def reset!
      $pools = $clouds = $plugins = @describe_instances = nil
    end

    class Pool
      attr_accessor :name
      include PoolParty::Cloud
      include MethodMissingSugar
      # include PluginModel
      include Configurable
      include PrettyPrinter
      include CloudResourcer
      include Remote
      
      default_options({
        :access_key => Base.access_key,
        :secret_access_key => Base.secret_access_key
      })
      
      def initialize(name,&block)
        @name = name
        instance_eval &block if block
      end
      
      def plugin_directory(*args)
        args.each {|arg| Dir["#{arg}/*/*.rb"].each {|f| require f }}
      end
            
      # This is where the entire process starts
      def inflate
      end
    end
    
    # Helpers
    def remove_pool(name)
      pools.delete(name) if pools.has_key?(name)
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
auser-poolparty-0.2.35 lib/poolparty/pool/pool.rb
auser-poolparty-0.2.36 lib/poolparty/pool/pool.rb
auser-poolparty-0.2.37 lib/poolparty/pool/pool.rb
auser-poolparty-0.2.38 lib/poolparty/pool/pool.rb
auser-poolparty-0.2.39 lib/poolparty/pool/pool.rb
auser-poolparty-0.2.40 lib/poolparty/pool/pool.rb
auser-poolparty-0.2.41 lib/poolparty/pool/pool.rb
auser-poolparty-0.2.42 lib/poolparty/pool/pool.rb
auser-poolparty-0.2.44 lib/poolparty/pool/pool.rb
auser-poolparty-0.2.45 lib/poolparty/pool/pool.rb
auser-poolparty-0.2.46 lib/poolparty/pool/pool.rb
auser-poolparty-0.2.47 lib/poolparty/pool/pool.rb
auser-poolparty-0.2.48 lib/poolparty/pool/pool.rb