Class: HTTY::CLI::Commands::UserinfoSet

Inherits:
HTTY::CLI::Command show all
Extended by:
UrlEscaping
Defined in:
lib/htty/cli/commands/userinfo_set.rb

Overview

Encapsulates the userinfo-set command.

Constant Summary

Constants included from Display

Display::FORMATS

Instance Attribute Summary

Attributes inherited from HTTY::CLI::Command

#arguments, #session

Class Method Summary collapse

Instance Method Summary collapse

Methods included from UrlEscaping

escape_or_warn_of_escape_sequences

Methods included from Display

#break, #format, #formatted_prompt_for, #indent, #logotype, #normal, #notice, #pluralize, #rescuing_from, #say, #say_goodbye, #say_header, #say_hello, #show_headers, #show_request, #show_response, #strong, #word_wrap, #word_wrap_indented

Methods inherited from HTTY::CLI::Command

#add_request_if_new, alias_for, aliases, build_for, command_line, complete_for?, #initialize, notify_if_cookies_cleared, raw_name

Constructor Details

This class inherits a constructor from HTTY::CLI::Command

Class Method Details

.categoryObject

Returns the name of a category under which help for the userinfo-set command should appear.



10
11
12
# File 'lib/htty/cli/commands/userinfo_set.rb', line 10

def self.category
  'Navigation'
end

.command_line_argumentsObject

Returns the arguments for the command-line usage of the userinfo-set command.



16
17
18
# File 'lib/htty/cli/commands/userinfo_set.rb', line 16

def self.command_line_arguments
  'USERNAME [PASSWORD]'
end

.helpObject

Returns the help text for the userinfo-set command.



21
22
23
# File 'lib/htty/cli/commands/userinfo_set.rb', line 21

def self.help
  "Sets the userinfo of the request's address"
end

.help_extendedObject

Returns the extended help text for the userinfo-set command.



26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/htty/cli/commands/userinfo_set.rb', line 26

def self.help_extended
  'Sets the userinfo used for the request. Does not communicate with the '   +
  "host.\n"                                                                  +
  "\n"                                                                       +
  "Userinfo will be URL-encoded if necessary.\n"                             +
  "\n"                                                                       +
  'When userinfo is set, a corresponding '                                   +
  "'#{HTTY::Request::AUTHORIZATION_HEADER_NAME}' header is set "             +
  "automatically.\n"                                                         +
  "\n"                                                                       +
  'The console prompt shows the address for the current request. Userinfo '  +
  'appears in normal type while the rest of the address appears in bold to ' +
  'indicate that userinfo is sent to the host in the form of a header.'
end

.sanitize_arguments(arguments) ⇒ Object



46
47
48
49
50
51
# File 'lib/htty/cli/commands/userinfo_set.rb', line 46

def self.sanitize_arguments(arguments)
  if (arguments.length == 1) && (arguments.first.scan(':').length == 1)
    arguments = arguments.first.split(':')
  end
  escape_or_warn_of_escape_sequences(arguments)
end

.see_also_commandsObject

Returns related command classes for the userinfo-set command.



42
43
44
# File 'lib/htty/cli/commands/userinfo_set.rb', line 42

def self.see_also_commands
  [HTTY::CLI::Commands::UserinfoUnset, HTTY::CLI::Commands::Address]
end

Instance Method Details

#performObject

Performs the userinfo-set command.



54
55
56
57
58
59
60
# File 'lib/htty/cli/commands/userinfo_set.rb', line 54

def perform
  add_request_if_new do |request|
    self.class.notify_if_cookies_cleared request do
      request.userinfo_set(*arguments)
    end
  end
end