72 lines
2.2 KiB
Plaintext
72 lines
2.2 KiB
Plaintext
0 400 0 def dbg_args(a, b=1, c:, d: 6, &block) = puts("Args passed: #{[a, b, c, d, block.call]}")
|
|
0 400 0 dbg_args(0, c: 5) { 7 }
|
|
1 400 0
|
|
2 400 0 + class A
|
|
0 401 0 | def attr = @attr
|
|
2 401 0 + def attr=(value)
|
|
0 402 0 | @attr = value
|
|
0 402 0 | end
|
|
0 401 0 | def attr? = !!@attr
|
|
0 401 0 | def attr! = @attr = true
|
|
0 401 0 | # unary operator
|
|
0 401 0 | def -@ = 1
|
|
0 401 0 | def +@ = 1
|
|
0 401 0 | def ! = 1
|
|
0 401 0 | def !@ = 1
|
|
0 401 0 | # binary operator
|
|
0 401 0 | def +(value) = 1 + value
|
|
0 401 0 | def -(value) = 1 - value
|
|
0 401 0 | def *(value) = 1 * value
|
|
0 401 0 | def **(value) = 1 ** value
|
|
0 401 0 | def /(value) = 1 / value
|
|
0 401 0 | def %(value) = 1 % value
|
|
0 401 0 | def &(value) = 1 & value
|
|
0 401 0 | def ^(value) = 1 ^ value
|
|
0 401 0 | def >>(value) = 1 >> value
|
|
0 401 0 | def <<(value) = 1 << value
|
|
0 401 0 | def ==(other) = true
|
|
0 401 0 | def !=(other) = true
|
|
0 401 0 | def ===(other) = true
|
|
0 401 0 | def =~(other) = true
|
|
0 401 0 | def <=>(other) = true
|
|
0 401 0 | def <(other) = true
|
|
0 401 0 | def <=(other) = true
|
|
0 401 0 | def >(other) = true
|
|
0 401 0 | def >=(other) = true
|
|
0 401 0 | # element reference and assignment
|
|
0 401 0 | def [](a, b) = puts(a + b)
|
|
2 401 0 + def []=(a, b, c)
|
|
0 402 0 | puts a + b + c
|
|
0 402 0 | end
|
|
0 401 0 | # array decomposition
|
|
0 401 0 | def dec(((a, b), c)) = puts(a + b + c)
|
|
0 401 0 | # class method
|
|
0 401 0 | def self.say(*s) = puts(s)
|
|
0 401 0 | # test short method name
|
|
0 401 0 | def a = 1
|
|
0 401 0 | def ab = 1
|
|
0 401 0 | end
|
|
1 400 0
|
|
0 400 0 # class method
|
|
2 400 0 + def String.hello
|
|
0 401 0 | "Hello, world!"
|
|
0 401 0 | end
|
|
0 400 0 # singleton method
|
|
0 400 0 greeting = "Hello"
|
|
2 400 0 + def greeting.broaden
|
|
0 401 0 | self + ", world!"
|
|
0 401 0 | end
|
|
0 400 0 # one line definition
|
|
0 400 0 def a(b, c) b; c end
|
|
0 400 0 # parentheses omitted
|
|
2 400 0 + def ab c
|
|
0 401 0 | puts c
|
|
0 401 0 | end
|
|
1 400 0
|
|
0 400 0 # Test folding of multi-line SCE_RB_STRING_QW
|
|
2 400 0 + puts %W(
|
|
0 401 0 | a
|
|
0 401 0 | b
|
|
0 401 0 | c
|
|
0 401 0 | )
|
|
0 400 0 |