Explanation on some code


Today i looked at ruby for the first time.

I can’t quite figure out what this code is. Could someone give me an

‘some_file.html’ => [
‘Some text’,
‘Some more text’
‘some_other_file.html’ => [
‘other text’,
‘And even more text’
‘yet_another_file.html’ => [
[‘Last text’, 2]

Thanks a lot.

On Mon, Dec 1, 2008 at 2:34 PM, Michael Albers
[email protected] wrote:

‘Some more text’
Thanks a lot.

Posted via http://www.ruby-forum.com/.

It is a hash (literally specified at the RHS of the equal sign)
assigned to a constant, FILES.
The hash syntax is like the following

hash ::= ‘{’ key_value_pairs ‘}’ | ‘{’ ‘}’;
key_value_pairs ::= key “=>” value;
key ::= value ::= expression

Your expressions are made of string literals and lists.
Nough said
fire up irb and type in some simple expressions like

{‘a’ => 42}
x = [1,2,3]
y=%w{a b c }
h={ :symbol => x, “string” => y}


Ne baisse jamais la tête, tu ne verrais plus les étoiles.

Robert D. :wink:


It’s a HASH - code structure similar to array where you use as index
(and not number). Value of elements in hash are arrays

so for example:

FILES[‘some_other_file.html’] will giv you back array:

[‘other text’, ‘And even more text’]



P.S. Google: Ruby pragmatic programmer and find hash section

Thanks for the quick replies. I will figure it out now.


Robert D. wrote:

hash ::= ‘{’ key_value_pairs ‘}’ | ‘{’ ‘}’;
key_value_pairs ::= key “=>” value;
key ::= value ::= expression

You call it “key_value_pairs”, but don’t allow more than one pair. I
the above should read:
key_value_pairs ::= (key_value_pair ‘,’)* key_value_pair;
key_value_pair ::= key “=>” value;


U know, exercise left to the reader :wink:

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs