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/