mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
e6378cdcd8
[Feature #11297] [Feature #16123]
141 lines
3 KiB
Ruby
141 lines
3 KiB
Ruby
module LangSendSpecs
|
|
module_function
|
|
|
|
def fooM0; 100 end
|
|
def fooM1(a); [a]; end
|
|
def fooM2(a,b); [a,b]; end
|
|
def fooM3(a,b,c); [a,b,c]; end
|
|
def fooM4(a,b,c,d); [a,b,c,d]; end
|
|
def fooM5(a,b,c,d,e); [a,b,c,d,e]; end
|
|
def fooM0O1(a=1); [a]; end
|
|
def fooM1O1(a,b=1); [a,b]; end
|
|
def fooM2O1(a,b,c=1); [a,b,c]; end
|
|
def fooM3O1(a,b,c,d=1); [a,b,c,d]; end
|
|
def fooM4O1(a,b,c,d,e=1); [a,b,c,d,e]; end
|
|
def fooM0O2(a=1,b=2); [a,b]; end
|
|
def fooM0R(*r); r; end
|
|
def fooM1R(a, *r); [a, r]; end
|
|
def fooM0O1R(a=1, *r); [a, r]; end
|
|
def fooM1O1R(a, b=1, *r); [a, b, r]; end
|
|
|
|
def one(a); a; end
|
|
def oneb(a,&b); [a,yield(b)]; end
|
|
def twob(a,b,&c); [a,b,yield(c)]; end
|
|
def makeproc(&b) b end
|
|
|
|
def yield_now; yield; end
|
|
|
|
def double(x); x * 2 end
|
|
def weird_parens
|
|
# means double((5).to_s)
|
|
# NOT (double(5)).to_s
|
|
double (5).to_s
|
|
end
|
|
|
|
def rest_len(*a); a.size; end
|
|
|
|
def self.twos(a,b,*c)
|
|
[c.size, c.last]
|
|
end
|
|
|
|
class PrivateSetter
|
|
attr_reader :foo
|
|
attr_writer :foo
|
|
private :foo=
|
|
|
|
def call_self_foo_equals(value)
|
|
self.foo = value
|
|
end
|
|
|
|
def call_self_foo_equals_masgn(value)
|
|
a, self.foo = 1, value
|
|
end
|
|
end
|
|
|
|
class PrivateGetter
|
|
attr_accessor :foo
|
|
private :foo
|
|
private :foo=
|
|
|
|
def call_self_foo
|
|
self.foo
|
|
end
|
|
|
|
def call_self_foo_or_equals(value)
|
|
self.foo ||= 6
|
|
end
|
|
end
|
|
|
|
class AttrSet
|
|
attr_reader :result
|
|
def []=(a, b, c, d); @result = [a,b,c,d]; end
|
|
end
|
|
|
|
class ToProc
|
|
def initialize(val)
|
|
@val = val
|
|
end
|
|
|
|
def to_proc
|
|
Proc.new { @val }
|
|
end
|
|
end
|
|
|
|
class ToAry
|
|
def initialize(obj)
|
|
@obj = obj
|
|
end
|
|
|
|
def to_ary
|
|
@obj
|
|
end
|
|
end
|
|
|
|
class MethodMissing
|
|
def initialize
|
|
@message = nil
|
|
@args = nil
|
|
end
|
|
|
|
attr_reader :message, :args
|
|
|
|
def method_missing(m, *a)
|
|
@message = m
|
|
@args = a
|
|
end
|
|
end
|
|
|
|
class Attr19Set
|
|
attr_reader :result
|
|
def []=(*args); @result = args; end
|
|
end
|
|
|
|
module_function
|
|
|
|
def fooR(*r); r; end
|
|
def fooM0RQ1(*r, q); [r, q]; end
|
|
def fooM0RQ2(*r, s, q); [r, s, q]; end
|
|
def fooM1RQ1(a, *r, q); [a, r, q]; end
|
|
def fooM1O1RQ1(a, b=9, *r, q); [a, b, r, q]; end
|
|
def fooM1O1RQ2(a, b=9, *r, q, t); [a, b, r, q, t]; end
|
|
|
|
def fooO1Q1(a=1, b); [a,b]; end
|
|
def fooM1O1Q1(a,b=2,c); [a,b,c]; end
|
|
def fooM2O1Q1(a,b,c=3,d); [a,b,c,d]; end
|
|
def fooM2O2Q1(a,b,c=3,d=4,e); [a,b,c,d,e]; end
|
|
def fooO4Q1(a=1,b=2,c=3,d=4,e); [a,b,c,d,e]; end
|
|
def fooO4Q2(a=1,b=2,c=3,d=4,e,f); [a,b,c,d,e,f]; end
|
|
|
|
def destructure2((a,b)); a+b; end
|
|
def destructure2b((a,b)); [a,b]; end
|
|
def destructure4r((a,b,*c,d,e)); [a,b,c,d,e]; end
|
|
def destructure4o(a=1,(b,c),d,&e); [a,b,c,d]; end
|
|
def destructure5o(a=1, f=2, (b,c),d,&e); [a,f,b,c,d]; end
|
|
def destructure7o(a=1, f=2, (b,c),(d,e), &g); [a,f,b,c,d,e]; end
|
|
def destructure7b(a=1, f=2, (b,c),(d,e), &g); g.call([a,f,b,c,d,e]); end
|
|
def destructure4os(a=1,(b,*c)); [a,b,c]; end
|
|
end
|
|
|
|
def lang_send_rest_len(*a)
|
|
a.size
|
|
end
|