module Where

Constants

VERSION

Public Class Methods

are(klass, method = nil) click to toggle source
# File lib/where_is.rb, line 12
def are(klass, method = nil)
  if method
    begin
      Where.are_instance_methods(klass, method)
    rescue NameError
      Where.are_methods(klass, method)
    end
  else
    Where.is_class(klass)
  end
end
are_instance_methods(klass, method_name) click to toggle source
# File lib/where_is.rb, line 52
def are_instance_methods(klass, method_name)
  ensured_class = ensure_class(klass)
  methods = are_via_extractor(:instance_method, ensured_class, method_name)
  source_locations = group_and_combine_source_locations(methods)

  if source_locations.empty?
    raise NameError, "#{ensured_class} has no methods called #{method_name}"
  end

  source_locations
end
are_methods(klass, method_name) click to toggle source
# File lib/where_is.rb, line 40
def are_methods(klass, method_name)
  ensured_class = ensure_class(klass)
  methods = are_via_extractor(:method, ensured_class, method_name)
  source_locations = group_and_combine_source_locations(methods)

  if source_locations.empty?
    raise NameError, "#{ensured_class} has no methods called #{method_name}"
  end

  source_locations
end
is(klass, method = nil) click to toggle source
# File lib/where_is.rb, line 8
def is(klass, method = nil)
  are(klass, method)[0]
end
is_class(klass) click to toggle source
# File lib/where_is.rb, line 64
def is_class(klass)
  ensured_class = ensure_class(klass)
  methods = defined_methods(ensured_class)
  source_locations = group_and_combine_source_locations(methods)

  if source_locations.empty?
    raise NameError, "#{ensured_class} has no methods" if methods.empty?
    raise NameError, "#{ensured_class} only has built-in methods " \
                     "(#{methods.size} in total)"
  end

  source_locations
end
is_class_primarily(klass) click to toggle source
# File lib/where_is.rb, line 36
def is_class_primarily(klass)
  is_class(klass)[0]
end
is_instance_method(klass, method_name) click to toggle source
# File lib/where_is.rb, line 32
def is_instance_method(klass, method_name)
  are_instance_methods(klass, method_name)[0]
end
is_method(klass, method_name) click to toggle source
# File lib/where_is.rb, line 28
def is_method(klass, method_name)
  are_methods(klass, method_name)[0]
end
is_proc(proc) click to toggle source
# File lib/where_is.rb, line 24
def is_proc(proc)
  source_location(proc)
end