spec/pry-doc_spec.rb in pry-doc-0.9.0 vs spec/pry-doc_spec.rb in pry-doc-0.10.0
- old
+ new
@@ -1,199 +1,196 @@
direc = File.dirname(__FILE__)
-require 'rubygems'
require 'pry'
require "#{direc}/../lib/pry-doc"
require "#{direc}/helper"
require "#{direc}/gem_with_cext/gems/sample"
-require 'bacon'
require 'set'
require 'fileutils'
require 'readline'
puts "Testing pry-doc version #{PryDoc::VERSION}..."
puts "Ruby version: #{RUBY_VERSION}"
-describe PryDoc do
+RSpec.describe PryDoc do
describe "core C methods" do
it 'should look up core (C) methods' do
obj = Pry::MethodInfo.info_for(method(:puts))
- obj.source.should.not == nil
+ expect(obj.source).not_to be_nil
end
it 'should look up core (C) instance methods' do
- Module.module_eval do
- obj = Pry::MethodInfo.info_for(instance_method(:include))
- obj.source.should.not == nil
+ obj = Module.module_eval do
+ Pry::MethodInfo.info_for(instance_method(:include))
end
+ expect(obj.source).not_to be_nil
end
it 'should look up core (C) class method (by Method object)' do
- Module.module_eval do
- obj = Pry::MethodInfo.info_for(Dir.method(:glob))
- obj.source.should.not == nil
+ obj = Module.module_eval do
+ Pry::MethodInfo.info_for(Dir.method(:glob))
end
+ expect(obj.source).not_to be_nil
end
it 'should look up core (C) class method (by UnboundMethod object)' do
- Module.module_eval do
- obj = Pry::MethodInfo.info_for(class << Dir; instance_method(:glob); end)
- obj.source.should.not == nil
+ obj = Module.module_eval do
+ Pry::MethodInfo.info_for(class << Dir; instance_method(:glob); end)
end
+ expect(obj.source).not_to be_nil
end
end
describe "eval methods" do
it 'should return nil for eval methods' do
TOPLEVEL_BINDING.eval("def hello; end")
obj = Pry::MethodInfo.info_for(method(:hello))
- obj.should == nil
+ expect(obj).to be_nil
end
end
describe "pure ruby methods" do
it 'should look up ruby methods' do
obj = Pry::MethodInfo.info_for(C.new.method(:message))
- obj.should.not == nil
+ expect(obj).not_to be_nil
end
it 'should look up ruby instance methods' do
obj = Pry::MethodInfo.info_for(C.instance_method(:message))
- obj.should.not == nil
+ expect(obj).not_to be_nil
end
end
describe "Ruby stdlib methods" do
it "should look up ruby stdlib method" do
obj = Pry::MethodInfo.info_for(Set.instance_method(:union))
- obj.should.not == nil
+ expect(obj).not_to be_nil
end
end
describe "C ext methods" do
it "should lookup C ext methods" do
obj = Pry::MethodInfo.info_for(Sample.instance_method(:gleezor))
- obj.should.not == nil
+ expect(obj).not_to be_nil
end
it "should lookup aliased C ext methods" do
obj = Pry::MethodInfo.info_for(Sample.instance_method(:remove))
- obj.should.not == nil
+ expect(obj).not_to be_nil
end
it "should lookup C ext instance methods even when its owners don't have any ruby methods" do
obj = Pry::MethodInfo.info_for(Sample::A::B.instance_method(:gleezor))
- obj.should.not == nil
+ expect(obj).not_to be_nil
end
it "should lookup C ext class methods even when its owners don't have any ruby methods" do
obj = Pry::MethodInfo.info_for(Sample::A::B.method(:gleezor))
- obj.should.not == nil
+ expect(obj).not_to be_nil
end
end
describe "C stdlib methods" do
it "finds them" do
obj = Pry::MethodInfo.info_for(Readline.method(:readline))
- obj.should.not == nil
+ expect(obj).not_to be_nil
end
it "finds well hidden docs like BigDecimal docs" do
require 'bigdecimal'
obj = Pry::MethodInfo.info_for(BigDecimal.instance_method(:finite?))
- obj.should.not == nil
+ expect(obj).not_to be_nil
end
end
describe ".aliases" do
it "should return empty array if method does not have any alias" do
aliases = Pry::MethodInfo.aliases(Sample.instance_method(:some_meth))
- aliases.should == []
+ expect(aliases).to be_empty
end
it "should return aliases of a (C) method" do
orig = Sample.instance_method(:gleezor)
copy = Sample.instance_method(:remove)
aliases = Pry::MethodInfo.aliases(orig)
- aliases.should == [copy]
+ expect(aliases).to eq([copy])
aliases = Pry::MethodInfo.aliases(copy)
- aliases.should == [orig]
+ expect(aliases).to eq([orig])
end
it "should return aliases of a ruby method" do
C.class_eval { alias msg message }
orig = C.instance_method(:message)
copy = C.instance_method(:msg)
aliases = Pry::MethodInfo.aliases(orig)
- aliases.should == [copy]
+ expect(aliases).to eq([copy])
aliases = Pry::MethodInfo.aliases(copy)
- aliases.should == [orig]
+ expect(aliases).to eq([orig])
end
it "should return aliases of protected method" do
orig = Sample.instance_method(:gleezor_1)
copy = Sample.instance_method(:remove_1)
aliases = Pry::MethodInfo.aliases(orig)
- aliases.should == [copy]
+ expect(aliases).to eq([copy])
end
it "should return aliases of private method" do
orig = Sample.instance_method(:gleezor_2)
copy = Sample.instance_method(:remove_2)
aliases = Pry::MethodInfo.aliases(orig)
- aliases.should == [copy]
+ expect(aliases).to eq([copy])
end
it 'does not error when given a singleton method' do
c = Class.new do
def self.my_method; end
end
- lambda { Pry::MethodInfo.aliases(c.method(:my_method)) }.should.not.raise NameError
+ expect { Pry::MethodInfo.aliases(c.method(:my_method)) }.not_to raise_error
end
end
describe ".gem_root" do
it "should return the path to the gem" do
path = Pry::WrappedModule.new(Sample).source_location[0]
-
- Pry::MethodInfo.gem_root(path).should ==
- File.expand_path("gem_with_cext/gems", direc)
+ expect(Pry::MethodInfo.gem_root(path)).
+ to eq(File.expand_path("gem_with_cext/gems", direc))
end
it "should not be fooled by a parent 'lib' or 'ext' dir" do
path = "/foo/.rbenv/versions/1.9.3-p429/lib/ruby/gems/"\
"1.9.1/gems/activesupport-4.0.2/lib/active_support/"\
"core_ext/kernel/reporting.rb"
- Pry::MethodInfo.gem_root(path).should ==
- "/foo/.rbenv/versions/1.9.3-p429/lib/ruby/"\
- "gems/1.9.1/gems/activesupport-4.0.2"
+ expect(Pry::MethodInfo.gem_root(path))
+ .to eq('/foo/.rbenv/versions/1.9.3-p429/lib/ruby/' \
+ 'gems/1.9.1/gems/activesupport-4.0.2')
end
end
describe "1.9 and higher specific docs" do
it "finds Kernel#require_relative" do
obj = Pry::MethodInfo.info_for(Kernel.instance_method(:require_relative))
- obj.should.not == nil
+ expect(obj).not_to be_nil
end
end
# For the time being, Pry doesn't define `mri_20?` helper method.
if RUBY_VERSION =~ /2.0/ && RbConfig::CONFIG['ruby_install_name'] == 'ruby'
describe "2.0 specific docs" do
it "finds Module#refine" do
obj = Pry::MethodInfo.info_for(Module.instance_method(:refine))
- obj.should.not == nil
+ expect(obj).not_to be_nil
end
end
end
end