blob: 98cb6c82a2b351dc26f4fb1e0834ca9b31ef4037 (
plain)
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
|