Ruby Koans: about_hashes.rb

Question about this method in Ruby Koans -> about_hashes.rb

def test_changing_hashes
    hash = { :one => "uno", :two => "dos" }
    hash[:one] = "eins"

    expected = { :one => "eins", :two => "dos" }
    assert_equal true, expected == hash

    # Bonus Question: Why was "expected" broken out into a variable
    # rather than used as a literal?
end

Referring to the bonus question, is there any reason other than that
it's more readable this way? Seems to accomplish the same thing?

···

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

That sounds about right. Readability.

···

On Wed, Dec 8, 2010 at 11:55, Ilya B. <ilyabe@gmail.com> wrote:

Question about this method in Ruby Koans -> about_hashes.rb

def test_changing_hashes
   hash = { :one => "uno", :two => "dos" }
   hash[:one] = "eins"

   expected = { :one => "eins", :two => "dos" }
   assert_equal true, expected == hash

   # Bonus Question: Why was "expected" broken out into a variable
   # rather than used as a literal?
end

Referring to the bonus question, is there any reason other than that
it's more readable this way? Seems to accomplish the same thing?

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

If that were true, shouldn't it be:
assert_equal expected , hash

I think it is probably a mistake, and they meant to try and show that you
can't do either of these, because it looks like you are passing a block.
assert_equal { :one => "eins", :two => "dos" } , hash
assert { :one => "eins", :two => "dos" } == hash

···

On Wed, Dec 8, 2010 at 5:38 PM, skim <skim.la@gmail.com> wrote:

That sounds about right. Readability.

On Wed, Dec 8, 2010 at 11:55, Ilya B. <ilyabe@gmail.com> wrote:

> Question about this method in Ruby Koans -> about_hashes.rb
>
> def test_changing_hashes
> hash = { :one => "uno", :two => "dos" }
> hash[:one] = "eins"
>
> expected = { :one => "eins", :two => "dos" }
> assert_equal true, expected == hash
>
> # Bonus Question: Why was "expected" broken out into a variable
> # rather than used as a literal?
> end
>
> Referring to the bonus question, is there any reason other than that
> it's more readable this way? Seems to accomplish the same thing?
>
> --
> Posted via http://www.ruby-forum.com/\.
>
>

Josh Cheek wrote in post #968452:

···

On Wed, Dec 8, 2010 at 5:38 PM, skim <skim.la@gmail.com> wrote:

> expected = { :one => "eins", :two => "dos" }
> Posted via http://www.ruby-forum.com/\.
>
>

If that were true, shouldn't it be:
assert_equal expected , hash

I think it is probably a mistake, and they meant to try and show that
you
can't do either of these, because it looks like you are passing a block.
assert_equal { :one => "eins", :two => "dos" } , hash
assert { :one => "eins", :two => "dos" } == hash

Now, this makes sense. Thanks. Ruby Koans is great, but I think it
should have some explanation in comments about why

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

Josh Cheek wrote in post #968452:

···

On Wed, Dec 8, 2010 at 5:38 PM, skim <skim.la@gmail.com> wrote:

> expected = { :one => "eins", :two => "dos" }
> Posted via http://www.ruby-forum.com/\.
>
>

If that were true, shouldn't it be:
assert_equal expected , hash

I think it is probably a mistake, and they meant to try and show that
you
can't do either of these, because it looks like you are passing a block.
assert_equal { :one => "eins", :two => "dos" } , hash
assert { :one => "eins", :two => "dos" } == hash

Now, this makes sense. Thanks. Ruby Koans is great, but I think it
should have some explanation in comments about the concept.

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