Create the MachineState class
This commit is contained in:
parent
cfe55eb57f
commit
7bdf54923a
|
@ -75,6 +75,7 @@ module Vagrant
|
||||||
autoload :Guest, 'vagrant/guest'
|
autoload :Guest, 'vagrant/guest'
|
||||||
autoload :Hosts, 'vagrant/hosts'
|
autoload :Hosts, 'vagrant/hosts'
|
||||||
autoload :Machine, 'vagrant/machine'
|
autoload :Machine, 'vagrant/machine'
|
||||||
|
autoload :MachineState, 'vagrant/machine_state'
|
||||||
autoload :Plugin, 'vagrant/plugin'
|
autoload :Plugin, 'vagrant/plugin'
|
||||||
autoload :TestHelpers, 'vagrant/test_helpers'
|
autoload :TestHelpers, 'vagrant/test_helpers'
|
||||||
autoload :UI, 'vagrant/ui'
|
autoload :UI, 'vagrant/ui'
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
module Vagrant
|
||||||
|
# This represents the state of a given machine. This is a very basic
|
||||||
|
# class that simply stores a short and long description of the state
|
||||||
|
# of a machine.
|
||||||
|
#
|
||||||
|
# The state also stores a state "id" which ca be used as a unique
|
||||||
|
# identifier for a state. This should be a symbol. This allows internal
|
||||||
|
# code to compare state such as ":not_created" instead of using
|
||||||
|
# string comparison.
|
||||||
|
#
|
||||||
|
# The short description should be a single word description of the
|
||||||
|
# state of the machine such as "running" or "not created".
|
||||||
|
#
|
||||||
|
# The long description can span multiple lines describing what the
|
||||||
|
# state actually means.
|
||||||
|
class MachineState
|
||||||
|
# Unique ID for this state.
|
||||||
|
#
|
||||||
|
# @return [Symbol]
|
||||||
|
attr_reader :id
|
||||||
|
|
||||||
|
# Short description for this state.
|
||||||
|
#
|
||||||
|
# @return [String]
|
||||||
|
attr_reader :short_description
|
||||||
|
|
||||||
|
# Long description for this state.
|
||||||
|
#
|
||||||
|
# @return [String]
|
||||||
|
attr_reader :long_description
|
||||||
|
|
||||||
|
# Creates a new instance to represent the state of a machine.
|
||||||
|
#
|
||||||
|
# @param [Symbol] id Unique identifier for this state.
|
||||||
|
# @param [String] short Short (preferably one-word) description of
|
||||||
|
# the state.
|
||||||
|
# @param [String] long Long description (can span multiple lines)
|
||||||
|
# of the state.
|
||||||
|
def initialize(id, short, long)
|
||||||
|
@id = id
|
||||||
|
@short_description = short
|
||||||
|
@long_description = long
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,26 @@
|
||||||
|
require "pathname"
|
||||||
|
|
||||||
|
require File.expand_path("../../base", __FILE__)
|
||||||
|
|
||||||
|
describe Vagrant::MachineState do
|
||||||
|
include_context "unit"
|
||||||
|
|
||||||
|
let(:id) { :some_state }
|
||||||
|
let(:short) { "foo" }
|
||||||
|
let(:long) { "I am a longer foo" }
|
||||||
|
|
||||||
|
it "should give access to the id" do
|
||||||
|
instance = described_class.new(id, short, long)
|
||||||
|
instance.id.should == id
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should give access to the short description" do
|
||||||
|
instance = described_class.new(id, short, long)
|
||||||
|
instance.short_description.should == short
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should give access to the long description" do
|
||||||
|
instance = described_class.new(id, short, long)
|
||||||
|
instance.long_description.should == long
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue