Sha256: 5036edbe80c88107a688d00b117da3ce1fed38f569047ec013decbf1b80948b5

Contents?: true

Size: 1.29 KB

Versions: 18

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

require "byebug/command"
require "byebug/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

18 entries across 18 versions & 8 rubygems

Version Path
mountapi-0.11.1 vendor/bundle/ruby/2.7.0/gems/byebug-10.0.2/lib/byebug/commands/help.rb
metanorma-cli-1.3.4 gems/ruby/2.6.0/gems/byebug-10.0.2/lib/byebug/commands/help.rb
metanorma-cli-1.3.3.1 gems/ruby/2.6.0/gems/byebug-10.0.2/lib/byebug/commands/help.rb
talon_one-2.0.0 vendor/bundle/ruby/2.3.0/gems/byebug-11.0.1/lib/byebug/commands/help.rb
honeybadger-4.5.3 vendor/bundle/ruby/2.6.0/gems/byebug-11.0.1/lib/byebug/commands/help.rb
chatops-rpc-0.0.2 fixtures/chatops-controller-example/vendor/bundle/ruby/2.5.0/gems/byebug-11.0.1/lib/byebug/commands/help.rb
chatops-rpc-0.0.1 fixtures/chatops-controller-example/vendor/bundle/ruby/2.5.0/gems/byebug-11.0.1/lib/byebug/commands/help.rb
dadapush_client-1.0.1 vendor/bundle/ruby/2.3.0/gems/byebug-10.0.2/lib/byebug/commands/help.rb
byebug-11.0.1 lib/byebug/commands/help.rb
byebug-11.0.0 lib/byebug/commands/help.rb
jets-0.5.5 vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/help.rb
jets-0.5.4 vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/help.rb
jets-0.5.3 vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/help.rb
jets-0.5.2 vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/help.rb
jets-0.5.1 vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/help.rb
byebug-10.0.2 lib/byebug/commands/help.rb
byebug-10.0.1 lib/byebug/commands/help.rb
byebug-10.0.0 lib/byebug/commands/help.rb