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



66
67
68
69
70
71
72
# File 'lib/syntax_suggest/core_ext.rb', line 66

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



74
75
76
77
78
79
80
# File 'lib/syntax_suggest/core_ext.rb', line 74

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



82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/syntax_suggest/core_ext.rb', line 82

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



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

alias_method :syntax_suggest_original_load, :load

.syntax_suggest_original_requireObject



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

alias_method :syntax_suggest_original_require, :require

.syntax_suggest_original_require_relativeObject



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

alias_method :syntax_suggest_original_require_relative, :require_relative