Sha256: 9372334fc40007cbd6c4a7a13261ac3922bd5ac3ecf0fa9621aca0c1315691b0

Contents?: true

Size: 1.37 KB

Versions: 8

Compression:

Stored size: 1.37 KB

Contents

require 'byebug/printers/base'

module Byebug
  module Printers
    class Plain < Base
      include Columnize

      def print(path, args = {})
        message = translate(locate(path), args)
        tail = parts(path).include?('confirmations') ? ' (y/n) ' : "\n"
        message << tail
      end

      def print_collection(path, collection, &block)
        modifier = get_modifier(path)
        lines = array_of_args(collection, &block).map do |args|
          print(path, args)
        end

        if modifier == 'c'
          columnize(lines.map { |l| l.gsub(/\n$/, '') }, Setting[:width])
        else
          lines.join('')
        end
      end

      def print_variables(variables)
        print_collection('variable.variable', variables) do |(key, value), _|
          value = value.nil? ? 'nil' : value.to_s
          if "#{key} = #{value}".size > Setting[:width]
            key_size = "#{key} = ".size
            value = value[0..Setting[:width] - key_size - 4] + '...'
          end

          { key: key, value: value }
        end
      end

      private

      def get_modifier(path)
        modifier_regexp = /\|(\w+)$/
        modifier_match = locate(path).match(modifier_regexp)
        modifier_match && modifier_match[1]
      end

      def contents_files
        [File.expand_path(File.join('..', 'texts', 'plain.yml'), __FILE__)] +
          super
      end
    end
  end
end

Version data entries

8 entries across 7 versions & 2 rubygems

Version Path
honeybadger-2.4.0 vendor/gems/ruby/2.1.0/gems/byebug-4.0.5/lib/byebug/printers/plain.rb
honeybadger-2.4.0 vendor/gems/ruby/2.2.0/gems/byebug-4.0.5/lib/byebug/printers/plain.rb
byebug-4.0.5 lib/byebug/printers/plain.rb
byebug-4.0.4 lib/byebug/printers/plain.rb
byebug-4.0.3 lib/byebug/printers/plain.rb
byebug-4.0.2 lib/byebug/printers/plain.rb
byebug-4.0.1 lib/byebug/printers/plain.rb
byebug-4.0.0 lib/byebug/printers/plain.rb