mirror of https://gitee.com/bigwinds/arangodb
77 lines
1.2 KiB
Ruby
77 lines
1.2 KiB
Ruby
assert('super', '11.3.4') do
|
|
assert_raise NoMethodError do
|
|
super
|
|
end
|
|
|
|
class SuperFoo
|
|
def foo
|
|
true
|
|
end
|
|
def bar(*a)
|
|
a
|
|
end
|
|
end
|
|
class SuperBar < SuperFoo
|
|
def foo
|
|
super
|
|
end
|
|
def bar(*a)
|
|
super(*a)
|
|
end
|
|
end
|
|
bar = SuperBar.new
|
|
|
|
assert_true bar.foo
|
|
assert_equal [1,2,3], bar.bar(1,2,3)
|
|
end
|
|
|
|
assert('yield', '11.3.5') do
|
|
assert_raise LocalJumpError do
|
|
yield
|
|
end
|
|
end
|
|
|
|
assert('Abbreviated variable assignment', '11.4.2.3.2') do
|
|
a ||= 1
|
|
b &&= 1
|
|
c = 1
|
|
c += 2
|
|
|
|
assert_equal 1, a
|
|
assert_nil b
|
|
assert_equal 3, c
|
|
end
|
|
|
|
assert('Nested const reference') do
|
|
module Syntax4Const
|
|
CONST1 = "hello world"
|
|
class Const2
|
|
def const1
|
|
CONST1
|
|
end
|
|
end
|
|
end
|
|
assert_equal "hello world", Syntax4Const::CONST1
|
|
assert_equal "hello world", Syntax4Const::Const2.new.const1
|
|
end
|
|
|
|
assert('Abbreviated variable assignment as returns') do
|
|
module Syntax4AbbrVarAsgnAsReturns
|
|
class A
|
|
def b
|
|
@c ||= 1
|
|
end
|
|
end
|
|
end
|
|
assert_equal 1, Syntax4AbbrVarAsgnAsReturns::A.new.b
|
|
end
|
|
|
|
assert('Splat and mass assignment') do
|
|
*a = *[1,2,3]
|
|
b, *c = *[7,8,9]
|
|
|
|
assert_equal [1,2,3], a
|
|
assert_equal 7, b
|
|
assert_equal [8,9], c
|
|
end
|