Class: HTTY::CLI::Commands::Follow

Inherits:
HTTY::CLI::Command show all
Defined in:
lib/htty/cli/commands/follow.rb

Overview

Encapsulates the follow 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 inherited from HTTY::CLI::Command

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

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

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 follow command should appear.



8
9
10
# File 'lib/htty/cli/commands/follow.rb', line 8

def self.category
  'Navigation'
end

.helpObject

Returns the help text for the follow command.



13
14
15
16
# File 'lib/htty/cli/commands/follow.rb', line 13

def self.help
  "Changes the address of the request to the value of the response's " +
  "'#{HTTY::Response::LOCATION_HEADER_NAME}' header"
end

.help_extendedObject

Returns the extended help text for the follow command.



19
20
21
22
23
# File 'lib/htty/cli/commands/follow.rb', line 19

def self.help_extended
  "Changes the address of the request to the value of the response's "      +
  "'#{HTTY::Response::LOCATION_HEADER_NAME}' header. Does not communicate " +
  'with the host.'
end

.see_also_commandsObject

Returns related command classes for the follow command.



26
27
28
# File 'lib/htty/cli/commands/follow.rb', line 26

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

Instance Method Details

#performObject

Performs the follow command.



31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/htty/cli/commands/follow.rb', line 31

def perform
  unless arguments.empty?
    raise ArgumentError,
          "wrong number of arguments (#{arguments.length} for 0)"
  end

  add_request_if_new do |request|
    self.class.notify_if_cookies_cleared request do
      request.follow session.last_response
    end
  end
end