Sha256: 646e778457a2b9e678b43653cf01d6fb1ce591fb1e1b43eefa1e0f692280231a

Contents?: true

Size: 1.49 KB

Versions: 6

Compression:

Stored size: 1.49 KB

Contents

require "#{File.dirname __FILE__}/helper"
require "ruby_ext/kernel"

describe 'Kernel' do
  class Respond
    def test; 2 end
  end
  
  after :all do
    [:TheNamespace, :AnotherClass].each{|c| Object.send :remove_const, c if Object.const_defined? c}
  end

  it "respond_to" do
    r = Respond.new
    r.respond_to(:not_exist).should be_nil
    r.respond_to(:test).should == 2
  end
  
  it "raise_without_self" do
    dir = File.dirname __FILE__
    require "#{dir}/kernel_spec/TheNamespace/ClassA"
    require "#{dir}/kernel_spec/the_namespace/class_b"
    require "#{dir}/kernel_spec/another_class"
    
    begin
      TheNamespace::ClassA.problem_method
    rescue StandardError => e
      e.message.should =~ /Some problem/
      stack = e.backtrace
      stack.any?{|line| line =~ /ClassA/}.should be_false
      stack.any?{|line| line =~ /kernel_spec/}.should be_true
    end

    begin
      TheNamespace::ClassB.problem_method
    rescue StandardError => e
      e.message.should =~ /Some problem/
      stack = e.backtrace
      stack.any?{|line| line =~ /class_b/}.should be_false
      stack.any?{|line| line =~ /kernel_spec/}.should be_true
    end    
    
    begin
      AnotherClass.exclude_multiple_classes
    rescue StandardError => e
      e.message.should =~ /Some problem/
      stack = e.backtrace
      stack.any?{|line| line =~ /class_b/}.should be_false
      stack.any?{|line| line =~ /another_class/}.should be_false
      stack.any?{|line| line =~ /kernel_spec/}.should be_true
    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
ruby_ext-0.4.7 spec/kernel_spec.rb
ruby_ext-0.4.6 spec/kernel_spec.rb
ruby-ext-0.4.6 spec/kernel_spec.rb
ruby-ext-0.4.4 spec/kernel_spec.rb
ruby-ext-0.4.3 spec/ruby_ext/kernel_spec.rb
ruby-ext-0.4.2 spec/ruby_ext/kernel_spec.rb