Sha256: eaaec0cc7561fbab78730b64814a5d0b921c7521eea7f22718622f475c3ad6cd

Contents?: true

Size: 971 Bytes

Versions: 5

Compression:

Stored size: 971 Bytes

Contents

module PoolParty
  
  class Service < PoolPartyBaseClass
    
    def initialize(o={}, &block)
      super(o, &block)
    end
    
    def cloud
      2.upto(context_stack.size) do |i|
        return ::PoolParty.context_stack[-i] if ::PoolParty.context_stack[-i].is_a?(PoolParty::Cloud::Cloud)
      end
      nil
    end
    
    def self.add_has_and_does_not_have_methods_for(typ=:file)
      lowercase_class_name = typ.to_s.top_level_class.downcase
      
      meth = <<-EOM
        def __#{lowercase_class_name}(opts={}, &block)
          PoolParty::#{lowercase_class_name.camelcase}Class.new(opts, &block)
        end
        alias :#{lowercase_class_name} :__#{lowercase_class_name}
      EOM
      
      PoolParty::PoolPartyBaseClass.module_eval meth
      PoolParty::PoolPartyBaseClass.add_has_and_does_not_have_methods_for(lowercase_class_name.to_sym)
    end
    
  end
  
end

Dir["#{::File.dirname(__FILE__)}/../services/*.rb"].each {|lib| require "#{lib}"}

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
auser-poolparty-1.1.1 lib/poolparty/poolparty/service.rb
auser-poolparty-1.1.3 lib/poolparty/poolparty/service.rb
auser-poolparty-1.1.4 lib/poolparty/poolparty/service.rb
fairchild-poolparty-1.1.3 lib/poolparty/poolparty/service.rb
fairchild-poolparty-1.1.4 lib/poolparty/poolparty/service.rb