Sha256: 2a7b3f58b03e922558b5063939ed9afdfb3d0b89d433da5d5701fd8a8522854b
Contents?: true
Size: 1020 Bytes
Versions: 4
Compression:
Stored size: 1020 Bytes
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' module Kernel # Factory method for Test::Unit::TestCase subclasses def Feature(name, opts = {}, &block) test_class = Class.new(opts[: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 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
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
coulda-0.5.3 | lib/coulda.rb |
coulda-0.5.2 | lib/coulda.rb |
coulda-0.5.1 | lib/coulda.rb |
coulda-0.5.0 | lib/coulda.rb |