class Byebug::Printers::Base
Base printer
Constants
- SEPARATOR
Public Instance Methods
type()
click to toggle source
# File lib/byebug/printers/base.rb, line 15 def type self.class.name.split("::").last.downcase end
Private Instance Methods
array_of_args(collection) { |item, index| ... }
click to toggle source
# File lib/byebug/printers/base.rb, line 54 def array_of_args(collection, &_block) collection_with_index = collection.each.with_index collection_with_index.each_with_object([]) do |(item, index), array| args = yield item, index array << args if args end end
contents()
click to toggle source
# File lib/byebug/printers/base.rb, line 48 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 62 def contents_files [File.join(__dir__, "texts", "base.yml")] end
locate(path)
click to toggle source
# File lib/byebug/printers/base.rb, line 21 def locate(path) result = nil contents.each_value do |contents| result = parts(path).reduce(contents) do |r, part| r&.key?(part) ? r[part] : nil end break if result end raise MissedPath, "Can't find part path '#{path}'" unless result result end
parts(path)
click to toggle source
# File lib/byebug/printers/base.rb, line 44 def parts(path) path.split(SEPARATOR) end
translate(string, args = {})
click to toggle source
# File lib/byebug/printers/base.rb, line 34 def translate(string, args = {}) # they may contain #{} string interpolation string.gsub(/\|\w+$/, "").gsub(/([^#]?){([^}]*)}/) do key = Regexp.last_match[2].to_s raise MissedArgument, "Missed argument #{key} for '#{string}'" unless args.key?(key.to_sym) "#{Regexp.last_match[1]}#{args[key.to_sym]}" end end