Class: Asteroid::Provider::Mock
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Abstract
#required_instance_attributes, #type, type
Constructor Details
#initialize(config = {}) ⇒ Mock
Returns a new instance of Mock.
19
20
21
22
23
24
|
# File 'lib/asteroid/provider/mock.rb', line 19
def initialize(config = {})
@config = config
@config[:filename] ||= self.class.filename
load_world
end
|
Class Method Details
.clear! ⇒ Object
11
12
13
|
# File 'lib/asteroid/provider/mock.rb', line 11
def self.clear!
FileUtils.rm filename if File.exists? filename
end
|
.filename ⇒ Object
15
16
17
|
# File 'lib/asteroid/provider/mock.rb', line 15
def self.filename
File.join(File.dirname(__FILE__), '../../../world.yml')
end
|
.ip_address ⇒ Object
7
8
9
|
# File 'lib/asteroid/provider/mock.rb', line 7
def self.ip_address
(0..3).to_a.map{|a| rand(255)}.join(".")
end
|
Instance Method Details
#create_instance(server) ⇒ Object
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/asteroid/provider/mock.rb', line 30
def create_instance(server)
instance = {
name: server.generate_instance_name,
id: SecureRandom.hex(5),
ip_address: self.class.ip_address,
type: server.type
}
self.instances << instance
save_world
Instance.new instance.merge({
provider: self,
server: server
})
end
|
#destroy_instance(instance) ⇒ Object
47
48
49
50
51
52
|
# File 'lib/asteroid/provider/mock.rb', line 47
def destroy_instance(instance)
self.instances.delete_if do |i|
i[:id] == i.id
end
save_world
end
|
#instances ⇒ Object
26
27
28
|
# File 'lib/asteroid/provider/mock.rb', line 26
def instances
@world[:instances] ||= []
end
|