Class: Toys::Utils::HelpText
- Inherits:
 - 
      Object
      
        
- Object
 - Toys::Utils::HelpText
 
 
- Defined in:
 - lib/toys/utils/help_text.rb
 
Overview
A helper class that generates usage documentation for a tool.
This class generates full usage documentation, including description, flags, and arguments. It is used by middleware that implements help and related options.
This class is not loaded by default. Before using it directly, you should
require "toys/utils/help_text"
Constant Summary collapse
- DEFAULT_LEFT_COLUMN_WIDTH =
          
Default width of first column
 32- DEFAULT_INDENT =
          
Default indent
 4
Instance Attribute Summary collapse
- 
  
    
      #tool  ⇒ Toys::ToolDefinition 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
The ToolDefinition being documented.
 
Class Method Summary collapse
- 
  
    
      .from_context(context)  ⇒ Toys::Utils::HelpText 
    
    
  
  
  
  
  
  
  
  
  
    
Create a usage helper given an execution context.
 
Instance Method Summary collapse
- 
  
    
      #help_string(recursive: false, search: nil, include_hidden: false, show_source_path: false, separate_sources: false, indent: nil, indent2: nil, wrap_width: nil, styled: true)  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    
Generate a long help string.
 - 
  
    
      #initialize(tool, loader, executable_name, delegates: [])  ⇒ Toys::Utils::HelpText 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
Create a usage helper.
 - 
  
    
      #list_string(recursive: false, search: nil, include_hidden: false, separate_sources: false, indent: nil, wrap_width: nil, styled: true)  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    
Generate a subtool list string.
 - 
  
    
      #usage_string(recursive: false, include_hidden: false, separate_sources: false, left_column_width: nil, indent: nil, wrap_width: nil)  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    
Generate a short usage string.
 
Constructor Details
#initialize(tool, loader, executable_name, delegates: []) ⇒ Toys::Utils::HelpText
Create a usage helper.
      56 57 58 59 60 61  | 
    
      # File 'lib/toys/utils/help_text.rb', line 56 def initialize(tool, loader, executable_name, delegates: []) @tool = tool @loader = loader @executable_name = executable_name @delegates = delegates end  | 
  
Instance Attribute Details
#tool ⇒ Toys::ToolDefinition (readonly)
The ToolDefinition being documented.
      67 68 69  | 
    
      # File 'lib/toys/utils/help_text.rb', line 67 def tool @tool end  | 
  
Class Method Details
.from_context(context) ⇒ Toys::Utils::HelpText
Create a usage helper given an execution context.
      34 35 36 37 38 39 40 41 42  | 
    
      # File 'lib/toys/utils/help_text.rb', line 34 def self.from_context(context) delegates = [] cur = context while (cur = cur[Context::Key::DELEGATED_FROM]) delegates << cur[Context::Key::TOOL] end cli = context[Context::Key::CLI] new(context[Context::Key::TOOL], cli.loader, cli.executable_name, delegates: delegates) end  | 
  
Instance Method Details
#help_string(recursive: false, search: nil, include_hidden: false, show_source_path: false, separate_sources: false, indent: nil, indent2: nil, wrap_width: nil, styled: true) ⇒ String
Generate a long help string.
      120 121 122 123 124 125 126 127 128 129 130 131 132  | 
    
      # File 'lib/toys/utils/help_text.rb', line 120 def help_string(recursive: false, search: nil, include_hidden: false, show_source_path: false, separate_sources: false, indent: nil, indent2: nil, wrap_width: nil, styled: true) indent ||= DEFAULT_INDENT indent2 ||= DEFAULT_INDENT subtools = collect_subtool_info(recursive, search, include_hidden, separate_sources) assembler = HelpStringAssembler.new( @tool, @executable_name, @delegates, subtools, search, show_source_path, separate_sources, indent, indent2, wrap_width, styled ) assembler.result end  | 
  
#list_string(recursive: false, search: nil, include_hidden: false, separate_sources: false, indent: nil, wrap_width: nil, styled: true) ⇒ String
Generate a subtool list string.
      152 153 154 155 156 157 158 159  | 
    
      # File 'lib/toys/utils/help_text.rb', line 152 def list_string(recursive: false, search: nil, include_hidden: false, separate_sources: false, indent: nil, wrap_width: nil, styled: true) indent ||= DEFAULT_INDENT subtools = collect_subtool_info(recursive, search, include_hidden, separate_sources) assembler = ListStringAssembler.new(@tool, subtools, recursive, search, separate_sources, indent, wrap_width, styled) assembler.result end  | 
  
#usage_string(recursive: false, include_hidden: false, separate_sources: false, left_column_width: nil, indent: nil, wrap_width: nil) ⇒ String
Generate a short usage string.
      86 87 88 89 90 91 92 93 94 95 96  | 
    
      # File 'lib/toys/utils/help_text.rb', line 86 def usage_string(recursive: false, include_hidden: false, separate_sources: false, left_column_width: nil, indent: nil, wrap_width: nil) left_column_width ||= DEFAULT_LEFT_COLUMN_WIDTH indent ||= DEFAULT_INDENT subtools = collect_subtool_info(recursive, nil, include_hidden, separate_sources) assembler = UsageStringAssembler.new( @tool, @executable_name, subtools, separate_sources, indent, left_column_width, wrap_width ) assembler.result end  |