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
ory-client-0.0.1.alpha37 vendor/bundle/ruby/2.5.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
ory-client-0.0.1.alpha36 vendor/bundle/ruby/2.5.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
ory-kratos-client-0.8.2.alpha1 vendor/bundle/ruby/2.5.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
ory-client-0.0.1.alpha31 vendor/bundle/ruby/2.5.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
primary_connect_proto-0.4.0 vendor/bundle/ruby/2.6.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
primary_connect_proto-0.3.0 vendor/bundle/ruby/2.6.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
primary_connect_proto-0.2.0 vendor/bundle/ruby/2.6.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
primary_connect_proto-0.1.0 vendor/bundle/ruby/2.6.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
ory-client-0.0.1.alpha30 vendor/bundle/ruby/2.5.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
ory-client-0.0.1.alpha29 vendor/bundle/ruby/2.5.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
primary_connect_proto-0.0.6 vendor/bundle/ruby/2.6.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
ory-client-0.0.1.alpha28 vendor/bundle/ruby/2.5.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
primary_connect_proto-0.0.5 vendor/bundle/ruby/2.6.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
ory-client-0.0.1.alpha27 vendor/bundle/ruby/2.5.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
ory-client-0.0.1.alpha24 vendor/bundle/ruby/2.5.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
primary_connect_proto-0.0.4 vendor/bundle/ruby/2.6.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
primary_connect_proto-0.0.3 vendor/bundle/ruby/2.6.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
date_n_time_picker_activeadmin-0.1.2 vendor/bundle/ruby/2.6.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
date_n_time_picker_activeadmin-0.1.1 vendor/bundle/ruby/2.6.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb
ory-client-0.0.1.alpha23 vendor/bundle/ruby/2.5.0/gems/byebug-11.1.3/lib/byebug/commands/help.rb