Sha256: 48ff21015024bf556bb897e8f4a4364c1e9d0db71cf02a38cc395336d5685c38
Contents?: true
Size: 1.37 KB
Versions: 5
Compression:
Stored size: 1.37 KB
Contents
# frozen_string_literal: true require 'puppet-debugger/input_responder_plugin' module PuppetDebugger module InputResponders class Whereami < InputResponderPlugin COMMAND_WORDS = %w[whereami].freeze SUMMARY = 'Show code surrounding the current context.' COMMAND_GROUP = :context # source_file and source_line_num instance variables must be set for this # method to show the surrounding code # @return [String] - string output of the code surrounded by the breakpoint or nil if file # or line_num do not exist def run(args = []) num_lines = parse(args.first) file = debugger.source_file line_num = debugger.source_line_num if file && line_num if file == :code source_code = Puppet[:code] code = DebuggerCode.from_string(source_code, :puppet) else code = DebuggerCode.from_file(file, :puppet) end code.with_marker(line_num).around(line_num, num_lines) .with_line_numbers.with_indentation(5).with_file_reference.to_s end end # @return [Integer] # @param num [String,Integer] number of lines # @param defalt [Integer] - default value to return if supplied is less than 5 def parse(num, default = 7) value = num.to_i value >= 5 ? value : default end end end end
Version data entries
5 entries across 5 versions & 1 rubygems