Loading lib/jsduck/tree.rb +1 −1 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ module JsDuck # Comparson method that sorts package nodes before class nodes. def compare(a, b) if a[:cls] == b[:cls] a[:text] <=> b[:text] a[:text].casecmp(b[:text]) else a[:cls] == "package" ? -1 : 1 end Loading spec/tree_spec.rb +25 −0 Original line number Diff line number Diff line Loading @@ -165,3 +165,28 @@ describe JsDuck::Tree, "uppercase package name" do end end describe JsDuck::Tree do before do @tree = JsDuck::Tree.new.create([ JsDuck::Class.new({:tagname => :class, :name => "Dingo"}), JsDuck::Class.new({:tagname => :class, :name => "Beeta"}), JsDuck::Class.new({:tagname => :class, :name => "cheetah"}), JsDuck::Class.new({:tagname => :class, :name => "pkg.Class"}), JsDuck::Class.new({:tagname => :class, :name => "Abba"}), ]) end it "sorts packages first" do @tree[:children][0][:text].should == 'pkg' end it "sorts classes case-insensitively" do @tree[:children][1][:text].should == 'Abba' @tree[:children][2][:text].should == 'Beeta' @tree[:children][3][:text].should == 'cheetah' @tree[:children][4][:text].should == 'Dingo' end end Loading
lib/jsduck/tree.rb +1 −1 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ module JsDuck # Comparson method that sorts package nodes before class nodes. def compare(a, b) if a[:cls] == b[:cls] a[:text] <=> b[:text] a[:text].casecmp(b[:text]) else a[:cls] == "package" ? -1 : 1 end Loading
spec/tree_spec.rb +25 −0 Original line number Diff line number Diff line Loading @@ -165,3 +165,28 @@ describe JsDuck::Tree, "uppercase package name" do end end describe JsDuck::Tree do before do @tree = JsDuck::Tree.new.create([ JsDuck::Class.new({:tagname => :class, :name => "Dingo"}), JsDuck::Class.new({:tagname => :class, :name => "Beeta"}), JsDuck::Class.new({:tagname => :class, :name => "cheetah"}), JsDuck::Class.new({:tagname => :class, :name => "pkg.Class"}), JsDuck::Class.new({:tagname => :class, :name => "Abba"}), ]) end it "sorts packages first" do @tree[:children][0][:text].should == 'pkg' end it "sorts classes case-insensitively" do @tree[:children][1][:text].should == 'Abba' @tree[:children][2][:text].should == 'Beeta' @tree[:children][3][:text].should == 'cheetah' @tree[:children][4][:text].should == 'Dingo' end end