class Jisota::Configuration

Stores all information required to run a provision against one or multiple servers (Except for the global package manager, which is stored in the Jisota module).

Uses DSL methods in the initializer for convenient definition of packages, roles and servers

Attributes

packages[RW]
roles[RW]
servers[RW]
ssh_engine[RW]

Public Class Methods

new(options = {}, &block) click to toggle source
# File lib/jisota/configuration.rb, line 10
def initialize(options = {}, &block)
  @packages   = options.fetch(:packages) { Collection.new }
  @roles      = options.fetch(:role) { Collection.new }
  @servers    = options.fetch(:servers) { [] }
  @ssh_engine = options.fetch(:ssh_engine) { SSHEngine.new }
  DSL.new(self).evaluate(&block) if block_given?
end

Public Instance Methods

add_package(package) click to toggle source
# File lib/jisota/configuration.rb, line 18
def add_package(package)
  packages.add(package)
end
add_role(role) click to toggle source
# File lib/jisota/configuration.rb, line 26
def add_role(role)
  roles.add(role)
end
add_server(server) click to toggle source
# File lib/jisota/configuration.rb, line 34
def add_server(server)
  servers << server
end
each_server(&block) click to toggle source
# File lib/jisota/configuration.rb, line 38
def each_server(&block)
  servers.each(&block)
end
get_package(name) click to toggle source
# File lib/jisota/configuration.rb, line 22
def get_package(name)
  packages[name]
end
get_role(name) click to toggle source
# File lib/jisota/configuration.rb, line 30
def get_role(name)
  roles[name]
end