From: Chris Carter Date: 2007-04-08T02:06:34+09:00 Subject: Re: to_yaml method On 4/7/07, Simon Rozet wrote: > 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 : > > Check out http://RubyMentor.rubyfoge.org for exactly this kind of help/advice. > > > > > > Aur > > > > On 4/7/07, Simon Rozet wrote: > > > 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, > > > > > > -- > > > Simon Rozet, http://purl.org/net/sr/ > > > > > > > > > > > > > -- > Simon Rozet, 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! -- Chris Carter concentrationstudios.com brynmawrcs.com