# File lib/rake_remote_task.rb, line 43
def role role_name, host = nil, args = {}
  if block_given? then
    raise ArgumentError, 'host not allowed with block' unless host.nil?

    begin
      Rake::RemoteTask.current_roles << role_name
      yield
    ensure
      Rake::RemoteTask.current_roles.delete role_name
    end
  else
    raise ArgumentError, 'host required' if host.nil?
    Rake::RemoteTask.role role_name, host, args
  end
end