summaryrefslogtreecommitdiff
path: root/lib/pry/block_command.rb
blob: bf74955f2e5316535a6536398204177f0eeeab38 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# frozen_string_literal: true

class Pry
  # A super-class for Commands that are created with a single block.
  #
  # This class ensures that the block is called with the correct number of
  # arguments and the right context.
  #
  # Create subclasses using {Pry::CommandSet#command}.
  class BlockCommand < Command
    # Call the block that was registered with this command.
    # @param [Array<String>] args The arguments passed
    # @return [Object] The return value of the block
    def call(*args)
      instance_exec(*normalize_method_args(block, args), &block)
    end

    def help
      "#{command_options[:listing].to_s.ljust(18)} #{description}"
    end
  end
end