Improvements to ruby's autodocumentation.
GC.start was failing when ruby was run without verbose warnings. Fixed. git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9752 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
ec4daa8b0e
commit
75f1af27a5
3 changed files with 37 additions and 36 deletions
|
|
@ -1,4 +1,5 @@
|
||||||
%module li_std_stream
|
%module li_std_stream
|
||||||
|
%feature("autodoc","4");
|
||||||
|
|
||||||
%inline %{
|
%inline %{
|
||||||
struct A;
|
struct A;
|
||||||
|
|
|
||||||
|
|
@ -30,44 +30,41 @@
|
||||||
# License:: Ruby
|
# License:: Ruby
|
||||||
#
|
#
|
||||||
|
|
||||||
if $VERBOSE
|
module GC
|
||||||
module GC
|
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
|
|
||||||
attr :last_stat
|
attr :last_stat
|
||||||
attr_accessor :track_class
|
attr_accessor :track_class
|
||||||
|
|
||||||
alias :_start :start
|
alias :_start :start
|
||||||
|
|
||||||
def start
|
def start
|
||||||
_start
|
_start
|
||||||
stats
|
stats if $VERBOSE
|
||||||
end
|
|
||||||
|
|
||||||
def stats
|
|
||||||
stats = Hash.new(0)
|
|
||||||
ObjectSpace.each_object {|o| stats[o.class] += 1}
|
|
||||||
|
|
||||||
if track_class
|
|
||||||
v = stats[track_class]
|
|
||||||
printf "\t%-30s %10d", track_class.to_s, v
|
|
||||||
if last_stat
|
|
||||||
printf " | delta %10d", (v - last_stat[track_class])
|
|
||||||
end
|
|
||||||
puts
|
|
||||||
else
|
|
||||||
stats.sort {|(k1,v1),(k2,v2)| v2 <=> v1}.each do |k,v|
|
|
||||||
printf "\t%-30s %10d", k, v
|
|
||||||
printf " | delta %10d", (v - last_stat[k]) if last_stat
|
|
||||||
puts
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
last_stat = stats
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def stats
|
||||||
|
stats = Hash.new(0)
|
||||||
|
ObjectSpace.each_object {|o| stats[o.class] += 1}
|
||||||
|
|
||||||
|
if track_class
|
||||||
|
v = stats[track_class]
|
||||||
|
printf "\t%-30s %10d", track_class.to_s, v
|
||||||
|
if last_stat
|
||||||
|
printf " | delta %10d", (v - last_stat[track_class])
|
||||||
|
end
|
||||||
|
puts
|
||||||
|
else
|
||||||
|
stats.sort {|(k1,v1),(k2,v2)| v2 <=> v1}.each do |k,v|
|
||||||
|
printf "\t%-30s %10d", k, v
|
||||||
|
printf " | delta %10d", (v - last_stat[k]) if last_stat
|
||||||
|
puts
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
last_stat = stats
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -143,6 +143,7 @@ struct Autodoc {
|
||||||
const char* description;
|
const char* description;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static const Autodoc kAutoDocs[] = {
|
static const Autodoc kAutoDocs[] = {
|
||||||
{ "to_a", "Convert class to an Array" },
|
{ "to_a", "Convert class to an Array" },
|
||||||
{ "to_s", "Convert class to a String representation" },
|
{ "to_s", "Convert class to a String representation" },
|
||||||
|
|
@ -167,6 +168,8 @@ static const Autodoc kAutoDocs[] = {
|
||||||
{ "**", "Exponential operator" },
|
{ "**", "Exponential operator" },
|
||||||
{ "divmod", "Modulo of division" },
|
{ "divmod", "Modulo of division" },
|
||||||
{ "hash", "Hashing function for class" },
|
{ "hash", "Hashing function for class" },
|
||||||
|
{ "dup", "Create a duplicate of the class and unfreeze it if needed" },
|
||||||
|
{ "clone", "Create a duplicate of the class" },
|
||||||
{ "coerce", "Coerce class to a number" },
|
{ "coerce", "Coerce class to a number" },
|
||||||
{ "<=>", "Comparison operator" },
|
{ "<=>", "Comparison operator" },
|
||||||
{0,0}
|
{0,0}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue