[rubygems/rubygems] Use a constant empty tar header to avoid extra allocations
[ruby.git] / spec / ruby / fixtures / class.rb
blob98cb6c82a2b351dc26f4fb1e0834ca9b31ef4037
1 module ClassSpecs
3   def self.sclass_with_block
4     eval <<-RUBY
5     class << self
6       yield
7     end
8     RUBY
9   end
11   def self.sclass_with_return
12     class << self
13       return :inner
14     end
15     return :outer
16   end
18   class A; end
20   def self.string_class_variables(obj)
21     obj.class_variables.map { |x| x.to_s }
22   end
24   def self.string_instance_variables(obj)
25     obj.instance_variables.map { |x| x.to_s }
26   end
28   class B
29     @@cvar = :cvar
30     @ivar = :ivar
32   end
34   class C
35     def self.make_class_variable
36       @@cvar = :cvar
37     end
39     def self.make_class_instance_variable
40       @civ = :civ
41     end
42   end
44   class D
45     def make_class_variable
46       @@cvar = :cvar
47     end
48   end
50   class E
51     def self.cmeth() :cmeth end
52     def meth() :meth end
54     class << self
55       def smeth() :smeth end
56     end
58     CONSTANT = :constant!
59   end
61   class F; end
62   class F
63     def meth() :meth end
64   end
65   class F
66     def another() :another end
67   end
69   class G
70     def override() :nothing end
71     def override() :override end
72   end
74   class Container
75     class A; end
76     class B; end
77   end
79   O = Object.new
80   class << O
81     def smeth
82       :smeth
83     end
84   end
86   class H
87     def self.inherited(sub)
88       track_inherited << sub
89     end
91     def self.track_inherited
92       @inherited_modules ||= []
93     end
94   end
96   class K < H; end
98   class I
99     class J < self
100     end
101   end
103   class K
104     def example_instance_method
105     end
106     def self.example_class_method
107     end
108   end
110   class L; end
112   class M < L; end
114   # Can't use a method here because of class definition in method body error
115   ANON_CLASS_FOR_NEW = -> do
116     Class.new do
117       class NamedInModule
118       end
120       def self.get_class_name
121         NamedInModule.name
122       end
123     end
124   end
126   DEFINE_CLASS = -> do
127     class ::A; end
128   end
131 class Class
132   def example_instance_method_of_class; end
133   def self.example_class_method_of_class; end
135 class << Class
136   def example_instance_method_of_singleton_class; end
137   def self.example_class_method_of_singleton_class; end
139 class Object
140   def example_instance_method_of_object; end
141   def self.example_class_method_of_object; end