class Capistrano::Configuration::Servers
Constants
- ServerKey
Public Instance Methods
add_host(host, properties={})
click to toggle source
# File lib/capistrano/configuration/servers.rb, line 10 def add_host(host, properties={}) new_host = Server[host] new_host.port = properties[:port] if properties.key?(:port) # This matching logic must stay in sync with `Server#matches?`. key = ServerKey.new(new_host.hostname, new_host.port) existing = servers_by_key[key] if existing existing.user = new_host.user if new_host.user existing.with(properties) else servers_by_key[key] = new_host.with(properties) end end
add_role(role, hosts, options={})
click to toggle source
rubocop:disable Security/MarshalLoad
# File lib/capistrano/configuration/servers.rb, line 25 def add_role(role, hosts, options={}) options_deepcopy = Marshal.dump(options.merge(roles: role)) Array(hosts).each { |host| add_host(host, Marshal.load(options_deepcopy)) } end
each() { |server| ... }
click to toggle source
# File lib/capistrano/configuration/servers.rb, line 59 def each servers_by_key.values.each { |server| yield server } end
fetch_primary(role)
click to toggle source
# File lib/capistrano/configuration/servers.rb, line 54 def fetch_primary(role) hosts = roles_for([role]) hosts.find(&:primary) || hosts.first end
role_properties_for(rolenames) { |host, role, props| ... }
click to toggle source
# File lib/capistrano/configuration/servers.rb, line 37 def role_properties_for(rolenames) roles = rolenames.to_set rps = Set.new unless block_given? roles_for(rolenames).each do |host| host.roles.intersection(roles).each do |role| [host.properties.fetch(role)].flatten(1).each do |props| if block_given? yield host, role, props else rps << (props || {}).merge(role: role, hostname: host.hostname) end end end end block_given? ? nil : rps end
roles_for(names)
click to toggle source
rubocop:enable Security/MarshalLoad
# File lib/capistrano/configuration/servers.rb, line 31 def roles_for(names) options = extract_options(names) s = Filter.new(:role, names).filter(servers_by_key.values) s.select { |server| server.select?(options) } end
Private Instance Methods
extract_options(array)
click to toggle source
# File lib/capistrano/configuration/servers.rb, line 71 def extract_options(array) array.last.is_a?(::Hash) ? array.pop : {} end
servers_by_key()
click to toggle source
# File lib/capistrano/configuration/servers.rb, line 67 def servers_by_key @servers_by_key ||= {} end