Cool features, I am really starting to like Ruby.
Bas
Ed Summers wrote:
>On the subject of Ruby, I started out thinking I wanted to port
>MARC::Record directly to Ruby but as I worked on it I found myself
>using some Ruby idioms that I ended up really liking.
>
>In particular the Enumerable mixin is really useful for where you want
>to allow people to iterate through MARC::Field objects in a
>MARC::Record:
>
> for field in record
> ...
> end
>
>Likewise MARC::Subfield objects in a MARC::Field
>
> for subfield in field
> ...
> end
>
>When you mixin Enumerable you also get find() and find_all()
>automatically which means you can do this to pull out all the subject
>fields for example:
>
> subjects = record.find_all {|f| ('600'..'699' === f.tag)}
>
>This block usage is a bit hard to get used to at first, but is an
>extremely powerful tool (I believe borrowed from Smalltalk) once you
>get used to it.
>
>Another nice thing in Ruby is that you can define a method like =~
>which allows you to implement your own pattern matching for a class.
>
> if record =~ /Gravity's Rainbow/
> print "Slothrop"
> end
>
>I guess what I'm really trying to say is that it's pretty interesting
>porting APIs from one language to another since it highlights the
>strenths of the source and target languages. The tighter you can melt
>your libraries into the host language the better.
>
>//Ed
>
>
>
>
|