Module: Capistrano::SrvHosts::InstanceMethods

Defined in:
lib/capistrano/srv_hosts.rb

Instance Method Summary collapse

Instance Method Details

#srv_hosts(srv_record) ⇒ Object



6
7
8
9
10
11
12
# File 'lib/capistrano/srv_hosts.rb', line 6

def srv_hosts(srv_record)
  @srv_hosts ||= {}
  @srv_hosts[srv_record] ||= Resolv::DNS.open do |dns|
    dns.getresources(srv_record, Resolv::DNS::Resource::IN::SRV).sort_by{|rr| [rr.priority, rr.weight, rr.target.to_s]}.map{ |rr| rr.target.to_s}
  end
  @srv_hosts[srv_record].dup
end

#srv_role(new_role, srv_record, *params) ⇒ Object



14
15
16
# File 'lib/capistrano/srv_hosts.rb', line 14

def srv_role(new_role, srv_record, *params)
  role new_role, *srv_hosts(srv_record), *params
end