Sha256: d16f9455dbc708729b19fe57dfe6b715f0fa2d7357adf4f942e40bf962eddc21

Contents?: true

Size: 767 Bytes

Versions: 6

Compression:

Stored size: 767 Bytes

Contents

require 'mocha/api'

module Mocha
  module Integration
    module MonkeyPatcher
      def self.apply(mod, run_method_patch)
        if mod < Mocha::API
          Debug.puts "Mocha::API already included in #{mod}"
        else
          mod.send(:include, Mocha::API)
        end
        if mod.method_defined?(:run_before_mocha)
          Debug.puts "#{mod}#run_before_mocha method already defined"
        else
          if mod.method_defined?(:run)
            mod.send(:alias_method, :run_before_mocha, :run)
            mod.send(:remove_method, :run)
            mod.send(:include, run_method_patch)
          else
            raise "Unable to monkey-patch #{mod}, because it does not define a `#run` method"
          end
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
mocha-1.6.0 lib/mocha/integration/monkey_patcher.rb
mocha-1.5.0 lib/mocha/integration/monkey_patcher.rb
mocha-1.4.0 lib/mocha/integration/monkey_patcher.rb
mocha-1.3.0 lib/mocha/integration/monkey_patcher.rb
mocha-1.2.1 lib/mocha/integration/monkey_patcher.rb
mocha-1.2.0 lib/mocha/integration/monkey_patcher.rb