Class: Jisota::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/jisota/configuration.rb

Overview

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

Defined Under Namespace

Classes: DSL

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}, &block) ⇒ Configuration

Returns a new instance of Configuration.



10
11
12
13
14
15
16
# 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

Instance Attribute Details

#packagesObject

Returns the value of attribute packages.



8
9
10
# File 'lib/jisota/configuration.rb', line 8

def packages
  @packages
end

#rolesObject

Returns the value of attribute roles.



8
9
10
# File 'lib/jisota/configuration.rb', line 8

def roles
  @roles
end

#serversObject

Returns the value of attribute servers.



8
9
10
# File 'lib/jisota/configuration.rb', line 8

def servers
  @servers
end

#ssh_engineObject

Returns the value of attribute ssh_engine.



8
9
10
# File 'lib/jisota/configuration.rb', line 8

def ssh_engine
  @ssh_engine
end

Instance Method Details

#add_package(package) ⇒ Object



18
19
20
# File 'lib/jisota/configuration.rb', line 18

def add_package(package)
  packages.add(package)
end

#add_role(role) ⇒ Object



26
27
28
# File 'lib/jisota/configuration.rb', line 26

def add_role(role)
  roles.add(role)
end

#add_server(server) ⇒ Object



34
35
36
# File 'lib/jisota/configuration.rb', line 34

def add_server(server)
  servers << server
end

#each_server(&block) ⇒ Object



38
39
40
# File 'lib/jisota/configuration.rb', line 38

def each_server(&block)
  servers.each(&block)
end

#get_package(name) ⇒ Object



22
23
24
# File 'lib/jisota/configuration.rb', line 22

def get_package(name)
  packages[name]
end

#get_role(name) ⇒ Object



30
31
32
# File 'lib/jisota/configuration.rb', line 30

def get_role(name)
  roles[name]
end