Sha256: f67d1b187ff92ee25cc16dc295189f8833e658f8f025d286008422ac32b14d4b

Contents?: true

Size: 1.3 KB

Versions: 6770

Compression:

Stored size: 1.3 KB

Contents

# frozen_string_literal: true

require_relative "../command"
require_relative "../errors"

module Byebug
  #
  # Ask for help from byebug's prompt.
  #
  class HelpCommand < Command
    self.allow_in_control = true
    self.allow_in_post_mortem = true

    def self.regexp
      /^\s* h(?:elp)? (?:\s+(\S+))? (?:\s+(\S+))? \s*$/x
    end

    def self.description
      <<-DESCRIPTION
        h[elp][ <cmd>[ <subcmd>]]

        #{short_description}

        help                -- prints a summary of all commands
        help <cmd>          -- prints help on command <cmd>
        help <cmd> <subcmd> -- prints help on <cmd>'s subcommand <subcmd>
      DESCRIPTION
    end

    def self.short_description
      "Helps you using byebug"
    end

    def execute
      return help_for_all unless @match[1]

      return help_for(@match[1], command) unless @match[2]

      help_for(@match[2], subcommand)
    end

    private

    def help_for_all
      puts(processor.command_list.to_s)
    end

    def help_for(input, cmd)
      raise CommandNotFound.new(input, command) unless cmd

      puts(cmd.help)
    end

    def command
      @command ||= processor.command_list.match(@match[1])
    end

    def subcommand
      return unless command

      @subcommand ||= command.subcommand_list.match(@match[2])
    end
  end
end

Version data entries

6,770 entries across 6,767 versions & 30 rubygems

Version Path
cybrid_api_bank_ruby-0.123.149 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
cybrid_api_id_ruby-0.123.149 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
cybrid_api_organization_ruby-0.123.149 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
cybrid_api_bank_ruby-0.123.148 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
cybrid_api_id_ruby-0.123.148 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
cybrid_api_organization_ruby-0.123.148 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
cybrid_api_bank_ruby-0.123.147 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
cybrid_api_organization_ruby-0.123.147 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
cybrid_api_id_ruby-0.123.147 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
ory-client-1.16.2 vendor/bundle/ruby/3.1.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
avalara_sdk-24.12.2 vendor/bundle/ruby/2.7.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
cybrid_api_bank_ruby-0.123.145 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
cybrid_api_organization_ruby-0.123.145 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
cybrid_api_id_ruby-0.123.145 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
cybrid_api_bank_ruby-0.123.144 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
cybrid_api_id_ruby-0.123.144 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
cybrid_api_organization_ruby-0.123.144 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
ory-client-1.16.1 vendor/bundle/ruby/3.1.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
ory-client-1.16.0 vendor/bundle/ruby/3.1.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
cybrid_api_bank_ruby-0.123.143 vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb