Class: HTTY::CLI::Commands::Reuse
- Inherits:
-
HTTY::CLI::Command
- Object
- HTTY::CLI::Command
- HTTY::CLI::Commands::Reuse
- Includes:
- Display
- Defined in:
- lib/htty/cli/commands/reuse.rb
Overview
Encapsulates the reuse command.
Constant Summary
Constants included from Display
Instance Attribute Summary
Attributes inherited from HTTY::CLI::Command
Class Method Summary collapse
-
.category ⇒ Object
Returns the name of a category under which help for the reuse command should appear.
-
.command_line_arguments ⇒ Object
Returns the arguments for the command-line usage of the reuse command.
-
.help ⇒ Object
Returns the help text for the reuse command.
-
.help_extended ⇒ Object
Returns the extended help text for the reuse command.
-
.see_also_commands ⇒ Object
Returns related command classes for the reuse command.
Instance Method Summary collapse
-
#perform ⇒ Object
Performs the reuse command.
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, sanitize_arguments
Constructor Details
This class inherits a constructor from HTTY::CLI::Command
Class Method Details
.category ⇒ Object
Returns the name of a category under which help for the reuse command should appear.
10 11 12 |
# File 'lib/htty/cli/commands/reuse.rb', line 10 def self.category 'Navigation' end |
.command_line_arguments ⇒ Object
Returns the arguments for the command-line usage of the reuse command.
15 16 17 |
# File 'lib/htty/cli/commands/reuse.rb', line 15 def self.command_line_arguments 'INDEX' end |
.help ⇒ Object
Returns the help text for the reuse command.
20 21 22 |
# File 'lib/htty/cli/commands/reuse.rb', line 20 def self.help 'Copies a previous request by the index number shown in history' end |
.help_extended ⇒ Object
Returns the extended help text for the reuse command.
25 26 27 28 29 30 31 32 |
# File 'lib/htty/cli/commands/reuse.rb', line 25 def self.help_extended 'Copies the properties of a previous request to be used for the request, ' + 'using the request index number shown in history. Does not communicate ' + "with the host.\n" + "\n" + 'The argument is an index number that appears when you type ' + "#{strong HTTY::CLI::Commands::History.command_line}." end |
Instance Method Details
#perform ⇒ Object
Performs the reuse command.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/htty/cli/commands/reuse.rb', line 40 def perform unless arguments.length == 1 raise ArgumentError, "wrong number of arguments (#{arguments.length} for 1)" end requests = session.requests requests_with_responses = requests.select do |r| r.response end raise 'no requests in history' if requests_with_responses.empty? index = arguments.first.to_i unless (1..requests_with_responses.length).include?(index) if requests_with_responses.length == 1 raise ArgumentError, "index must be 1" else raise ArgumentError, "index must be between 1 and #{requests_with_responses.length}" end end add_request_if_new do |request| session.requests.pop if request.response.nil? requests[index - 1].send(:dup_without_response) end puts notice("Using a copy of request ##{index}") self end |