Sha256: 2aa0a55b2a281efc907e70c11355492f7f95bdb79ec31ee4b7927feac4c3cd93
Contents?: true
Size: 1.32 KB
Versions: 1
Compression:
Stored size: 1.32 KB
Contents
module Coulda SyntaxError = Class.new(StandardError) end require 'test/unit' require 'coulda/world' require 'coulda/feature' require 'coulda/scenario' require 'coulda/pending' require 'coulda/vendor/constantize' require 'coulda/vendor/underscore' require 'coulda/tasks' module Kernel # Factory method for Test::Unit::TestCase subclasses def Feature(name, opts = {}, &block) test_class = Class.new(opts[:testcase_class] || Coulda.default_testcase_class || Test::Unit::TestCase) Coulda::assign_class_to_const test_class, name test_class.class_eval &block if block_given? test_class.assert_presence_of_intent World.register_feature(test_class, name) test_class end end module Coulda def self.default_testcase_class=(klass) unless klass.is_a?(Class) && klass.ancestors.include?(Test::Unit::TestCase) raise Exception, "Can only provide a Test::Unit::TestCase" end @class = klass end def self.default_testcase_class @class end def assign_class_to_const(test_class, potential_const) base_name = potential_const if potential_const !~ /^[a-zA-Z]/ base_name = "a_" + base_name end titleized_underscored_name = base_name.super_custom_underscore.gsub(/\b('?[a-z])/) { $1.upcase } Object.const_set(titleized_underscored_name, test_class) end end include ::Coulda
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
coulda-0.6.1 | lib/coulda.rb |