abstract_class
Abstract classes in ruby
Installation
gem install abstract_class
Usage
class ActiveRecord::Base
abstract
end
class User < ActiveRecord::Base
end
# RuntimeError: abstract class ActiveRecord::Base can't be instantiated/allocated
ActiveRecord::Base.new
ActiveRecord::Base.allocate
# instantiates/allocates like normal
User.new
User.allocate
# returns true or false
ActiveRecord::Base.abstract?
User.abstract?
Testing abstract classes
Include AbstractClass::TestHelper
in your test framework
Test::Unit::TestCase.send(:include, AbstractClass::TestHelper)
Then you can use assert_abstract_class
or assert_not_abstract_class
) in your tests
class AbstractClass
abstract
end
class NormalClass < AbstractClass
end
class AbstractClassTest < Test::Unit::TestCase
def test_should_be_abstract_class
assert_abstract_class AbstractClass
end
def test_should_not_be_abstract_classes
assert_not_abstract_classes NormalClass, Hash
end
end
Patches and pull requests
-
Fork the project.
-
Make your feature addition or bug fix.
-
Add tests for it. This is important so I don’t break it in a future version unintentionally.
-
Commit, do not mess with Rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
-
Send me a pull request. Bonus points for topic branches.