Sha256: fb9ce530ff845d12f4ce617c80d42fad9b92d92138ebe415ed8d02ca7fd02c4b

Contents?: true

Size: 699 Bytes

Versions: 4

Compression:

Stored size: 699 Bytes

Contents

case RUBY_ENGINE
when 'ruby'
  require 'did_you_mean/method_missing'

when 'jruby'
  NoMethodError.class_eval do
    def to_s
      receiver unless defined?(@receiver)
      super
    end

    def receiver
      @receiver ||= begin
        field = JRuby.reference(__message__).java_class.getDeclaredField("object")
        field.setAccessible(true)
        field.get(__message__)
      rescue
        super
      end
    end

    private

    if JRUBY_VERSION >= '9.0.0.0'
      def __message__
        JRuby.reference(self).getMessage
      end
    else
      def __message__
        error = JRuby.reference(self)
        error.java_class.getField("message").get(error)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
did_you_mean-0.9.10-java lib/did_you_mean/core_ext/no_method_error.rb
did_you_mean-0.9.10 lib/did_you_mean/core_ext/no_method_error.rb
did_you_mean-0.9.9-java lib/did_you_mean/core_ext/no_method_error.rb
did_you_mean-0.9.9 lib/did_you_mean/core_ext/no_method_error.rb