[Ann] RueDoc: rdoc-hacks 0.1.2

Exciting news! :slight_smile:

rdoc-hacks got some new functionality: firstly, it is able to
RueDoc.fix data output by RDoc to add in missing method names
from C, something sorely missing from the previous version.

The second and far more exciting change is RueDoc.normalize,
which takes the data structure generated by RDoc and rearranges
it into a much more sensible one. This makes it much easier to
do arbitrary things with the data (see Examples for a plain YAML
dump of a structure). I included a description of the generated
data structure at the bottom of this message.

The frameless template underwent some minor changes, no real
new functionality. Still seems to suffer from previous problems.

Examples:
http://www.magical-cat.org/projects/ruedoc/yaml
http://www.magical-cat.org/projects/ruedoc/oughtve
http://www.magical-cat.org/projects/ruedoc/ruby-1.9

Download:
http://www.magical-cat.org/projects/ruedoc/download/ruedoc-0.1.2.tar.gz
http://www.magical-cat.org/projects/ruedoc/download/ruedoc-0.1.2.tar.bz2

Documentation:
http://www.magical-cat.org/projects/ruedoc/rdoc/

================| Normalized data format |====================

Calling RueDoc.normalize on the data generated by
RDoc (see below) generates this data structure:

聽聽聽modules: <as classes>
聽聽聽classes:

路路路

-
聽聽聽聽聽聽聽name: <name of the class>
聽聽聽聽聽聽聽parent: <parent class>
聽聽聽聽聽聽聽type: <class or module>
聽聽聽聽聽聽聽desc: <class description>
聽聽聽聽聽聽聽files:
聽聽聽聽聽聽聽聽聽-
聽聽聽聽聽聽聽聽聽聽聽path: <relative path to file where class defined>

聽聽聽聽聽聽聽constants:
聽聽聽聽聽聽聽聽聽-
聽聽聽聽聽聽聽聽聽聽聽name: <name of the constant>
聽聽聽聽聽聽聽聽聽聽聽value: <value of the constant>
聽聽聽聽聽聽聽聽聽聽聽desc: <description of the constant>

聽聽聽聽聽聽聽public_class_methods:
聽聽聽聽聽聽聽聽聽-
聽聽聽聽聽聽聽聽聽聽聽name: <method name>
聽聽聽聽聽聽聽聽聽聽聽params: <(parameters)>
聽聽聽聽聽聽聽聽聽聽聽desc: <description>
聽聽聽聽聽聽聽聽聽聽聽source: <source code>
聽聽聽聽聽聽聽聽聽聽聽example: <example of calling the method> # C methods only

聽聽聽聽聽聽聽protected_class_methods: <as above>
聽聽聽聽聽聽聽private_class_methods: <as above>
聽聽聽聽聽聽聽public_instance_methods: <as above>
聽聽聽聽聽聽聽protected_instance_methods: <as above>
聽聽聽聽聽聽聽private_instance_methods: <as above>

聽聽聽files:
聽聽聽聽聽-
聽聽聽聽聽聽聽name: <filename>
聽聽聽聽聽聽聽path: <relative path>
聽聽聽聽聽聽聽desc: <description>
聽聽聽聽聽聽聽modified: <modification timestamp>
聽聽聽聽聽聽聽requires:
聽聽聽聽聽聽聽聽聽-
聽聽聽聽聽聽聽聽聽聽聽name: <library name>

E

--
template<typename duck>
void quack(duck& d) { d.quack(); }

Terrible! Incorrect example URLs. Let us attempt again:

Examples:
http://www.magical-cat.org/projects/ruedoc/examples/yaml
http://www.magical-cat.org/projects/ruedoc/examples/oughtve
http://www.magical-cat.org/projects/ruedoc/examples/ruby-1.9

Download:
http://www.magical-cat.org/projects/ruedoc/download/ruedoc-0.1.2.tar.gz http://www.magical-cat.org/projects/ruedoc/download/ruedoc-0.1.2.tar.bz2

Documentation:
http://www.magical-cat.org/projects/ruedoc/rdoc/

ES wrote:

Exciting news! :slight_smile:

rdoc-hacks got some new functionality: firstly, it is able to
RueDoc.fix data output by RDoc to add in missing method names
from C, something sorely missing from the previous version.

The second and far more exciting change is RueDoc.normalize,
which takes the data structure generated by RDoc and rearranges
it into a much more sensible one. This makes it much easier to
do arbitrary things with the data (see Examples for a plain YAML
dump of a structure). I included a description of the generated
data structure at the bottom of this message.

The frameless template underwent some minor changes, no real
new functionality. Still seems to suffer from previous problems.

Examples:
http://www.magical-cat.org/projects/ruedoc/yaml
http://www.magical-cat.org/projects/ruedoc/oughtve
http://www.magical-cat.org/projects/ruedoc/ruby-1.9

Download:
http://www.magical-cat.org/projects/ruedoc/download/ruedoc-0.1.2.tar.gz
http://www.magical-cat.org/projects/ruedoc/download/ruedoc-0.1.2.tar.bz2

Documentation:
http://www.magical-cat.org/projects/ruedoc/rdoc/

================| Normalized data format |====================

Calling RueDoc.normalize on the data generated by
RDoc (see below) generates this data structure:

  modules: <as classes>
  classes:
    -
      name: <name of the class>
      parent: <parent class>
      type: <class or module>
      desc: <class description>
      files:
        -
          path: <relative path to file where class defined>

      constants:
        -
          name: <name of the constant>
          value: <value of the constant>
          desc: <description of the constant>

      public_class_methods:
        -
          name: <method name>
          params: <(parameters)>
          desc: <description>
          source: <source code>
          example: <example of calling the method> # C methods only

      protected_class_methods: <as above>
      private_class_methods: <as above>
      public_instance_methods: <as above>
      protected_instance_methods: <as above>
      private_instance_methods: <as above>

  files:
    -
      name: <filename>
      path: <relative path>
      desc: <description>
      modified: <modification timestamp>
      requires:
        -
          name: <library name>

E

路路路

--
template<typename duck>
void quack(duck& d) { d.quack(); }

Hello ES,

The second and far more exciting change is RueDoc.normalize,
which takes the data structure generated by RDoc and rearranges
it into a much more sensible one. This makes it much easier to
do arbitrary things with the data (see Examples for a plain YAML
dump of a structure). I included a description of the generated
data structure at the bottom of this message.

Did you work on the mny bugs in the ruby doc parser. Like skipping
inheritance classes, no differences between modules and classes, wrong
visibility declarations (not stored at all), infinite loops (for
rails) etc. ?

Or is anybody working on it instead of frontend hacks ?

路路路

--
Best regards, emailto: scholz at scriptolutions dot com
Lothar Scholz http://www.ruby-ide.com
CTO Scriptolutions Ruby, PHP, Python IDE 's

ES wrote:

[.. features, urls..]

Great stuff, thankyou. I needed this. The YAML which RDoc builds is a lot to sort through. This is just right. And the template you've got is totally handy. Well done.

_why

Lothar Scholz wrote:

Hello ES,

> The second and far more exciting change is RueDoc.normalize,
> which takes the data structure generated by RDoc and rearranges
> it into a much more sensible one. This makes it much easier to
> do arbitrary things with the data (see Examples for a plain YAML
> dump of a structure). I included a description of the generated
> data structure at the bottom of this message.

Did you work on the mny bugs in the ruby doc parser. Like skipping
inheritance classes, no differences between modules and classes, wrong
visibility declarations (not stored at all), infinite loops (for
rails) etc. ?

No. These are specifically hacks to ease the pain until I or someone
else comes up with a new, simple and workable documentation generator.
I will eventually take that up, time permitting, if no-one else does.

Or is anybody working on it instead of frontend hacks ?

Ryan Davis and Eric Hodel are tending to RDoc itself but
I could not venture a guess what their position might be.

E

路路路

--
template<typename duck>
void quack(duck& d) { d.quack(); }

Have you added those as bugs to Rdoc on RubyForge? If not, Eric and
Ryan won't have a clue what you think needs to be fixed. They've
accepted ownership of the process, but without bug reports, it's
difficult to schedule the time to fix the stuff, what with their day
jobs and all.

-austin

路路路

On 8/27/05, Lothar Scholz <mailinglists@scriptolutions.com> wrote:

Hello ES,
> The second and far more exciting change is RueDoc.normalize,
> which takes the data structure generated by RDoc and rearranges
> it into a much more sensible one. This makes it much easier to
> do arbitrary things with the data (see Examples for a plain YAML
> dump of a structure). I included a description of the generated
> data structure at the bottom of this message.
Did you work on the mny bugs in the ruby doc parser. Like skipping
inheritance classes, no differences between modules and classes, wrong
visibility declarations (not stored at all), infinite loops (for
rails) etc. ?

Or is anybody working on it instead of frontend hacks ?

--
Austin Ziegler * halostatue@gmail.com
               * Alternate: austin@halostatue.ca

ES wrote:

Terrible! Incorrect example URLs. Let us attempt again:

At least one of the URLs is still broken

http://www.magical-cat.org/projects/ruedoc/download/ruedoc-0.1.2.tar.gz

Not Found
The requested URL /projects/ruedoc/download/ruedoc-0.1.2.tar.gz was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

James

James Britt wrote:

ES wrote:

Terrible! Incorrect example URLs. Let us attempt again:

At least one of the URLs is still broken

Well, crikey.

http://www.magical-cat.org/projects/ruedoc/downloads/ruedoc-0.1.2.tar.gz
http://www.magical-cat.org/projects/ruedoc/downloads/ruedoc-0.1.2.tar.bz2

http://www.magical-cat.org/projects/ruedoc/download/ruedoc-0.1.2.tar.gz

Not Found
The requested URL /projects/ruedoc/download/ruedoc-0.1.2.tar.gz was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

James

E

路路路

--
template<typename duck>
void quack(duck& d) { d.quack(); }

Try http://www.magical-cat.org/projects/ruedoc/downloads/