3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/tins/method_description.rb', line 3
def description
result = ''
if owner <= Module
result << receiver.to_s << '.'
else
result << owner.name.to_s << '#'
end
result << name.to_s << '('
if respond_to?(:parameters)
generated_name = 'x0'
result << parameters.map { |p_type, p_name|
p_name ||= generated_name.succ!
case p_type
when :block
"&#{p_name}"
when :rest
"*#{p_name}"
when :keyrest
"**#{p_name}"
when :req
p_name
when :opt
"#{p_name}="
when :key
"#{p_name}:"
else
[ p_name, p_type ] * ':'
end
} * ','
else
result << arity.to_s
end
result << ')'
end
|