ruby--ruby/spec/ruby/fixtures/class.rb

143 lines
2.1 KiB
Ruby

module ClassSpecs
def self.sclass_with_block
eval <<-RUBY
class << self
yield
end
RUBY
end
def self.sclass_with_return
class << self
return :inner
end
return :outer
end
class A; end
def self.string_class_variables(obj)
obj.class_variables.map { |x| x.to_s }
end
def self.string_instance_variables(obj)
obj.instance_variables.map { |x| x.to_s }
end
class B
@@cvar = :cvar
@ivar = :ivar
end
class C
def self.make_class_variable
@@cvar = :cvar
end
def self.make_class_instance_variable
@civ = :civ
end
end
class D
def make_class_variable
@@cvar = :cvar
end
end
class E
def self.cmeth() :cmeth end
def meth() :meth end
class << self
def smeth() :smeth end
end
CONSTANT = :constant!
end
class F; end
class F
def meth() :meth end
end
class F
def another() :another end
end
class G
def override() :nothing end
def override() :override end
end
class Container
class A; end
class B; end
end
O = Object.new
class << O
def smeth
:smeth
end
end
class H
def self.inherited(sub)
track_inherited << sub
end
def self.track_inherited
@inherited_modules ||= []
end
end
class K < H; end
class I
class J < self
end
end
class K
def example_instance_method
end
def self.example_class_method
end
end
class L; end
class M < L; end
# Can't use a method here because of class definition in method body error
ANON_CLASS_FOR_NEW = -> do
Class.new do
class NamedInModule
end
def self.get_class_name
NamedInModule.name
end
end
end
DEFINE_CLASS = -> do
class ::A; end
end
end
class Class
def example_instance_method_of_class; end
def self.example_class_method_of_class; end
end
class << Class
def example_instance_method_of_singleton_class; end
def self.example_class_method_of_singleton_class; end
end
class Object
def example_instance_method_of_object; end
def self.example_class_method_of_object; end
end