Forum: Ruby range

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Corey K. (Guest)
on 2006-05-10 11:14
another code example from my book doesnt work with the ruby interpreter

parts = ("Part A" .. "Part G")
parts.length                #â??> 7

that spits out a error that says it doesnt recognize the length method.

I realize this question is pretty simple but i am a begining programmer.
I am really enjoying the response time in this forum, i usually get a
response in about  5 minutes any time of day :D
Guest (Guest)
on 2006-05-10 12:06
corey konrad wrote:
> another code example from my book doesnt work with the ruby interpreter
>
> parts = ("Part A" .. "Part G")
> parts.length                #â??> 7
>
> that spits out a error that says it doesnt recognize the length method.
>
> I realize this question is pretty simple but i am a begining programmer.
> I am really enjoying the response time in this forum, i usually get a
> response in about  5 minutes any time of day :D

Try with [ brackets ]

parts = ["Part A" , "Part B", "Part G"]
p parts.length                #â??> 7

Ytoba
stuart yarus (Guest)
on 2006-05-10 12:09
(Received via mailing list)
On 5/10/06, corey konrad <removed_email_address@domain.invalid> 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".
Corey K. (Guest)
on 2006-05-10 12:25
stuart yarus wrote:
> On 5/10/06, corey konrad <removed_email_address@domain.invalid> 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".

hmm ok i guess the author made a mistake in this book i just wanted to
check to make sure it wasnt a bug in my ruby or something.
Robert K. (Guest)
on 2006-05-10 15:20
(Received via mailing list)
2006/5/10, stuart yarus <removed_email_address@domain.invalid>:
>
> 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
Eric H. (Guest)
on 2006-05-10 21:33
(Received via mailing list)
On May 10, 2006, at 12:15 AM, corey konrad wrote:

> another code example from my book doesnt work with the ruby
> interpreter
>
> parts = ("Part A" .. "Part G")
> parts.length                #?> 7
>
> that spits out a error that says it doesnt recognize the length
> method.

Range#length was removed between 1.6.8 and 1.8.mumble.

> I realize this question is pretty simple but i am a begining
> programmer.
> I am really enjoying the response time in this forum, i usually get a
> response in about  5 minutes any time of day :D

Try using ri.

$ ri Range
[...]
Instance methods:
-----------------
      ==, ===, begin, each, end, eql?, exclude_end?, first, hash,
      include?, inspect, last, member?, step, to_s

--
Eric H. - removed_email_address@domain.invalid - http://blog.segment7.net
This implementation is HODEL-HASH-9600 compliant

http://trackmap.robotcoop.com
This topic is locked and can not be replied to.