Forum: Ruby to_yaml method

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.
Simon R. (Guest)
on 2007-04-07 19:28
(Received via mailing list)
Hello,

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

So, here is where I am : http://pastie.caboo.se/52303
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 :-)

Thanks in advance,
SonOfLilit (Guest)
on 2007-04-07 20:00
(Received via mailing list)
Check out http://RubyMentor.rubyfoge.org for exactly this kind of
help/advice.


Aur
Simon R. (Guest)
on 2007-04-07 20:19
(Received via mailing list)
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 :-)
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>:
SonOfLilit (Guest)
on 2007-04-07 20:49
(Received via mailing list)
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 :)


Aur
Chris C. (Guest)
on 2007-04-07 21:07
(Received via mailing list)
On 4/7/07, Simon R. <removed_email_address@domain.invalid> wrote:
> >
> > > So, how can I make this method prettier ?
> > >
> >
> >
>
>
> --
> Simon R., http://atonie.org/sr/
>
>

A few style notes.  The multiple assignment you do "tasks, projects =
Array.new, Array.new" 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 = @tasks.map {|x| x }
    projects = @projects.map {|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 = @tasks.map {|x| x }
        dump << @projects.map {|x| x }
        return YAML.dump(dump)

Hope that helps you some!
ChrisKaelin (Guest)
on 2007-04-08 02:55
(Received via mailing list)
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 :-)
>
> Thanks in advance,
>
> --
> Simon R.,http://purl.org/net/sr/

Hey cool! A GTD application in ruby. I'm looking forward to see this
project on rubyforge.org ;-)
This topic is locked and can not be replied to.