Loading lib/jsduck/type_parser.rb +14 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,13 @@ module JsDuck def initialize(relations={}, formatter={}) @relations = relations @formatter = formatter @primitives = { "boolean" => "Boolean", "number" => "Number", "string" => "String", "null" => "null", "undefined" => "undefined", } end # Parses the type definition Loading Loading @@ -134,7 +141,13 @@ module JsDuck return false elsif @relations[name] @out << @formatter.link(name, nil, name) elsif @relations.ignore?(name) || name == "undefined" || name == "*" elsif @primitives[name] if @relations[@primitives[name]] @out << @formatter.link(@primitives[name], nil, name) else @out << name end elsif @relations.ignore?(name) || name == "*" @out << name else @error = :name Loading spec/type_parser_spec.rb +18 −0 Original line number Diff line number Diff line require "jsduck/relations" require "jsduck/type_parser" require "jsduck/doc_formatter" require "jsduck/class" describe JsDuck::TypeParser do Loading Loading @@ -203,6 +205,22 @@ describe JsDuck::TypeParser do parse("Array.<>").should == false end it "always matches primitive types" do parse("boolean").should == true parse("number").should == true parse("string").should == true parse("null").should == true parse("undefined").should == true end it "links primitive types to classes" do relations = JsDuck::Relations.new([JsDuck::Class.new({:name => "String"})]) doc_formatter = JsDuck::DocFormatter.new(relations) p = JsDuck::TypeParser.new(relations, doc_formatter) p.parse("string") p.out.should == '<a href="String">string</a>' end end end Loading Loading
lib/jsduck/type_parser.rb +14 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,13 @@ module JsDuck def initialize(relations={}, formatter={}) @relations = relations @formatter = formatter @primitives = { "boolean" => "Boolean", "number" => "Number", "string" => "String", "null" => "null", "undefined" => "undefined", } end # Parses the type definition Loading Loading @@ -134,7 +141,13 @@ module JsDuck return false elsif @relations[name] @out << @formatter.link(name, nil, name) elsif @relations.ignore?(name) || name == "undefined" || name == "*" elsif @primitives[name] if @relations[@primitives[name]] @out << @formatter.link(@primitives[name], nil, name) else @out << name end elsif @relations.ignore?(name) || name == "*" @out << name else @error = :name Loading
spec/type_parser_spec.rb +18 −0 Original line number Diff line number Diff line require "jsduck/relations" require "jsduck/type_parser" require "jsduck/doc_formatter" require "jsduck/class" describe JsDuck::TypeParser do Loading Loading @@ -203,6 +205,22 @@ describe JsDuck::TypeParser do parse("Array.<>").should == false end it "always matches primitive types" do parse("boolean").should == true parse("number").should == true parse("string").should == true parse("null").should == true parse("undefined").should == true end it "links primitive types to classes" do relations = JsDuck::Relations.new([JsDuck::Class.new({:name => "String"})]) doc_formatter = JsDuck::DocFormatter.new(relations) p = JsDuck::TypeParser.new(relations, doc_formatter) p.parse("string") p.out.should == '<a href="String">string</a>' end end end Loading