Sha256: 1338d9170e8a7e9f9ffb1fa46dee6a55dc4f051e04a7270f8f72e782b0b7bbd6
Contents?: true
Size: 1.44 KB
Versions: 1
Compression:
Stored size: 1.44 KB
Contents
module Rohbau module Minitest module Exclude class SpecNuker def initialize(description_name, description_caller) spec_class = find_spec_class(description_caller) @description_caller = description_caller @description_name = description_name @description_classes = spec_class.children end def nuke!(it_desc) it_method_name = find_it_method(it_desc) if it_method_name.nil? inspected_method = "\"#{@description_caller}\"##{it_desc.inspect}" msg = "Method #{inspected_method} is not defined" return warn(msg) end description_class.send :undef_method, it_method_name end private def find_spec_class(description_class) description_class.superclass end def find_it_method(it_desc) description_class.instance_methods.detect do |instance_method| instance_method =~ %r{test_[0-9]+_#{it_desc}} end end def description_class @description_classes.detect do |description_class| description_class.name == @description_name end end end end end end module MiniTest::Spec::DSL # only single nesting in one describe block is supported # for now def exclude(it_desc, reason = "") Rohbau::Minitest::Exclude::SpecNuker.new(self.name, self).nuke!(it_desc) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rohbau-0.1.0 | lib/rohbau/minitest/exclude.rb |