Sha256: e0f0642d9a452517349c39873e51a0f150da170984ef0cb532b7163db428b3dd

Contents?: true

Size: 1.81 KB

Versions: 11

Compression:

Stored size: 1.81 KB

Contents

require 'helper'

describe Pry::InputCompleter do

  before do
    # The AMQP gem has some classes like this:
    #  pry(main)> AMQP::Protocol::Test::ContentOk.name
    #  => :content_ok
    module SymbolyName
      def self.name; :symboly_name; end
    end
  end

  after do
    Object.remove_const :SymbolyName
  end

  # another jruby hack :((
  if !Pry::Helpers::BaseHelpers.jruby?
    it "should not crash if there's a Module that has a symbolic name." do
      completer = Pry::InputCompleter.build_completion_proc(Pry.binding_for(Object.new))
      lambda{ completer.call "a.to_s." }.should.not.raise Exception
    end
  end

  it 'should take parenthesis and other characters into account for symbols' do
    b         = Pry.binding_for(Object.new)
    completer = Pry::InputCompleter.build_completion_proc(b)

    lambda { completer.call(":class)") }.should.not.raise(RegexpError)
  end

  it 'should complete instance variables' do
    object = Object.new

    object.instance_variable_set(:'@name', 'Pry')
    object.class.send(:class_variable_set, :'@@number', 10)

    object.instance_variables.map { |v| v.to_sym } \
      .include?(:'@name').should == true

    object.class.class_variables.map { |v| v.to_sym } \
      .include?(:'@@number').should == true

    completer = Pry::InputCompleter.build_completion_proc(
      Pry.binding_for(object)
    )

    # Complete instance variables.
    completer.call('@na').include?('@name').should                 == true
    completer.call('@name.down').include?('@name.downcase').should == true

    # Complete class variables.
    completer = Pry::InputCompleter.build_completion_proc(
      Pry.binding_for(object.class)
    )

    completer.call('@@nu').include?('@@number').should              == true
    completer.call('@@number.cl').include?('@@number.class').should == true
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
pry-0.9.10 test/test_completion.rb
pry-0.9.10-i386-mswin32 test/test_completion.rb
pry-0.9.10-i386-mingw32 test/test_completion.rb
pry-0.9.10-java test/test_completion.rb
pry-0.9.10pre1 test/test_completion.rb
pry-0.9.10pre1-i386-mswin32 test/test_completion.rb
pry-0.9.10pre1-i386-mingw32 test/test_completion.rb
pry-0.9.10pre1-java test/test_completion.rb
pry-0.10.pre.1-i386-mingw32 test/test_completion.rb
pry-0.10.pre.1-java test/test_completion.rb
pry-0.10.pre.1-i386-mswin32 test/test_completion.rb