Hi, This is kind of weird thing, I cannot explain it, but I will show you my code - this would explain it better. I have a helper method: def month_in_words(month) logger.debug(month) Time.parse(month).strftime("%b") end and in my view I have: <% @array.each do | ar | %> <%= month_in_words(ar) %> <% end %> The result I''m getting in the view is the same for every call to helper method month_in_words even if it''s getting different value in the parameter? View:> Jun > Jun > Jun > JunDebugger (from ruby script/server console):> 06 > 05 > 04 > 03Why do I keep getting Jun, is this a error within RubyonRails or is it something I did not understand yet? Please explain :) -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Jamal, Your code does explain what''s going on. Time.parse is not returning what you would expect because you are passing in just the String representation of a month (rather than of a complete date). An easy way to make it do what you want is to tack on a day to the end of the string. For instance (in IRB): >> Time.parse("03") => Sat Jun 02 12:46:40 CDT 2007 >> Time.parse("04") => Sat Jun 02 12:46:44 CDT 2007 >> Time.parse("03/01") => Thu Mar 01 00:00:00 CST 2007 >> Time.parse("04/01") => Sun Apr 01 00:00:00 CDT 2007 >> Time.parse("04/01").strftime("%b") => "Apr" I hope this helps, David On Jun 2, 2007, at 12:15 PM, Jamal Soueidan wrote:> > Hi, > > This is kind of weird thing, I cannot explain it, but I will show > you my > code - this would explain it better. > > I have a helper method: > > def month_in_words(month) > logger.debug(month) > Time.parse(month).strftime("%b") > end > > and in my view I have: > > <% @array.each do | ar | %> > <%= month_in_words(ar) %> > <% end %> > > The result I''m getting in the view is the same for every call to > helper > method month_in_words even if it''s getting different value in the > parameter? > > View: >> Jun >> Jun >> Jun >> Jun > > Debugger (from ruby script/server console): >> 06 >> 05 >> 04 >> 03 > > Why do I keep getting Jun, is this a error within RubyonRails or is it > something I did not understand yet? > > Please explain :) > > -- > Posted via http://www.ruby-forum.com/. > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
David Altenburg wrote:> Jamal, > > Your code does explain what''s going on. Time.parse is not returning > what you would expect because you are passing in just the String > representation of a month (rather than of a complete date). An easy > way to make it do what you want is to tack on a day to the end of the > string. > > For instance (in IRB): > > >> Time.parse("03") > => Sat Jun 02 12:46:40 CDT 2007 > >> Time.parse("04") > => Sat Jun 02 12:46:44 CDT 2007 > >> Time.parse("03/01") > => Thu Mar 01 00:00:00 CST 2007 > >> Time.parse("04/01") > => Sun Apr 01 00:00:00 CDT 2007 > >> Time.parse("04/01").strftime("%b") > => "Apr" > > I hope this helps, > > DavidThanks, That kind of weird, I just added a year and it helps. Why is that? Since I''m passing it different month number as a string, shouldn''t it look at them as separate numbers as strings? -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On Jun 2, 2007, at 1:59 PM, Jamal Soueidan wrote:> > David Altenburg wrote: >> Jamal, >> >> Your code does explain what''s going on. Time.parse is not returning >> what you would expect because you are passing in just the String >> representation of a month (rather than of a complete date). An easy >> way to make it do what you want is to tack on a day to the end of the >> string. >> >> For instance (in IRB): >> >>>> Time.parse("03") >> => Sat Jun 02 12:46:40 CDT 2007 >>>> Time.parse("04") >> => Sat Jun 02 12:46:44 CDT 2007 >>>> Time.parse("03/01") >> => Thu Mar 01 00:00:00 CST 2007 >>>> Time.parse("04/01") >> => Sun Apr 01 00:00:00 CDT 2007 >>>> Time.parse("04/01").strftime("%b") >> => "Apr" >> >> I hope this helps, >> >> David > > Thanks, That kind of weird, I just added a year and it helps. Why is > that? Since I''m passing it different month number as a string, > shouldn''t > it look at them as separate numbers as strings?Well, the problem is that when you only pass Time.parse a single number, it does not know how to interpret that. Is it a month? A year? A day? There''s no real way to tell. The way Time.parse works is it tries to match the string you pass in against a series of patterns. Most of the time, it does what you want. (i.e., if a person could tell how to interpret the string as a date, Time.parse probably will be able to as well). The exact details of how it does the matching, however, are complex. The best place to look is probably the source code -- see the _parse method in date/format.rb in the standard libs if you want to see exactly what it''s doing -- there''s a lot of code there, but it''s pretty readable, as long as you grok regular expressions. Thanks, David L Altenburg http://gensym.org --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---