Sha256: 658c34e4fb75d9020a8e0d7e1f9b4f47f0b9c5ba6343220fb103977f35e21da8

Contents?: true

Size: 666 Bytes

Versions: 6

Compression:

Stored size: 666 Bytes

Contents

class Object
  def context(description, options = {}, &block)
    superclass = options[:extend] || Screw::Unit::TestCase
    test_case_class = Class.new(superclass, &block)
    test_case_class.test_case_description = description
    Object.send(:const_set, unique_test_case_name(description.sanitize.camelize), test_case_class)
  end
  
  def unique_test_case_name(name, n=1)
    candidate_name = (n > 1 ? "#{name}#{n}" : name).to_sym
    if Object.const_defined?(candidate_name)
      unique_test_case_name(name, n + 1)
    else
      candidate_name
    end
  end
  
  alias :describe :context
end

class String
  def sanitize
    self.gsub(/[^\w]+/, "_")
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
treetop-1.1.0 test/screw/unit/sugar.rb
treetop-1.0.1 test/screw/unit/sugar.rb
treetop-1.0.2 test/screw/unit/sugar.rb
treetop-1.0.0 test/screw/unit/sugar.rb
treetop-1.1.1 test/screw/unit/sugar.rb
treetop-1.1.2 test/screw/unit/sugar.rb