module RSpec::RubyContentMatchers class HaveModule attr_reader :module_name, :content def initialize(module_name) @module_name = module_name.to_s.camelize end def matches?(content) @content = content match_res =~ /module\s+#{module_name}\s+(.*)end/m if block_given? && match_res ruby_content = $2.strip.extend(RSpec::RubyContent::Helpers) yield ruby_content else match_res end end def failure_message puts "Content: #{content}" if RSpec::Generator.debug? "Expected there to be the module #{module_name}" end def negative_failure_message puts "Content: #{content}" if RSpec::Generator.debug? "Did no expected there to be the module #{module_name}" end end def have_module(module_name) HaveModule.new(module_name) end end