Sha256: 6a1bdfdef875c34179d147b02425846c3aae1e50edc6dd15dd1d9d1a2b8b20a4
Contents?: true
Size: 905 Bytes
Versions: 2
Compression:
Stored size: 905 Bytes
Contents
class MissingSourceFile < LoadError attr_reader :path def initialize(message, path) super(message) @path = path end def is_missing?(path) path.gsub(/\.rb$/, '') == self.path.gsub(/\.rb$/, '') end def self.from_message(message) REGEXPS.each do |regexp, capture| match = regexp.match(message) return MissingSourceFile.new(message, match[capture]) unless match.nil? end nil end REGEXPS = [ [/^no such file to load -- (.+)$/i, 1], [/^Missing \w+ (file\s*)?([^\s]+.rb)$/i, 2], [/^Missing API definition file in (.+)$/i, 1] ] end module ActiveSupport module CoreExtensions module LoadErrorExtensions module LoadErrorClassMethods def new(*args) (self == LoadError && MissingSourceFile.from_message(args.first)) || super end end ::LoadError.extend(LoadErrorClassMethods) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
activesupport-1.0.3 | lib/active_support/core_ext/load_error.rb |
activesupport-1.0.4 | lib/active_support/core_ext/load_error.rb |