Sha256: 682d18ca839a3b4480a6a8b170496eed59881419cecfd60c4b288794d178f64c

Contents?: true

Size: 971 Bytes

Versions: 284

Compression:

Stored size: 971 Bytes

Contents

class MissingSourceFile < LoadError #:nodoc:
  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]
  ] unless defined?(REGEXPS)
end

module ActiveSupport #:nodoc:
  module CoreExtensions #:nodoc:
    module LoadErrorExtensions #:nodoc:
      module LoadErrorClassMethods #:nodoc:
        def new(*args)
          (self == LoadError && MissingSourceFile.from_message(args.first)) || super
        end
      end
      ::LoadError.extend(LoadErrorClassMethods)
    end
  end
end

Version data entries

284 entries across 251 versions & 30 rubygems

Version Path
depengine-0.0.1 etc/isolate/jruby-1.8/gems/activesupport-2.3.8/lib/active_support/core_ext/load_error.rb
activesupport_csi-2.3.5.p7 lib/active_support/core_ext/load_error.rb
activesupport_csi-2.3.5.p6 lib/active_support/core_ext/load_error.rb
activesupport-2.3.15 lib/active_support/core_ext/load_error.rb
abiquo-etk-0.6.4 vendor/activesupport-2.3.8/lib/active_support/core_ext/load_error.rb
abiquo-etk-0.6.3 vendor/activesupport-2.3.8/lib/active_support/core_ext/load_error.rb
abiquo-etk-0.6.2 vendor/activesupport-2.3.8/lib/active_support/core_ext/load_error.rb
abiquo-etk-0.6.1 vendor/activesupport-2.3.8/lib/active_support/core_ext/load_error.rb
abiquo-etk-0.6.0 vendor/activesupport-2.3.8/lib/active_support/core_ext/load_error.rb
abiquo-etk-0.5.9 vendor/activesupport-2.3.8/lib/active_support/core_ext/load_error.rb
radiant-1.0.0 ruby-debug/ruby/1.8/gems/activesupport-2.3.14/lib/active_support/core_ext/load_error.rb
abiquo-etk-0.5.8 vendor/activesupport-2.3.8/lib/active_support/core_ext/load_error.rb
vanity-1.7.1 vendor/ruby/1.9.1/gems/activesupport-2.3.12/lib/active_support/core_ext/load_error.rb
activesupport-2.3.14 lib/active_support/core_ext/load_error.rb
kajam-1.0.3.rc2 vendor/rails/activesupport/lib/active_support/core_ext/load_error.rb
activesupport-2.3.12 lib/active_support/core_ext/load_error.rb
radiant-1.0.0.rc2 vendor/rails/activesupport/lib/active_support/core_ext/load_error.rb
radiant-1.0.0.rc1 vendor/rails/activesupport/lib/active_support/core_ext/load_error.rb
abiquo-etk-0.5.3 vendor/activesupport-2.3.8/lib/active_support/core_ext/load_error.rb
abiquo-etk-0.4.42 vendor/activesupport-2.3.8/lib/active_support/core_ext/load_error.rb