class Rohbau::Minitest::Exclude::SpecNuker

Public Class Methods

new(description_name, description_caller) click to toggle source
# File lib/rohbau/minitest/exclude.rb, line 5
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

Public Instance Methods

nuke!(it_desc) click to toggle source
# File lib/rohbau/minitest/exclude.rb, line 12
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 Instance Methods

description_class() click to toggle source
# File lib/rohbau/minitest/exclude.rb, line 36
def description_class
  @description_classes.detect do |description_class|
    description_class.name == @description_name
  end
end
find_it_method(it_desc) click to toggle source
# File lib/rohbau/minitest/exclude.rb, line 30
def find_it_method(it_desc)
  description_class.instance_methods.detect do |instance_method|
    instance_method =~ %r{test_[0-9]+_#{it_desc}}
  end
end
find_spec_class(description_class) click to toggle source
# File lib/rohbau/minitest/exclude.rb, line 26
def find_spec_class(description_class)
  description_class.superclass
end