Sha256: 18fb94377d151e631f1635d22e37b67b0ceb8c5ce3f5ca409a37d8cade959393
Contents?: true
Size: 904 Bytes
Versions: 2
Compression:
Stored size: 904 Bytes
Contents
# Proc extension to get more location info out of a proc require 'lucid/platform' class Proc #:nodoc: PROC_PATTERN = /[\d\w]+@(.+):(\d+).*>/ PWD = Dir.pwd def to_comment_line "# #{file_colon_line}" end def backtrace_line(name) "#{file_colon_line}:in `#{name}'" end if Proc.new{}.to_s =~ PROC_PATTERN def file_colon_line path, line = *to_s.match(PROC_PATTERN)[1..2] path = File.expand_path(path) pwd = File.expand_path(PWD) pwd.force_encoding(path.encoding) if path.index(pwd) path = path[pwd.length+1..-1] elsif path =~ /.*\/gems\/(.*\.rb)$/ path = $1 end "#{path}:#{line}" end else # This Ruby implementation doesn't implement Proc#to_s correctly STDERR.puts '*** THIS RUBY IMPLEMENTATION DOES NOT REPORT FILE AND LINE FOR PROCS ***' def file_colon_line 'UNKNOWN:-1' end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
lucid-0.3.3 | lib/lucid/core_ext/proc.rb |
lucid-0.3.0 | lib/lucid/core_ext/proc.rb |