Sha256: 06ce12b6e93380b3170ed984dc80801dbbfb96fad0e0bcc772e3840f9b164a31

Contents?: true

Size: 1.1 KB

Versions: 68

Compression:

Stored size: 1.1 KB

Contents

require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper')
require 'pp'
require 'stringio'

include YARD::Parser::Ruby

describe YARD::Parser::Ruby::AstNode do
  describe "#jump" do
    it "should jump to the first specific inner node if found" do
      ast = s(:paren, s(:paren, s(:params, s(s(:ident, "hi"), s(:ident, "bye")))))
      ast.jump(:params)[0][0].type.should equal(:ident)
    end

    it "should return the original ast if no inner node is found" do
      ast = s(:paren, s(:list, s(:list, s(s(:ident, "hi"), s(:ident, "bye")))))
      ast.jump(:params).object_id.should == ast.object_id
    end
  end

  describe '#pretty_print' do
    it "should show a list of nodes" do
      obj = YARD::Parser::Ruby::RubyParser.parse("# x\nbye", "x").ast
      out = StringIO.new
      PP.pp(obj, out)
      vcall = RUBY_VERSION >= '1.9.3' ? 'vcall' : 'var_ref'
      out.string.should == "s(s(:#{vcall},\n" +
        "      s(:ident, \"bye\", line: 2..2, source: 4..6),\n" +
        "      docstring: \"x\",\n" +
        "      line: 2..2,\n" +
        "      source: 4..6))\n"
    end
  end
end if HAVE_RIPPER

Version data entries

68 entries across 52 versions & 7 rubygems

Version Path
yard-0.8.7.6 spec/parser/ruby/ast_node_spec.rb
yard-0.8.7.5 spec/parser/ruby/ast_node_spec.rb
climine-0.0.7 vendor/bundle/ruby/2.0.0/gems/yard-0.8.7.3/spec/parser/ruby/ast_node_spec.rb
climine-0.0.7 vendor/bundle/ruby/2.1.0/gems/yard-0.8.7.3/spec/parser/ruby/ast_node_spec.rb
climine-0.0.6 vendor/bundle/ruby/2.0.0/gems/yard-0.8.7.3/spec/parser/ruby/ast_node_spec.rb
climine-0.0.5 vendor/bundle/ruby/2.0.0/gems/yard-0.8.7.3/spec/parser/ruby/ast_node_spec.rb
yard-0.8.7.4 spec/parser/ruby/ast_node_spec.rb
climine-0.0.4 vendor/bundle/ruby/2.0.0/gems/yard-0.8.7.3/spec/parser/ruby/ast_node_spec.rb
climine-0.0.3 vendor/bundle/ruby/2.0.0/gems/yard-0.8.7.3/spec/parser/ruby/ast_node_spec.rb
mango-0.8.0 vendor/bundler/ruby/2.1.0/gems/yard-0.8.7.3/spec/parser/ruby/ast_node_spec.rb
mango-0.7.1 vendor/bundler/ruby/2.0.0/gems/yard-0.8.7.3/spec/parser/ruby/ast_node_spec.rb
mango-0.7.0 vendor/bundler/ruby/2.0.0/gems/yard-0.8.7.3/spec/parser/ruby/ast_node_spec.rb
climine-0.0.2 vendor/bundle/ruby/2.0.0/gems/yard-0.8.7.3/spec/parser/ruby/ast_node_spec.rb
climine-0.0.1 vendor/bundle/ruby/2.0.0/gems/yard-0.8.7.3/spec/parser/ruby/ast_node_spec.rb
yard-0.8.7.3 spec/parser/ruby/ast_node_spec.rb
yard-0.8.7.2 spec/parser/ruby/ast_node_spec.rb
candlepin-api-0.4.0 bundle/ruby/1.8/gems/yard-0.8.7/spec/parser/ruby/ast_node_spec.rb
candlepin-api-0.4.0 bundle/ruby/gems/yard-0.8.7/spec/parser/ruby/ast_node_spec.rb
candlepin-api-0.4.0 bundle/ruby/1.9.1/gems/yard-0.8.7/spec/parser/ruby/ast_node_spec.rb
yard-0.8.7.1 spec/parser/ruby/ast_node_spec.rb