module Minitest::Tagz::Patcher
Public Class Methods
patch(state_machine)
click to toggle source
# File lib/minitest/tagz/patcher.rb, line 6 def patch(state_machine) patch_minitest_test(state_machine) patch_minitest_spec(state_machine) if spec_included? end
unpatch()
click to toggle source
# File lib/minitest/tagz/patcher.rb, line 11 def unpatch unpatch_minitest_test unpatch_minitest_spec if spec_included? end
Private Class Methods
patch_minitest_spec(state_machine)
click to toggle source
# File lib/minitest/tagz/patcher.rb, line 52 def patch_minitest_spec(state_machine) Kernel.module_eval do alias :old_describe :describe define_method(:describe) do |*args, &block| state_machine.handle_initial_test_definition! do old_describe(*args, &block) end end end end
patch_minitest_test(state_machine)
click to toggle source
# File lib/minitest/tagz/patcher.rb, line 22 def patch_minitest_test(state_machine) Minitest::Test.class_eval do self.singleton_class.class_eval do alias :old_method_added :method_added define_method(:method_added) do |name| if name[/^test_/] state_machine.handle_initial_test_definition! do Tagz.tag_map ||= {} Tagz.tag_map[Tagz.serialize(self, name)] ||= [] Tagz.tag_map[Tagz.serialize(self, name)] += state_machine.pending_tags old_method_added(name) end else old_method_added(name) end end end end end
spec_included?()
click to toggle source
# File lib/minitest/tagz/patcher.rb, line 18 def spec_included? !defined?(::Minitest::Spec).nil? end
unpatch_minitest_spec()
click to toggle source
# File lib/minitest/tagz/patcher.rb, line 64 def unpatch_minitest_spec Kernel.module_eval do undef_method :describe alias :describe :old_describe end end
unpatch_minitest_test()
click to toggle source
# File lib/minitest/tagz/patcher.rb, line 43 def unpatch_minitest_test Minitest::Test.class_eval do self.singleton_class.class_eval do undef_method :method_added alias :method_added :old_method_added end end end