Sha256: c0c30c71a25b284b7a7762f44be055c3bdcde8cbbe09b830eeb318373d774a39

Contents?: true

Size: 1.13 KB

Versions: 1

Compression:

Stored size: 1.13 KB

Contents

$:.unshift File.expand_path('../../lib', __FILE__)

require 'rubygems'
require 'ruby-debug'
require 'tempfile'
require 'spec'
require 'spec/autorun'

require 'peekaboo'

Spec::Runner.configure do |config|
  def new_test_class
    Class.new do
      def method_no_tracing
      end

      def method_no_args
      end

      def method_one_arg arg1
      end

      def method_two_args arg1, arg2
      end

      def method_optional_args optional = 'default'
      end

      def method_variable_args *args
      end

      def method_raises
        raise 'something went wrong'
      end
    end
  end
  
  def trace_message contents, offset = 1
    file, line, method = CallChain.parse_caller(caller(1).first)
    line += offset
    
    if RUBY_VERSION < '1.9'
      "#{file}:#{line}\n\t( #{contents} )"
    else
      "#{file}:#{line}:in `#{method}'\n\t( #{contents} )"
    end
  end
  
  class CallChain
    def self.parse_caller(at)
      if /^(.+?):(\d+)(?::in `(.*)')?/ =~ at
        file   = Regexp.last_match[1]
        line   = Regexp.last_match[2].to_i
        method = Regexp.last_match[3]
        [file, line, method]
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
peekaboo-0.2.1 spec/spec_helper.rb