Class: StormForge::Dsl::TestCase::Cloud

Inherits:
Object
  • Object
show all
Includes:
ActiveModel::Serializers::JSON, ActiveModel::Validations, AttributeAccess
Defined in:
lib/stormforge/dsl/test_case/cloud.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from AttributeAccess

#method_missing, #respond_to_missing?

Constructor Details

#initialize(provider, callable = nil, &block) ⇒ Cloud

Returns a new instance of Cloud.



12
13
14
15
16
17
18
19
# File 'lib/stormforge/dsl/test_case/cloud.rb', line 12

def initialize(provider, callable=nil, &block)
  @attributes = {}

  @attributes[:provider] = provider.to_sym
  @attributes[:security_groups] = []

  instance_eval(&(callable || block))
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class StormForge::Dsl::TestCase::AttributeAccess

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



8
9
10
# File 'lib/stormforge/dsl/test_case/cloud.rb', line 8

def attributes
  @attributes
end

Class Method Details

.supported_cloud_providersObject



30
31
32
# File 'lib/stormforge/dsl/test_case/cloud.rb', line 30

def self.supported_cloud_providers
  [ :aws ]
end

Instance Method Details

#available_attributesObject



26
27
28
# File 'lib/stormforge/dsl/test_case/cloud.rb', line 26

def available_attributes
  [ :provider ]
end

#security_groups(*groups) ⇒ Object Also known as: security_group



21
22
23
# File 'lib/stormforge/dsl/test_case/cloud.rb', line 21

def security_groups(*groups)
  @attributes[:security_groups] += groups
end