Loading lib/jsduck/class.rb +3 −3 Original line number Diff line number Diff line Loading @@ -24,13 +24,13 @@ module JsDuck return full_name == class_name || (parent ? parent.inherits_from?(class_name) : false) end # Returns array of all members of particular type in a class, # Returns array of all public members of particular type in a class, # sorted by name. See members_hash for details. def members(type) members_hash(type).values.sort {|a,b| a[:name] <=> b[:name] } end # Returns hash of members of class (and parent classes). # Returns hash of public members of class (and parent classes). # Members are methods, properties, cfgs, events (member type # is speified through 'type' parameter). # Loading @@ -43,7 +43,7 @@ module JsDuck parent_members = parent ? parent.members_hash(type) : {} @doc[type].each do |m| m[:member] = full_name parent_members[m[:name]] = m parent_members[m[:name]] = m if !m[:private] end parent_members end Loading test/tc_class.rb +17 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,23 @@ class TestClass < Test::Unit::TestCase assert_equal("ParentClass", ms["baz"][:member], "baz is only in parent class") end def test_private_members_are_excluded cls = JsDuck::Class.new({ :name => "MyClass", :method => [ {:name => "foo"}, {:name => "bar", :private => true}, {:name => "baz"}, {:name => "zed", :private => true}, ] }); ms = cls.members_hash(:method) assert_equal(2, ms.values.length) assert(ms["foo"]) assert(ms["baz"]) end def test_inherits_from classes = {} parent = JsDuck::Class.new({ Loading Loading
lib/jsduck/class.rb +3 −3 Original line number Diff line number Diff line Loading @@ -24,13 +24,13 @@ module JsDuck return full_name == class_name || (parent ? parent.inherits_from?(class_name) : false) end # Returns array of all members of particular type in a class, # Returns array of all public members of particular type in a class, # sorted by name. See members_hash for details. def members(type) members_hash(type).values.sort {|a,b| a[:name] <=> b[:name] } end # Returns hash of members of class (and parent classes). # Returns hash of public members of class (and parent classes). # Members are methods, properties, cfgs, events (member type # is speified through 'type' parameter). # Loading @@ -43,7 +43,7 @@ module JsDuck parent_members = parent ? parent.members_hash(type) : {} @doc[type].each do |m| m[:member] = full_name parent_members[m[:name]] = m parent_members[m[:name]] = m if !m[:private] end parent_members end Loading
test/tc_class.rb +17 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,23 @@ class TestClass < Test::Unit::TestCase assert_equal("ParentClass", ms["baz"][:member], "baz is only in parent class") end def test_private_members_are_excluded cls = JsDuck::Class.new({ :name => "MyClass", :method => [ {:name => "foo"}, {:name => "bar", :private => true}, {:name => "baz"}, {:name => "zed", :private => true}, ] }); ms = cls.members_hash(:method) assert_equal(2, ms.values.length) assert(ms["foo"]) assert(ms["baz"]) end def test_inherits_from classes = {} parent = JsDuck::Class.new({ Loading