Class: Wakame::Service::VmSpec

Inherits:
Object
  • Object
show all
Defined in:
lib/wakame/service.rb

Defined Under Namespace

Classes: EC2, StandAlone, Template

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeVmSpec

Returns a new instance of VmSpec.



605
606
607
# File 'lib/wakame/service.rb', line 605

def initialize
  @environments = {}
end

Class Method Details

.define(&blk) ⇒ Object



599
600
601
602
603
# File 'lib/wakame/service.rb', line 599

def self.define(&blk)
  spec = self.new
  spec.instance_eval(&blk)
  spec
end

Instance Method Details

#currentObject



609
610
611
# File 'lib/wakame/service.rb', line 609

def current
  environment(Wakame.config.environment)
end

#environment(klass_key, &blk) ⇒ Object



613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
# File 'lib/wakame/service.rb', line 613

def environment(klass_key, &blk)
  envobj = @environments[klass_key]
  if envobj.nil?
    #klass = self.class.constants.find{ |c| c.to_s == klass_key.to_s }
    if self.class.const_defined?(klass_key)
      envobj = @environments[klass_key] = Wakame.new_([self.class.to_s, klass_key.to_s].join('::'))
    else
      raise "Undefined VM Spec template : #{klass_key}"
    end
  end

  envobj.instance_eval(&blk) if blk

  envobj
end