1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
|
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
|