Skip to content

Commit 87fb01a

Browse files
committedOct 30, 2013
Split Method into opal/method.rb
1 parent 33d698c commit 87fb01a

File tree

3 files changed

+59
-59
lines changed

3 files changed

+59
-59
lines changed
 

‎corelib/method.rb

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
class Method
2+
attr_reader :owner, :receiver, :name
3+
4+
def initialize(receiver, method, name)
5+
@receiver = receiver
6+
@owner = receiver.class
7+
@name = name
8+
@method = method
9+
end
10+
11+
def arity
12+
@method.arity
13+
end
14+
15+
def call(*args, &block)
16+
%x{
17+
#@method._p = block;
18+
19+
return #@method.apply(#@object, args);
20+
}
21+
end
22+
23+
alias [] call
24+
25+
def unbind
26+
UnboundMethod.new(@owner, @method, @name)
27+
end
28+
29+
def to_proc
30+
@method
31+
end
32+
33+
def inspect
34+
"#<Method: #{@obj.class.name}##@name}>"
35+
end
36+
end
37+
38+
class UnboundMethod
39+
attr_reader :owner, :name
40+
41+
def initialize(owner, method, name)
42+
@owner = owner
43+
@method = method
44+
@name = name
45+
end
46+
47+
def arity
48+
@method.arity
49+
end
50+
51+
def bind(object)
52+
Method.new(object, @method, @name)
53+
end
54+
55+
def inspect
56+
"#<UnboundMethod: #{@owner.name}##@name>"
57+
end
58+
end

‎corelib/opal.rb

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
require 'encoding'
1818
require 'numeric'
1919
require 'proc'
20+
require 'method'
2021
require 'range'
2122
require 'time'
2223
require 'struct'

‎corelib/proc.rb

-59
Original file line numberDiff line numberDiff line change
@@ -54,62 +54,3 @@ def to_n
5454
self
5555
end
5656
end
57-
58-
class Method
59-
attr_reader :owner, :receiver, :name
60-
61-
def initialize(receiver, method, name)
62-
@receiver = receiver
63-
@owner = receiver.class
64-
@name = name
65-
@method = method
66-
end
67-
68-
def arity
69-
@method.arity
70-
end
71-
72-
def call(*args, &block)
73-
%x{
74-
#@method._p = block;
75-
76-
return #@method.apply(#@object, args);
77-
}
78-
end
79-
80-
alias [] call
81-
82-
def unbind
83-
UnboundMethod.new(@owner, @method, @name)
84-
end
85-
86-
def to_proc
87-
@method
88-
end
89-
90-
def inspect
91-
"#<Method: #{@obj.class.name}##@name}>"
92-
end
93-
end
94-
95-
class UnboundMethod
96-
attr_reader :owner, :name
97-
98-
def initialize(owner, method, name)
99-
@owner = owner
100-
@method = method
101-
@name = name
102-
end
103-
104-
def arity
105-
@method.arity
106-
end
107-
108-
def bind(object)
109-
Method.new(object, @method, @name)
110-
end
111-
112-
def inspect
113-
"#<UnboundMethod: #{@owner.name}##@name>"
114-
end
115-
end

0 commit comments

Comments
 (0)
Please sign in to comment.