Sha256: 1dfcfe8593e948afee2a4c5bc0acd5d7ccf0b5eae13e55b09222c2631d1062a9

Contents?: true

Size: 593 Bytes

Versions: 42

Compression:

Stored size: 593 Bytes

Contents

# Taken from rspec with high respect. 
# Mainly unused, for now
class Class
  # 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
  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

  private
  def class_count!
    @class_count ||= 0
    @class_count += 1
    @class_count
  end
end

Version data entries

42 entries across 42 versions & 3 rubygems

Version Path
auser-poolparty-0.2.71 lib/poolparty/core/class.rb
auser-poolparty-0.2.72 lib/poolparty/core/class.rb
auser-poolparty-0.2.74 lib/poolparty/core/class.rb
auser-poolparty-0.2.76 lib/poolparty/core/class.rb
auser-poolparty-0.2.77 lib/poolparty/core/class.rb
auser-poolparty-0.2.78 lib/poolparty/core/class.rb
auser-poolparty-0.2.79 lib/poolparty/core/class.rb
auser-poolparty-0.2.80 lib/poolparty/core/class.rb
auser-poolparty-0.2.81 lib/poolparty/core/class.rb
auser-poolparty-0.2.84 lib/poolparty/core/class.rb
auser-poolparty-0.2.85 lib/poolparty/core/class.rb
auser-poolparty-0.2.88 lib/poolparty/core/class.rb
auser-poolparty-0.2.89 lib/poolparty/core/class.rb
auser-poolparty-0.2.90 lib/poolparty/core/class.rb
auser-poolparty-0.2.91 lib/poolparty/core/class.rb
auser-poolparty-0.2.92 lib/poolparty/core/class.rb
auser-poolparty-0.2.93 lib/poolparty/core/class.rb
auser-poolparty-0.2.94 lib/poolparty/core/class.rb
auser-poolparty-1.0.0 lib/poolparty/core/class.rb
auser-poolparty-1.1.1 lib/poolparty/core/class.rb