class Asteroid::Provider::Mock
Public Class Methods
clear!()
click to toggle source
# File lib/asteroid/provider/mock.rb, line 11 def self.clear! FileUtils.rm filename if File.exists? filename end
filename()
click to toggle source
# File lib/asteroid/provider/mock.rb, line 15 def self.filename File.join(File.dirname(__FILE__), '../../../world.yml') end
ip_address()
click to toggle source
# File lib/asteroid/provider/mock.rb, line 7 def self.ip_address (0..3).to_a.map{|a| rand(255)}.join(".") end
new(config = {})
click to toggle source
# File lib/asteroid/provider/mock.rb, line 19 def initialize(config = {}) @config = config @config[:filename] ||= self.class.filename load_world end
Public Instance Methods
create_instance(server)
click to toggle source
# 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)
click to toggle source
# 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()
click to toggle source
# File lib/asteroid/provider/mock.rb, line 26 def instances @world[:instances] ||= [] end
Private Instance Methods
load_world()
click to toggle source
# File lib/asteroid/provider/mock.rb, line 56 def load_world begin @world = YAML::load_file @config[:filename] rescue @world = {} end end
save_world()
click to toggle source
# File lib/asteroid/provider/mock.rb, line 64 def save_world File.open(@config[:filename], 'w') do |f| f.write @world.to_yaml end load_world end