methodfinder 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.markdown +14 -5
- data/lib/methodfinder.rb +3 -3
- metadata +2 -2
data/README.markdown
CHANGED
@@ -1,9 +1,18 @@
|
|
1
1
|
Description
|
2
2
|
---
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
This project was inspired by Smalltalk's Method Finder.
|
5
|
+
|
6
|
+
Provided with a receiver, a desired result and possibly some
|
7
|
+
arguments, `MethodFinder.find` will list all methods that produce the
|
8
|
+
given result when called on the receiver with the provided arguments.
|
9
|
+
|
10
|
+
This gem also adds `Object#find_method`, which besides offering an
|
11
|
+
alternate interface to pretty much the same functionality, also allows
|
12
|
+
you to test for state other than the return value of the method.
|
13
|
+
|
14
|
+
All of this probably sounds more complicated than it really is, just
|
15
|
+
look at the examples below.
|
7
16
|
|
8
17
|
Usage
|
9
18
|
---
|
@@ -27,8 +36,8 @@ by Ryan Bates, this gem now also provides an alternative interface:
|
|
27
36
|
=> [:%, :<=>, :>>, :[], :gcd, :modulo, :remainder]
|
28
37
|
|
29
38
|
Inside `find_method`'s block, the receiver is available as block
|
30
|
-
argument the special method `unknown` is used as a placeholder for
|
31
|
-
desired method.
|
39
|
+
argument and the special method `unknown` is used as a placeholder for
|
40
|
+
the desired method.
|
32
41
|
|
33
42
|
Warning
|
34
43
|
---
|
data/lib/methodfinder.rb
CHANGED
@@ -2,11 +2,11 @@ require 'stringio'
|
|
2
2
|
|
3
3
|
class Object
|
4
4
|
def find_method(*args, &block)
|
5
|
-
self.methods.sort.map(&:intern).
|
5
|
+
self.methods.sort.map(&:intern).select do |met|
|
6
6
|
self.class.class_eval %{ alias :unknown #{met} }
|
7
7
|
obj = self.dup rescue self
|
8
|
-
|
9
|
-
end
|
8
|
+
yield obj rescue nil
|
9
|
+
end
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: methodfinder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.1.
|
5
|
+
version: 1.1.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Michael Kohl
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-04-05 00:00:00 +02:00
|
14
14
|
default_executable:
|
15
15
|
dependencies: []
|
16
16
|
|