To_yaml method



In order to learn Ruby, I am trying to write a Getting Things Done
manager in Ruby+YAML.

So, here is where I am :
Be carefull… Store#to_yaml is realy ugly !
So, how can I make this method prettier ?

BTW, this is probably not the only ugly method… so feel free to
correct me, it’ll
help me to learn the Ruby Way :slight_smile:

Thanks in advance,


Check out for exactly this kind of



Thanks. I feel a bit uncomfortable with having a mentor (I don’t know
exactly why… maybe that’s too easy ?) but I’ll try to contact a
mentor and see what happen :slight_smile:
BTW, the concept is realy interesting… IMHO having a mentor is the
best way to learn something. AFAIK I haven’t seen project like this on
other porgramming language communauty.

2007/4/7, SonOfLilit removed_email_address@domain.invalid:


Thank you.

Don’t be uncomfortable, the worst that could happen is nothing.

I agree that the concept is interesting and great, and I, too, think
it’s original.

Hopefully you’ll join the rank of mentors soon :slight_smile:



On 4/7/07, Simon R. removed_email_address@domain.invalid wrote:

So, how can I make this method prettier ?

Simon R.,

A few style notes. The multiple assignment you do “tasks, projects =,” is usually done on two lines, just for
readability, and dropping some complexity. Also you can just assign
to [], which gives you a blank array ({} for hashes).

@projects.each_pair { |k, v| projects << v }
@tasks.each_pair { |k, v| tasks << v }

Can be replaced with

tasks = {|x| x }
projects = {|x| x }

With this you can also drop the array initialization. This method is
in the Enumerable module, which Hash and Array mixin. You could even
make it just be

    dump = {|x| x }
    dump << {|x| x }
    return YAML.dump(dump)

Hope that helps you some!


On Apr 7, 5:27 pm, “Simon R.” removed_email_address@domain.invalid wrote:

correct me, it’ll
help me to learn the Ruby Way :slight_smile:

Thanks in advance,

Simon R.,

Hey cool! A GTD application in ruby. I’m looking forward to see this
project on :wink: