Method: Auger::Project#server
- Defined in:
- lib/auger/project.rb
#server(*args) ⇒ Object
set server, or list of server names, with optional roles and options e.g. server server1, server2, :roleA, :roleB, options => values servers can be any combination in:
strings: passed through HostRange to make an array
array: or expressions that returns an array
block: returning an array (arrays will be flattened)
roles are symbols options are hash members, must be last args
29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/auger/project.rb', line 29 def server(*args) = args.last.is_a?(Hash) ? args.pop : {} roles = args.select { |arg| arg.class == Symbol } servers = args.select { |arg| arg.class == String }.map { |arg| HostRange.parse(arg) } + args.select { |arg| arg.class == Array } + (block_given? ? yield : []) @servers += servers.flatten.map do |name| Auger::Server.new(name, *roles, ) end end |