[as2api-dev] [CVS trunk] Add the same sort of common link-building code for fields as we have for methods

David Holroyd dave at badgers-in-foil.co.uk
Sat, 02 Jul 2005 20:15:08 +0000


<html>
<head>
<style><!--
  body {background-color:#ffffff;}
  .file {border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;}
  .pathname {font-family:monospace; float:right;}
  .fileheader {margin-bottom:.5em;}
  .diff {margin:0;}
  .tasklist {padding:4px;border:1px dashed #000000;margin-top:1em;}
  .tasklist ul {margin-top:0;margin-bottom:0;}
  tr.alt {background-color:#eeeeee}
  #added {background-color:#ddffdd;}
  #addedchars {background-color:#99ff99;font-weight:bolder;}
  tr.alt #added {background-color:#ccf7cc;}
  #removed {background-color:#ffdddd;}
  #removedchars {background-color:#ff9999;font-weight:bolder;}
  tr.alt #removed {background-color:#f7cccc;}
  #info {color:#888888;}
  #context {background-color:#eeeeee;}
  td {padding-left:.3em;padding-right:.3em;}
  tr.head {border-bottom-width:1px;border-bottom-style:solid;}
  tr.head td {padding:0;padding-top:.2em;}
  .task {background-color:#ffff00;}
  .comment {padding:4px;border:1px dashed #000000;background-color:#ffffdd}
  .error {color:red;}
  hr {border-width:0px;height:2px;background:black;}
--></style>
</head>
<body>
<table cellspacing="0" cellpadding="0" border="0" rules="cols">
<tr class="head"><td colspan="4">Commit in <b><tt>trunk/as2api</tt></b><span id="info"> on MAIN</span></td></tr>
<tr><td><tt><a href="#file1">html_output.rb</a></tt></td><td align="right" id="added">+38</td><td align="right" id="removed">-13</td><td nowrap="nowrap" align="center"><a href="http://svn.badgers-in-foil.co.uk/viewcvs.cgi/as2api/trunk/as2api/html_output.rb?rev=174&amp;content-type=text/vnd.viewcvs-markup">174</a> <a href="http://svn.badgers-in-foil.co.uk/viewcvs.cgi/as2api/trunk/as2api/html_output.rb.diff?r1=174&amp;r2=175">-&gt;</a> <a href="http://svn.badgers-in-foil.co.uk/viewcvs.cgi/as2api/trunk/as2api/html_output.rb?rev=175&amp;content-type=text/vnd.viewcvs-markup">175</a></td></tr>
</table>
<pre class="comment">
Add the same sort of common link-building code for fields as we have for methods
including title tags giving the field synopsis
</pre>
<hr /><a name="file1" /><div class="file">
<span class="pathname"><a
href="http://svn.badgers-in-foil.co.uk/viewcvs.cgi/as2api/trunk">trunk</a>/<a
href="http://svn.badgers-in-foil.co.uk/viewcvs.cgi/as2api/trunk/as2api">as2api</a></span><br />
<div class="fileheader"><big><b>html_output.rb</b></big> <small id="info"><a href="http://svn.badgers-in-foil.co.uk/viewcvs.cgi/as2api/trunk/as2api/html_output.rb?rev=174&amp;content-type=text/vnd.viewcvs-markup">174</a> <a href="http://svn.badgers-in-foil.co.uk/viewcvs.cgi/as2api/trunk/as2api/html_output.rb.diff?r1=174&amp;r2=175">-&gt;</a> <a href="http://svn.badgers-in-foil.co.uk/viewcvs.cgi/as2api/trunk/as2api/html_output.rb?rev=175&amp;content-type=text/vnd.viewcvs-markup">175</a></small></div>
<pre class="diff"><small id="info">--- trunk/as2api/html_output.rb	2005-07-02 18:58:47 UTC (rev 174)
+++ trunk/as2api/html_output.rb	2005-07-02 20:15:02 UTC (rev 175)
@@ -346,6 +346,42 @@
</small></pre><pre class="diff" id="context">     end
   end
 
</pre><pre class="diff" id="added">+  def signature_for_field(field)
+    sig = ""
+    if field.access.is_static
+      sig &lt;&lt; "static "
+    end
+    unless field.access.visibility.nil?
+      sig &lt;&lt; "#{field.access.visibility.body} "
+    end
+    sig &lt;&lt; field.name
+    if field.field_type
+      sig &lt;&lt; ":"
+      sig &lt;&lt; field.field_type.name
+    end
+  end
+
+  def link_for_field(field)
+    if @type == field.containing_type
+      "#field_#{field.name}"
+    else
+      "#{link_for_type(field.containing_type)}#field_#{field.name}"
+    end
+  end
+
+  def link_field(field)
+    sig = signature_for_field(field)
+    if field.containing_type.document?
+      html_a("href"=&gt;link_for_field(field), "title"=&gt;sig) do
+	pcdata(field.name)
+      end
+    else
+      html_span("title"=&gt;sig) do
+	pcdata(field.name)
+      end
+    end
+  end
+
</pre><pre class="diff" id="context">   def base_path(file)
     return file if @path_name.nil?
     ((".."+File::SEPARATOR) * @path_name.split(File::SEPARATOR).length) + file
</pre><pre class="diff"><small id="info">@@ -571,15 +607,7 @@
</small></pre><pre class="diff" id="context">     fields.each do |field|
       next unless document_member?(field)
       pcdata(", ") if index &gt; 0
</pre><pre class="diff" id="removed">-      html_code do
-	if type.document?
-	  html_a("href"=&gt;"#{href_prefix}#field_#{field.name}") do
-	    pcdata(field.name)
-	  end
-	else
-	  pcdata(field.name)
-	end
-      end
</pre><pre class="diff" id="added">+      link_field(field)
</pre><pre class="diff" id="context">       index += 1
     end
   end
</pre><pre class="diff"><small id="info">@@ -1513,10 +1541,7 @@
</small></pre><pre class="diff" id="context"> 
 class FieldIndexTerm &lt; MemberIndexTerm
   def link(out)
</pre><pre class="diff" id="removed">-    href_prefix = out.link_for_type(@astype)
-    out.html_a("href"=&gt;"#{href_prefix}#field_#{@asmember.name}") do
-      out.pcdata(@asmember.name)
-    end
</pre><pre class="diff" id="added">+    out.link_field(@asmember)
</pre><pre class="diff" id="context">     out.pcdata(" field in ")
     out.link_type(@astype, true)
   end
</pre></div>
<center><small><a href="http://www.badgers-in-foil.co.uk/projects/cvsspam/" title="commit -&gt; email">CVSspam</a> 0.2.11</small></center>
</body></html>