# File lib/rake_remote_task.rb, line 341 def self.role role_name, host = nil, args = {} if block_given? then raise ArgumentError, 'host not allowed with block' unless host.nil? begin current_roles << role_name yield ensure current_roles.delete role_name end else raise ArgumentError, 'host required' if host.nil? [*host].each do |hst| raise ArgumentError, "invalid host: #{hst}" if hst.nil? or hst.empty? end @@roles[role_name] = {} if @@def_role_hash.eql? @@roles[role_name] @@roles[role_name][host] = args end end