role (Rake::RemoteTask)

    # 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