1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/spec/ruby/core/method/fixtures/classes.rb
2020-10-24 15:53:53 +02:00

216 lines
3.8 KiB
Ruby

module MethodSpecs
class SourceLocation
def self.location # This needs to be on this line
:location # for the spec to pass
end
def self.redefined
:first
end
def self.redefined
:last
end
def original
end
alias :aka :original
end
class Methods
def foo
true
end
alias bar foo
alias baz bar
def same_as_foo
true
end
def respond_to_missing? method, bool
[:handled_via_method_missing, :also_handled].include? method
end
def method_missing(method, *arguments)
if [:handled_via_method_missing, :also_handled].include? method
arguments
else
super
end
end
attr_accessor :attr
def zero; end
def one_req(a); end
def two_req(a, b); end
def one_req_named(a:); end
def zero_with_block(&blk); end
def one_req_with_block(a, &blk); end
def two_req_with_block(a, b, &blk); end
def one_opt(a=nil); end
def one_req_one_opt(a, b=nil); end
def one_req_two_opt(a, b=nil, c=nil); end
def two_req_one_opt(a, b, c=nil); end
def one_opt_named(a: nil); end
def one_opt_with_block(a=nil, &blk); end
def one_req_one_opt_with_block(a, b=nil, &blk); end
def one_req_two_opt_with_block(a, b=nil, c=nil, &blk); end
def two_req_one_opt_with_block(a, b, c=nil, &blk); end
def zero_with_splat(*a); end
def one_req_with_splat(a, *b); end
def two_req_with_splat(a, b, *c); end
def one_req_one_opt_with_splat(a, b=nil, *c); end
def two_req_one_opt_with_splat(a, b, c=nil, *d); end
def one_req_two_opt_with_splat(a, b=nil, c=nil, *d); end
def zero_with_double_splat(**a); end
def zero_with_splat_and_block(*a, &blk); end
def one_req_with_splat_and_block(a, *b, &blk); end
def two_req_with_splat_and_block(a, b, *c, &blk); end
def one_req_one_opt_with_splat_and_block(a, b=nil, *c, &blk); end
def two_req_one_opt_with_splat_and_block(a, b, c=nil, *d, &blk); end
def one_req_two_opt_with_splat_and_block(a, b=nil, c=nil, *d, &blk); end
define_method(:zero_defined_method, Proc.new {||})
define_method(:zero_with_splat_defined_method, Proc.new {|*x|})
define_method(:one_req_defined_method, Proc.new {|x|})
define_method(:two_req_defined_method, Proc.new {|x, y|})
define_method(:no_args_defined_method) {}
define_method(:two_grouped_defined_method) {|(_x1,_x2)|}
attr_reader :reader
attr_writer :writer
end
module MyMod
def bar; :bar; end
end
class MySuper
include MyMod
end
class MySub < MySuper; end
class A
def baz(a, b)
self.class
end
def overridden; end
end
class B < A
def overridden; end
end
module BetweenBAndC
def overridden; end
end
class C < B
include BetweenBAndC
def overridden; end
end
module OverrideAgain
def overridden; end
end
class D
def bar() 'done' end
end
class Eql
def same_body
1 + 1
end
alias :same_body_alias :same_body
def same_body_with_args(arg)
1 + 1
end
def different_body
1 + 2
end
def same_body_two
1 + 1
end
private
def same_body_private
1 + 1
end
end
class Eql2
def same_body
1 + 1
end
end
class ToProc
def method_called(a, b)
ScratchPad << [a, b]
end
def to_proc
method(:method_called).to_proc
end
end
class ToProcBeta
def method_called(a)
ScratchPad << a
a
end
def to_proc
method(:method_called).to_proc
end
end
class Composition
def upcase(s)
s.upcase
end
def succ(s)
s.succ
end
def pow_2(n)
n * n
end
def double(n)
n + n
end
def inc(n)
n + 1
end
def mul(n, m)
n * m
end
end
end