Class: TheRunner::Context

Inherits:
Object
  • Object
show all
Defined in:
lib/the_runner/context.rb,
lib/the_runner/context/config.rb

Defined Under Namespace

Classes: Config

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(logger = nil) {|_self| ... } ⇒ Context

Returns a new instance of Context.

Yields:

  • (_self)

Yield Parameters:



6
7
8
9
10
11
12
13
14
# File 'lib/the_runner/context.rb', line 6

def initialize(logger = nil)
  @servers = []
  @command = ''
  @server_configs = {}
  @config = TheRunner::Context::Config.new
  @logger = Logger.new(STDOUT) if logger.nil?

  yield self if block_given?
end

Instance Attribute Details

#commandObject

Returns the value of attribute command.



5
6
7
# File 'lib/the_runner/context.rb', line 5

def command
  @command
end

#configObject

Returns the value of attribute config.



5
6
7
# File 'lib/the_runner/context.rb', line 5

def config
  @config
end

#serversObject

Returns the value of attribute servers.



5
6
7
# File 'lib/the_runner/context.rb', line 5

def servers
  @servers
end

Instance Method Details

#add_server(server) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/the_runner/context.rb', line 15

def add_server(server)
  server = Server.new(server) unless server.is_a?(Server)
  @servers << server

  if block_given?
    config = Config.new
    yield config

    @server_configs[server] = config
  end
end

#add_servers(servers) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/the_runner/context.rb', line 26

def add_servers(servers)
  servers.each do |server|
    if block_given?
      add_server(server) { |config|
        yield config
      }
    else
      add_server(server)
    end
  end
end

#get_runner_for(server) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/the_runner/context.rb', line 37

def get_runner_for(server)
  if has_specific_config_for?(server)
    @config.runner.new(server, @server_configs[server].runner_options, @logger)
  else
    @config.runner.new(server, @config.runner_options, @logger)
  end
end

#has_specific_config_for?(server) ⇒ Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/the_runner/context.rb', line 44

def has_specific_config_for?(server)
  @server_configs.has_key?(server)
end