# class Byebug::Printers::Base

### Constants

SEPARATOR

### Public Instance Methods

type() click to toggle source

    # File lib/byebug/printers/base.rb, line 11
    def type
      self.class.name.split('::').last.downcase
    end

### Private Instance Methods

array_of_args(collection, &block) click to toggle source

    # File lib/byebug/printers/base.rb, line 51
    def array_of_args(collection, &block)
      collection_with_index = collection.each.with_index
      collection_with_index.each_with_object([]) do |(item, index), array|
        args = block.call(item, index)
        array << args if args
      end
    end

contents() click to toggle source

    # File lib/byebug/printers/base.rb, line 45
    def contents
      @contents ||= contents_files.each_with_object({}) do |filename, hash|
        hash[filename] = YAML.load_file(filename) || {}
      end
    end

contents_files() click to toggle source

    # File lib/byebug/printers/base.rb, line 59
    def contents_files
      [File.expand_path(File.join('..', 'texts', 'base.yml'), __FILE__)]
    end

locate(path) click to toggle source

    # File lib/byebug/printers/base.rb, line 17
    def locate(path)
      result = nil
      contents.each do |_, contents|
        result = parts(path).reduce(contents) do |r, part|
          r && r.key?(part) ? r[part] : nil
        end
        break if result
      end
      fail MissedPath, "Can't find part path '#{path}'" unless result
      result
    end

parts(path) click to toggle source

    # File lib/byebug/printers/base.rb, line 41
    def parts(path)
      path.split(SEPARATOR)
    end

translate(string, args = {}) click to toggle source

    # File lib/byebug/printers/base.rb, line 29
    def translate(string, args = {})
      # they may contain #{} string interpolation
      string.gsub(/\|\w+$/, '').gsub(/([^#]?){([^}]*)}/) do
        key = Regexp.last_match[2].to_s
        unless args.key?(key.to_sym)
          fail MissedArgument, "Missed argument #{key} for '#{string}'"
        end

        "#{Regexp.last_match[1]}#{args[key.to_sym]}"
      end
    end