Module: NREPL::DefinitionFixer

Defined in:
lib/nrepl-lazuli/server.rb

Constant Summary collapse

@@definitions =
{}

Instance Method Summary collapse

Instance Method Details

#__lazuli_source_location(method) ⇒ Object



122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# File 'lib/nrepl-lazuli/server.rb', line 122

def __lazuli_source_location(method)
  final_loc = nil
  loc = ancestors.each do |klass|
    loc = (klass.instance_variable_get(:@__lazuli_methods) || {})[method]
    if loc
      final_loc = loc
      break
    end
  end

  if(final_loc && File.exist?(final_loc[0]))
    final_loc
  else
    instance_method(method).source_location
  end
end

#method_added(method_name) ⇒ Object



139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
# File 'lib/nrepl-lazuli/server.rb', line 139

def method_added(method_name)
  return if method_name == :__lazuli_source_location
  pwd = Dir.pwd
  path = caller.select { |x| x.start_with?(pwd) }[0]
  if path
    (file, row) = path.split(/:/)

    known = instance_variable_get(:@__lazuli_methods)
    if !known
      known = {}
      instance_variable_set(:@__lazuli_methods, known)
    end
    known[method_name] = [file, row.to_i]
  end
end