[ann] yaml4r 0.26

Here’s a quick notice to those of you who are following the YamlForRuby project.
Version 0.26 is out. See the list of changes since 0.20 below. Thanks to those who have
submitted patches and given assistance to help this project. Especially Robert Wagner
and Aleksi Niemelä. Thanks, guys.

_why

#YAML:1.0

  • version: 0.26
    date: 2002-07-23
    changes:

    • Fixed Timestamps to handle single character usec.
    • Complete spec now in YTS.
  • version: 0.25
    date: 2002-07-21
    changes:

    • New Object#to_yaml provides a good generic export for most Ruby objects.
    • Fixes to the TrueClass, FalseClass, NilClass export methods.
    • Test harness for the YTS (YamlTestingSuite).
    • Distribution now includes yaml4r.rb directly, use --force to remake.
  • version: 0.24
    date: 2002-07-17
    changes:

    • Started CHM output for Yod.
    • Better support for multiline scalars, multiline double-quoted strings, and multiline single-quoted strings.
    • Cleaned up the parser code, its indentation and comments.
  • version: 0.23
    date: 2002-07-16
    changes:

    • Major fixes to the Time emitter and parser. Time zones should work.
    • Fixes to indentation at the start of a document.
    • More Yod work.
  • version: 0.22
    date: 2002-07-16
    changes:

    • Started Yod documentation.
    • Working to fix indentation problems.
  • version: 0.21
    date: 2002-07-15
    changes:

    • Private types now available via add_private_type or returns a PrivateType class.
    • URI escaping.
    • All ruby types now registered under the ruby.yaml.org domain as the spec describes.
    • Fixed double-quoted string ending on last character of the document.

Here’s a quick notice to those of you who are following the YamlForRuby
project. Version 0.26 is out. See the list of changes since 0.20 below.

How about a short summary for the rest of us who have no idea what yaml is
… or at least a URL.

http://www.yaml.org

YAML is a serialization scheme that uses human-readable (and editable)
text as is representation.

It allows arbitrarily complicated structures to be serialized, and
uses indentation to denote structure nesting.

From the yaml.org web site:

YAML™ (rhymes with “camel”) is a straightforward machine parsable
data serialization format designed for human readability and
interaction with scripting languages such as Perl and Python. YAML is
optimized for data serialization, configuration settings, log files,
Internet messaging and filtering. YAML™ is a balance of the
following design goals:

YAML documents are very readable by humans.
YAML interacts well with scripting languages.
YAML uses host languages’ native data structures.
YAML has a consistent information model.
YAML enables stream-based processing.
YAML is expressive and extensible.
YAML is easy to implement.

···

On Wednesday 24 July 2002 07:58 am, Kurt V. Hindenburg wrote:

Here’s a quick notice to those of you who are following the
YamlForRuby project. Version 0.26 is out. See the list of
changes since 0.20 below.

How about a short summary for the rest of us who have no idea what
yaml is … or at least a URL.


Ned Konz
http://bike-nomad.com
GPG key ID: BEEA7EFE

yOn Wed, 24 Jul 2002, Kurt V. Hindenburg wrote:

Date: Wed, 24 Jul 2002 23:58:13 +0900
From: Kurt V. Hindenburg khindenburg@cherrynebula.net
Reply-To: ruby-talk@ruby-lang.org
To: ruby-talk ML ruby-talk@ruby-lang.org
Subject: Re: [ANN] YAML4R 0.26

Here’s a quick notice to those of you who are following the YamlForRuby
project. Version 0.26 is out. See the list of changes since 0.20 below.

How about a short summary for the rest of us who have no idea what yaml is
… or at least a URL.

I was going to ask the same thing actually.

-Chris

How about a short summary for the rest of us who have no idea what
yaml is … or at least a URL.

http://www.yaml.org

YAML is a serialization scheme that uses human-readable (and editable)
text as is representation.

There is an article on XML.com about YAML, “Look Ma, No Tags”

http://www.xml.com/pub/a/2002/07/24/yaml.html

I’ve been spending less time with XML than my Magic 8-Ball ™ lead me to
expect, but have been looking at blogging & wiki software. In particular,
I’m interested in “magic markup”, or the implied markup that exists by
convention. Wikis, for example, are smart enough to interpret linefeeds,
indentation, and various simple characters as instructions to create more
sophisticated markup.

I was motivated to write some add-ons for Cherry Blosxom, and one of my
goals was to allow people (i.e., me) to do things without thinking too much
about what the software needs. For example, I wanted my site
(www.jamesbritt.com) to have a sidebar, with assorted boxes for things like
links, my reading list, whatever. The box content is processed much like a
set of sub-blogs, but the user can define what class handles the rendering
from text to HTML. I started using a config file for this, but it’s too
much work. Now, the code figures out what directories hold sidebar content
based on a directory naming convention. Any directory that contains '.box’
is assumed to be sidebar box. The contents of the directory are rendered
using a default rendering class.

If ‘.box’ is followed by anything else, that is taken as the name of the
class to render that particular sidebar box. Whatever comes before '.box’
is the title of the box.

SomeTitle.box.RenderWithThisClass

So, the code uses some implied markup, allowing users to remain blissfully
oblivious if they prefer. Certainly better than a separate file with

boxdir=SomeTitle.box.RenderWithThisClass
title= Some Title
renderingClass=RenderWithThisClass

(Another to look at this is that the blogging directory itself becomes the
configuration file, with file and directory entries server as config
entries.)

Ruby makes this very easy to do. Dynamic loading of classes and method
calls means any input is a potential mini-language.

The next step is to improve Cherry Blosxom’s parsing of the main blogging
content. There’s too much reliance on explict markup. I don’t know if YAML
will figure into this, but certainly the idea of lightweight markup is
important.

James Britt