fixes for problems reported by htmldoc and tidy
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@7430 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
6b5a64bd92
commit
64c4e71c84
7 changed files with 305 additions and 556 deletions
|
|
@ -14,342 +14,35 @@
|
|||
<body style="background-color: rgb(255, 255, 255);">
|
||||
|
||||
|
||||
<h1><a name="Ruby"></a>27 SWIG and Ruby</h1>
|
||||
|
||||
|
||||
<H1><a name="Ruby"></a>27 SWIG and Ruby</H1>
|
||||
<!-- INDEX -->
|
||||
<div class="sectiontoc">
|
||||
<ul>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn2">Preliminaries</a>
|
||||
|
||||
<ul>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn3">Running SWIG</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn4">Getting the right
|
||||
header files</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn5">Compiling a dynamic
|
||||
module</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn6">Using your module</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn7">Static linking</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn8">Compilation of C++
|
||||
extensions</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn9">Building Ruby Extensions
|
||||
under Windows 95/NT</a>
|
||||
|
||||
<ul>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn10">Running SWIG from
|
||||
Developer Studio</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn11">The Ruby-to-C/C++ Mapping</a>
|
||||
|
||||
<ul>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn12">Modules</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn13">Functions</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn14">Variable Linking</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn15">Constants</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn16">Pointers</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn17">Structures</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn18">C++ classes</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn19">C++ Inheritance</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn20">C++ Overloaded
|
||||
Functions</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn21">C++ Operators</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn22">C++ namespaces</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn23">C++ templates</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#ruby_cpp_smart_pointers">C++
|
||||
Smart Pointers</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn25">Cross-Language
|
||||
Polymorphism</a>
|
||||
|
||||
<ul>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn26">Exception
|
||||
Unrolling</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn27">Input and output
|
||||
parameters</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn28">Simple exception handling
|
||||
</a></li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn29">Typemaps</a>
|
||||
|
||||
<ul>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn30">What is a typemap?</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn31">Ruby typemaps</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn32">Typemap variables</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn33">Useful Functions</a>
|
||||
|
||||
<ul>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn34">C Datatypes to
|
||||
Ruby Objects</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn35">Ruby Objects to C
|
||||
Datatypes</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn36">Macros for VALUE</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn37">Exceptions</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn38">Iterators</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#ruby_typemap_examples">Typemap
|
||||
Examples</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn40">Converting a Ruby
|
||||
array to a char **</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn41">Collecting arguments
|
||||
in a hash</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn42">Pointer handling</a>
|
||||
|
||||
<ul>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn43">Ruby Datatype
|
||||
Wrapping</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#ruby_operator_overloading">Operator
|
||||
overloading</a>
|
||||
|
||||
<ul>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn45">Example: STL Vector
|
||||
to Ruby Array</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn46">Advanced Topics</a>
|
||||
|
||||
<ul>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn47">Creating Multi-Module
|
||||
Packages</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn48">Defining Aliases</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn49">Predicate Methods</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn50">Specifying Mixin
|
||||
Modules</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
<li>
|
||||
<a href="#Ruby_nn51">Memory Management</a>
|
||||
|
||||
<ul>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn52">Mark and Sweep
|
||||
Garbage Collector</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn53">Object Ownership</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn54">Free Functions</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn55">Mark Functions</a></li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
<li><a href="#Ruby_nn2">Preliminaries</a>
|
||||
<ul>
|
||||
<li><a href="#Ruby_nn3">Running SWIG</a>
|
||||
<li><a href="#Ruby_nn12">Modules</a>
|
||||
<li><a href="#Ruby_nn13">Functions</a>
|
||||
<li><a href="#Ruby_nn15">Constants</a>
|
||||
<li><a href="#Ruby_nn16">Pointers</a>
|
||||
<li><a href="#Ruby_nn17">Structures</a>
|
||||
<li><a href="#Ruby_nn18">C++ classes</a>
|
||||
</ul>
|
||||
<li><a href="#Ruby_nn29">Typemaps</a>
|
||||
<ul>
|
||||
<li><a href="#Ruby_nn37">Exceptions</a>
|
||||
<li><a href="#Ruby_nn38">Iterators</a>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<!-- INDEX -->
|
||||
|
||||
|
||||
|
||||
<p>This chapter describes SWIG's support of Ruby. </p>
|
||||
|
||||
|
||||
<h2><a name="Ruby_nn2"></a>27.1 Preliminaries</h2>
|
||||
<H2><a name="Ruby_nn2"></a>27.1 Preliminaries</H2>
|
||||
|
||||
|
||||
<p>
|
||||
|
|
@ -373,7 +66,7 @@ has a basic understanding of Ruby.
|
|||
</p>
|
||||
|
||||
|
||||
<h3><a name="Ruby_nn3"></a>27.1.1 Running SWIG</h3>
|
||||
<H3><a name="Ruby_nn3"></a>27.1.1 Running SWIG</H3>
|
||||
|
||||
|
||||
<p>
|
||||
|
|
@ -438,9 +131,10 @@ can run Ruby to find out. For example:
|
|||
|
||||
|
||||
<div class="code">
|
||||
<pre>$ <b>ruby -e 'puts $:.join("\n")'</b><br>/usr/local/lib/ruby/site_ruby/1.6 /usr/local/lib/ruby/site_ruby/1.6/i686-linux /usr/local/lib/ruby/site_ruby /usr/local/lib/ruby/1.6 /usr/local/lib/ruby/1.6/i686-linux . </pre>
|
||||
|
||||
|
||||
<pre>
|
||||
$ <b>ruby -e 'puts $:.join("\n")'</b><br>/usr/local/lib/ruby/site_ruby/1.6 /usr/local/lib/ruby/site_ruby/1.6/i686-linux
|
||||
/usr/local/lib/ruby/site_ruby /usr/local/lib/ruby/1.6 /usr/local/lib/ruby/1.6/i686-linux .
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -848,7 +542,7 @@ in your SWIG interface files to Ruby constructs.
|
|||
</p>
|
||||
|
||||
|
||||
<h3><a name="Ruby_nn12"></a>27.3.1 Modules</h3>
|
||||
<H3><a name="Ruby_nn12"></a>27.1.2 Modules</H3>
|
||||
|
||||
|
||||
<p>
|
||||
|
|
@ -973,7 +667,7 @@ with any of Ruby's built-in names.
|
|||
</p>
|
||||
|
||||
|
||||
<h3><a name="Ruby_nn13"></a>27.3.2 Functions</h3>
|
||||
<H3><a name="Ruby_nn13"></a>27.1.3 Functions</H3>
|
||||
|
||||
|
||||
<p>
|
||||
|
|
@ -1089,7 +783,7 @@ disabled using <tt>%mutable</tt>.
|
|||
</p>
|
||||
|
||||
|
||||
<h3><a name="Ruby_nn15"></a>27.3.4 Constants</h3>
|
||||
<H3><a name="Ruby_nn15"></a>27.1.4 Constants</H3>
|
||||
|
||||
|
||||
<p>
|
||||
|
|
@ -1120,7 +814,7 @@ values, e.g.
|
|||
</div>
|
||||
|
||||
|
||||
<h3><a name="Ruby_nn16"></a>27.3.5 Pointers</h3>
|
||||
<H3><a name="Ruby_nn16"></a>27.1.5 Pointers</H3>
|
||||
|
||||
|
||||
<p>
|
||||
|
|
@ -1160,7 +854,7 @@ object.
|
|||
</p>
|
||||
|
||||
|
||||
<h3><a name="Ruby_nn17"></a>27.3.6 Structures</h3>
|
||||
<H3><a name="Ruby_nn17"></a>27.1.6 Structures</H3>
|
||||
|
||||
|
||||
<p>
|
||||
|
|
@ -1295,7 +989,7 @@ generates accessor functions such as this:
|
|||
</div>
|
||||
|
||||
|
||||
<h3><a name="Ruby_nn18"></a>27.3.7 C++ classes</h3>
|
||||
<H3><a name="Ruby_nn18"></a>27.1.7 C++ classes</H3>
|
||||
|
||||
|
||||
<p>
|
||||
|
|
@ -2261,7 +1955,7 @@ Ruby</em></a>.
|
|||
</p>
|
||||
|
||||
|
||||
<h2><a name="Ruby_nn29"></a>27.6 Typemaps</h2>
|
||||
<H2><a name="Ruby_nn29"></a>27.2 Typemaps</H2>
|
||||
|
||||
|
||||
<p>
|
||||
|
|
@ -2717,7 +2411,7 @@ for VALUE</h4>
|
|||
<div class="indent">pointer to array storage</div>
|
||||
|
||||
|
||||
<h4><a name="Ruby_nn37"></a>27.6.4.4 Exceptions</h4>
|
||||
<H4><a name="Ruby_nn37"></a>27.2.0.1 Exceptions</H4>
|
||||
|
||||
|
||||
<p>
|
||||
|
|
@ -2838,7 +2532,7 @@ interpreted as with <tt>printf()</tt>.
|
|||
</div>
|
||||
|
||||
|
||||
<h4><a name="Ruby_nn38"></a>27.6.4.5 Iterators</h4>
|
||||
<H4><a name="Ruby_nn38"></a>27.2.0.2 Iterators</H4>
|
||||
|
||||
|
||||
<p>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue