]> git.openstreetmap.org Git - rails.git/blob - vendor/gems/rspec-1.1.2/lib/spec/extensions/class.rb
Show whether a trace is public or private in the trace list, so that a user can easil...
[rails.git] / vendor / gems / rspec-1.1.2 / lib / spec / extensions / class.rb
1 class Class
2   # Creates a new subclass of self, with a name "under" our own name.
3   # Example:
4   #
5   #   x = Foo::Bar.subclass('Zap'){}
6   #   x.name # => Foo::Bar::Zap_1
7   #   x.superclass.name # => Foo::Bar
8   def subclass(base_name, &body)
9     klass = Class.new(self)
10     class_name = "#{base_name}_#{class_count!}"
11     instance_eval do
12       const_set(class_name, klass)
13     end
14     klass.instance_eval(&body)
15     klass
16   end
17
18   private
19   def class_count!
20     @class_count ||= 0
21     @class_count += 1
22     @class_count
23   end
24 end