Module: Kernel

Defined in:
lib/syntax_suggest/core_ext.rb

Overview

– Monkey patch kernel to ensure that all ‘require` calls call the same method ++

Class Method Summary collapse

Class Method Details

.load(file, wrap = false) ⇒ Object



84
85
86
87
88
89
90
# File 'lib/syntax_suggest/core_ext.rb', line 84

def load(file, wrap = false)
  syntax_suggest_original_load(file)
rescue SyntaxError => e
  require "syntax_suggest/api" unless defined?(SyntaxSuggest::DEFAULT_VALUE)

  SyntaxSuggest.handle_error(e)
end

.require(file) ⇒ Object



92
93
94
95
96
97
98
# File 'lib/syntax_suggest/core_ext.rb', line 92

def require(file)
  syntax_suggest_original_require(file)
rescue SyntaxError => e
  require "syntax_suggest/api" unless defined?(SyntaxSuggest::DEFAULT_VALUE)

  SyntaxSuggest.handle_error(e)
end

.require_relative(file) ⇒ Object



100
101
102
103
104
105
106
107
108
109
110
111
112
# File 'lib/syntax_suggest/core_ext.rb', line 100

def require_relative(file)
  if Pathname.new(file).absolute?
    syntax_suggest_original_require file
  else
    relative_from = caller_locations(1..1).first
    relative_from_path = relative_from.absolute_path || relative_from.path
    syntax_suggest_original_require File.expand_path("../#{file}", relative_from_path)
  end
rescue SyntaxError => e
  require "syntax_suggest/api" unless defined?(SyntaxSuggest::DEFAULT_VALUE)

  SyntaxSuggest.handle_error(e)
end

.syntax_suggest_original_loadObject



82
# File 'lib/syntax_suggest/core_ext.rb', line 82

alias_method :syntax_suggest_original_load, :load

.syntax_suggest_original_requireObject



80
# File 'lib/syntax_suggest/core_ext.rb', line 80

alias_method :syntax_suggest_original_require, :require

.syntax_suggest_original_require_relativeObject



81
# File 'lib/syntax_suggest/core_ext.rb', line 81

alias_method :syntax_suggest_original_require_relative, :require_relative