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



156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
# File 'lib/nrepl-lazuli/server.rb', line 156

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



173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
# File 'lib/nrepl-lazuli/server.rb', line 173

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