Class: Class

Inherits:
Object show all
Defined in:
lib/gems/rspec-1.1.11/lib/spec/extensions/class.rb

Instance Method Summary collapse

Instance Method Details

#subclass(base_name, &body) ⇒ Object

Creates a new subclass of self, with a name “under” our own name. Example:

x = Foo::Bar.subclass('Zap'){}
x.name # => Foo::Bar::Zap_1
x.superclass.name # => Foo::Bar


8
9
10
11
12
13
14
15
16
# File 'lib/gems/rspec-1.1.11/lib/spec/extensions/class.rb', line 8

def subclass(base_name, &body)
  klass = Class.new(self)
  class_name = "#{base_name}_#{class_count!}"
  instance_eval do
    const_set(class_name, klass)
  end
  klass.instance_eval(&body)
  klass
end