Module: Where
- Defined in:
- lib/where_is.rb,
lib/where_is/version.rb
Constant Summary collapse
- VERSION =
'0.3.2'.freeze
Class Method Summary collapse
- .are(klass, method = nil) ⇒ Object
- .are_instance_methods(klass, method_name) ⇒ Object
- .are_methods(klass, method_name) ⇒ Object
- .is(klass, method = nil) ⇒ Object
- .is_class(klass) ⇒ Object
- .is_class_primarily(klass) ⇒ Object
- .is_instance_method(klass, method_name) ⇒ Object
- .is_method(klass, method_name) ⇒ Object
- .is_proc(proc) ⇒ Object
Class Method Details
.are(klass, method = nil) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/where_is.rb', line 9 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) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/where_is.rb', line 45 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) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/where_is.rb', line 33 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) ⇒ Object
5 6 7 |
# File 'lib/where_is.rb', line 5 def is(klass, method = nil) are(klass, method)[0] end |
.is_class(klass) ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/where_is.rb', line 61 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) ⇒ Object
57 58 59 |
# File 'lib/where_is.rb', line 57 def is_class_primarily(klass) is_class(klass)[0] end |
.is_instance_method(klass, method_name) ⇒ Object
29 30 31 |
# File 'lib/where_is.rb', line 29 def is_instance_method(klass, method_name) are_instance_methods(klass, method_name)[0] end |
.is_method(klass, method_name) ⇒ Object
25 26 27 |
# File 'lib/where_is.rb', line 25 def is_method(klass, method_name) are_methods(klass, method_name)[0] end |
.is_proc(proc) ⇒ Object
21 22 23 |
# File 'lib/where_is.rb', line 21 def is_proc(proc) source_location(proc) end |