lib/taketo/constructs/server.rb in taketo-0.0.1 vs lib/taketo/constructs/server.rb in taketo-0.0.2
- old
+ new
@@ -1,13 +1,40 @@
module Taketo
module Constructs
class Server
- attr_reader :name
+ class CommandNotFoundError < StandardError; end
+
+ attr_reader :name, :environment_variables, :commands
attr_accessor :host, :port, :username, :default_location, :environment
def initialize(name)
@name = name
+ @environment_variables = {}
+ @commands = []
end
+
+ def env(env_variables)
+ @environment_variables.merge!(env_variables)
+ end
+
+ def append_command(command)
+ @commands << command
+ end
+
+ def environment=(environment)
+ env(:RAILS_ENV => environment.name.to_s)
+ @environment = environment
+ end
+
+ def command_by_name(command_name)
+ @commands.detect { |c| c.name == command_name } or
+ if block_given?
+ yield
+ else
+ raise CommandNotFoundError, "Command #{command_name} not found for server #{name}"
+ end
+ end
+
end
end
end