2006/5/10, stuart yarus <syarus / gmail.com>:
> On 5/10/06, corey konrad <0011 / hush.com> wrote:
> > another code example from my book doesnt work with the ruby interpreter
> >
> > parts = ("Part A" .. "Part G")
> > parts.length                # 7
>
> A range is a specification which can be used for making ordered lists
> ("lists" is not a ruby word).  You can't count the elements of a range
> because there aren't any, except for the two objects specifying the
> beginning and end of the range.
>
> You can make a "list" from a range.  In fact, you can make an array
> from a range and then count the objects in the array.
>
> For example:
>    parts = ("Part A" .. "Part G")
>    parts_array  = parts.to_a
>    parts.length          # -> 7
>
> which can be shortened to "parts.to_a.length".

Another nice way to do this is to use inject.  IMHO this
implementation could also go into Enumerable as a default
implementation:

>> ("Part A" .. "Part G").inject(0) {|s,| s+1}
=> 7

Kind regards

robert


--
Have a look: http://www.flickr.com/photos/fussel-foto/