I have this paragraph as one srting , apllied below code as suggested by one of the member. words = "Kid games need to be both fun and educational. Aimed at ages pre-K through middle school, safe environment to discover their abilities and learn new skills with interactive and fun computer games. Our games build skills in math, logic, memory, vocabulary, alphabet, spelling, geography, computer skills, color identification, shape identification and other various problem solving. Our commitment to parents, teachers, and kids, is to connect earning and skill building with a sense of challenge, fun, and self esteem." line_length = 10 word_arry = words.split(" ") text = (0..(words.length / line_length)).inject([]) {|v,num| start num * line_length; v << %Q{<= #{words[(start)...(start + line_length)].join(" ")} =>}} text.join("\n") It cuts the string after every 10 characters into like this <= Kid games need to be both fun and educat =><= ional. Aimed at ages pre-K through middl =><= e school, safe environment to discover t =><heir abilities and learn new skills with =><= interactive and fun computer games. Our =><= games build skills in math, logic, memo =><= ry, vocabulary, alphabet, spelling, geog =><= raphy, computer skills, color identifica =><= tion, shape identification and other var =><= ious problem solving. Our commitment to =><= parents, teachers, and kids, is to conne =><= ct earning and skill building with a sen =><= se of challenge, fun, and self esteem. => What i need is the words remain uncut if it comes in the range like in first line i want eductaional to be complete if it is not in range than it wil show upto "and" any kind of help highly appreciated,its a urgent need.Please provide any way to it. Regards & thanks amit -- Posted via http://www.ruby-forum.com/.
Hi. I think what you want to do is word-wrapping across lines depending on line length. Here''s a pretty nice algorithm using a regular expression: class String def word_wrap(line_length=80) self.gsub(/(.{1,#{line_length}})(\s+|\Z)/, "\\1\n") end end What this does is put the word_wrap method onto the string class. So, you can do this: string_to_wrap = "Kid games need to be both fun and educational. Aimed at ages pre-K through middle school, safe environment to discover their abilities and learn new skills with interactive and fun computer games. Our games build skills in math, logic, memory, vocabulary, alphabet, spelling, geography, computer skills, color identification, shape identification and other various problem solving. Our commitment to parents, teachers, and kids, is to connect earning and skill building with a sense of challenge, fun, and self esteem." puts string_to_wrap.wrap If you want to change the number of characters that it will wrap at (ie line length), which defaults to 80... then specify it as an argument: puts string_to_wrap.wrap(10) Good luck, and remember that when posting questions to this list, it''s really good to carefully prepare your question. Julian. ---------------------------------------------- Learn: http://sensei.zenunit.com/ Last updated 20-May-09 (Rails, Basic Unix) Blog: http://random8.zenunit.com/ Twitter: http://twitter.com/random8r On 27/05/2009, at 5:15 PM, Ruby One wrote:> > I have this paragraph as one srting , apllied below code as > suggested by > one of the member. > > words = "Kid games need to be both fun and educational. Aimed at ages > pre-K through middle school, safe environment to discover their > abilities and learn new skills with interactive and fun computer > games. Our games build skills in math, logic, memory, vocabulary, > alphabet, spelling, geography, computer skills, color identification, > shape identification and other various problem solving. Our commitment > to parents, teachers, and kids, is to connect earning and skill > building with a sense of challenge, fun, and self esteem." > > line_length = 10 > > word_arry = words.split(" ") > > text = (0..(words.length / line_length)).inject([]) {|v,num| start > num * line_length; v << %Q{<= #{words[(start)...(start + > line_length)].join(" ")} =>}} > > text.join("\n") > > It cuts the string after every 10 characters into like this > > <= Kid games need to be both fun and educat =><= ional. Aimed at ages > pre-K through middl =><= e school, safe environment to discover t =><> heir > abilities and learn new skills with =><= interactive and fun computer > games. Our =><= games build skills in math, logic, memo =><= ry, > vocabulary, > alphabet, spelling, geog =><= raphy, computer skills, color identifica > =><= tion, > shape identification and other var =><= ious problem solving. Our > commitment > to =><= parents, teachers, and kids, is to conne =><= ct earning and > skill > building with a sen =><= se of challenge, fun, and self esteem. => > > > What i need is the words remain uncut if it comes in the range like in > first line i want eductaional to be complete if it is not in range > than > it wil show upto "and" > > > > any kind of help highly appreciated,its a urgent need.Please provide > any > way to it. > > Regards & thanks > > amit > -- > Posted via http://www.ruby-forum.com/. > > >
Julian Leviston wrote:> Hi. > > I think what you want to do is word-wrapping across lines depending on > line length. > > Here''s a pretty nice algorithm using a regular expression: > > class String > def word_wrap(line_length=80) > self.gsub(/(.{1,#{line_length}})(\s+|\Z)/, "\\1\n") > end > end > > What this does is put the word_wrap method onto the string class. > > So, you can do this: > > string_to_wrap = "Kid games need to be both fun and educational. Aimed > at ages pre-K through middle school, safe environment to discover > their abilities and learn new skills with interactive and fun computer > games. Our games build skills in math, logic, memory, vocabulary, > alphabet, spelling, geography, computer skills, color identification, > shape identification and other various problem solving. Our commitment > to parents, teachers, and kids, is to connect earning and skill > building with a sense of challenge, fun, and self esteem." > > puts string_to_wrap.wrap > > If you want to change the number of characters that it will wrap at > (ie line length), which defaults to 80... then specify it as an > argument: > > puts string_to_wrap.wrap(10) > > Good luck, and remember that when posting questions to this list, it''s > really good to carefully prepare your question. > > Julian. > > ---------------------------------------------- > Learn: http://sensei.zenunit.com/ > Last updated 20-May-09 (Rails, Basic Unix) > Blog: http://random8.zenunit.com/ > Twitter: http://twitter.com/random8rThanks julian for your help almost at the end, little help more. i used your regular expression line_length = 40 words = "Kid games need to be both fun and educational. Aimed at ages pre-K through middle school, safe environment to discover their abilities and learn new skills with interactive and fun computer games. Our games build skills in math, logic, memory, vocabulary, alphabet, spelling, geography, computer skills, color identification, shape identification and other various problem solving. Our commitment to parents, teachers, and kids, is to connect earning and skill building with a sense of challenge, fun, and self esteem." words = words.gsub(/(.{1,#{line_length}})(\s+|\Z)/, "<=\\1\n") words = words.sub(''<='', '''') abort words output Kid games need to be both fun and <=educational. Aimed at ages <=pre-K through middle school, safe <=environment to discover their <=abilities and learn new skills with <=interactive and fun computer <=games. Our games build skills in math, <=logic, memory, vocabulary, <=alphabet, spelling, geography, computer <=skills, color identification, <=shape identification and other various <=problem solving. Our commitment <=to parents, teachers, and kids, is to <=connect earning and skill <=building with a sense of challenge, fun, <=and self esteem. need to append "=>" at end of each line to like in startin. waiting for you last help Regards -- Posted via http://www.ruby-forum.com/.
words = "Kid games need to be both fun and educational. Aimed at ages pre-K through middle school, safe environment to discover their abilities and learn new skills with interactive and fun computer games. Our games build skills in math, logic, memory, vocabulary, alphabet, spelling, geography, computer skills, color identification, shape identification and other various problem solving. Our commitment to parents, teachers, and kids, is to connect earning and skill building with a sense of challenge, fun, and self esteem." word_arry = words.split(" ") count=0 line_text="<=" word_arry.each {|word| count+=word.length if count > 40 count=0 line_text+="=>\n<="+word+" " else end_txt = (count > 38) ? word : word+" " line_text+=end_txt end } line_text+="=>" puts line_text On Wed, May 27, 2009 at 5:23 PM, Ruby One <rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org>wrote:> > Julian Leviston wrote: > > Hi. > > > > I think what you want to do is word-wrapping across lines depending on > > line length. > > > > Here''s a pretty nice algorithm using a regular expression: > > > > class String > > def word_wrap(line_length=80) > > self.gsub(/(.{1,#{line_length}})(\s+|\Z)/, "\\1\n") > > end > > end > > > > What this does is put the word_wrap method onto the string class. > > > > So, you can do this: > > > > string_to_wrap = "Kid games need to be both fun and educational. Aimed > > at ages pre-K through middle school, safe environment to discover > > their abilities and learn new skills with interactive and fun computer > > games. Our games build skills in math, logic, memory, vocabulary, > > alphabet, spelling, geography, computer skills, color identification, > > shape identification and other various problem solving. Our commitment > > to parents, teachers, and kids, is to connect earning and skill > > building with a sense of challenge, fun, and self esteem." > > > > puts string_to_wrap.wrap > > > > If you want to change the number of characters that it will wrap at > > (ie line length), which defaults to 80... then specify it as an > > argument: > > > > puts string_to_wrap.wrap(10) > > > > Good luck, and remember that when posting questions to this list, it''s > > really good to carefully prepare your question. > > > > Julian. > > > > ---------------------------------------------- > > Learn: http://sensei.zenunit.com/ > > Last updated 20-May-09 (Rails, Basic Unix) > > Blog: http://random8.zenunit.com/ > > Twitter: http://twitter.com/random8r > > > Thanks julian for your help almost at the end, little help more. > > i used your regular expression > > line_length = 40 > words = "Kid games need to be both fun and educational. Aimed at > ages > pre-K through middle school, safe environment to discover their > abilities and learn new skills with interactive and fun computer > games. Our games build skills in math, logic, memory, vocabulary, > alphabet, spelling, geography, computer skills, color identification, > shape identification and other various problem solving. Our commitment > to parents, teachers, and kids, is to connect earning and skill > building with a sense of challenge, fun, and self esteem." > > words = words.gsub(/(.{1,#{line_length}})(\s+|\Z)/, "<=\\1\n") > words = words.sub(''<='', '''') > abort words > > output > > Kid games need to be both fun and > <=educational. Aimed at ages > <=pre-K through middle school, safe > <=environment to discover their > <=abilities and learn new skills with > <=interactive and fun computer > <=games. Our games build skills in math, > <=logic, memory, vocabulary, > <=alphabet, spelling, geography, computer > <=skills, color identification, > <=shape identification and other various > <=problem solving. Our commitment > <=to parents, teachers, and kids, is to > <=connect earning and skill > <=building with a sense of challenge, fun, > <=and self esteem. > > need to append "=>" at end of each line to like in startin. > > waiting for you last help > > Regards > -- > Posted via http://www.ruby-forum.com/. > > > >-- With regards, Arunkumar B. 9789980534. http://thinkingrails.blogspot.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 27/05/2009, at 9:59 PM, Arunkumar B wrote:> count=0 > line_text="<=" > word_arry.each {|word| > count+=word.length > if count > 40 > count=0 > line_text+="=>\n<="+word+" " > else > end_txt = (count > 38) ? word : word+" " > line_text+=end_txt > end > } > line_text+="=>" > > puts line_text >This goes to show very easily that you can write really bad code in any language. You have a beautiful set of iterators and other idiomatic ruby available to you. Why on earth would you denigrate ruby to working like a procedural language? Julian. ---------------------------------------------- Learn: http://sensei.zenunit.com/ Last updated 20-May-09 (Rails, Basic Unix) Blog: http://random8.zenunit.com/ Twitter: http://twitter.com/random8r> On Wed, May 27, 2009 at 5:23 PM, Ruby One <rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org > > wrote: > > Julian Leviston wrote: > > Hi. > > > > I think what you want to do is word-wrapping across lines > depending on > > line length. > > > > Here''s a pretty nice algorithm using a regular expression: > > > > class String > > def word_wrap(line_length=80) > > self.gsub(/(.{1,#{line_length}})(\s+|\Z)/, "\\1\n") > > end > > end > > > > What this does is put the word_wrap method onto the string class. > > > > So, you can do this: > > > > string_to_wrap = "Kid games need to be both fun and educational. > Aimed > > at ages pre-K through middle school, safe environment to discover > > their abilities and learn new skills with interactive and fun > computer > > games. Our games build skills in math, logic, memory, vocabulary, > > alphabet, spelling, geography, computer skills, color > identification, > > shape identification and other various problem solving. Our > commitment > > to parents, teachers, and kids, is to connect earning and skill > > building with a sense of challenge, fun, and self esteem." > > > > puts string_to_wrap.wrap > > > > If you want to change the number of characters that it will wrap at > > (ie line length), which defaults to 80... then specify it as an > > argument: > > > > puts string_to_wrap.wrap(10) > > > > Good luck, and remember that when posting questions to this list, > it''s > > really good to carefully prepare your question. > > > > Julian. > > > > ---------------------------------------------- > > Learn: http://sensei.zenunit.com/ > > Last updated 20-May-09 (Rails, Basic Unix) > > Blog: http://random8.zenunit.com/ > > Twitter: http://twitter.com/random8r > > > Thanks julian for your help almost at the end, little help more. > > i used your regular expression > > line_length = 40 > words = "Kid games need to be both fun and educational. Aimed at > ages > pre-K through middle school, safe environment to discover their > abilities and learn new skills with interactive and fun computer > games. Our games build skills in math, logic, memory, vocabulary, > alphabet, spelling, geography, computer skills, color identification, > shape identification and other various problem solving. Our commitment > to parents, teachers, and kids, is to connect earning and skill > building with a sense of challenge, fun, and self esteem." > > words = words.gsub(/(.{1,#{line_length}})(\s+|\Z)/, "<=\\1\n") > words = words.sub(''<='', '''') > abort words > > output > > Kid games need to be both fun and > <=educational. Aimed at ages > <=pre-K through middle school, safe > <=environment to discover their > <=abilities and learn new skills with > <=interactive and fun computer > <=games. Our games build skills in math, > <=logic, memory, vocabulary, > <=alphabet, spelling, geography, computer > <=skills, color identification, > <=shape identification and other various > <=problem solving. Our commitment > <=to parents, teachers, and kids, is to > <=connect earning and skill > <=building with a sense of challenge, fun, > <=and self esteem. > > need to append "=>" at end of each line to like in startin. > > waiting for you last help > > Regards > -- > Posted via http://www.ruby-forum.com/. > > > > > > -- > With regards, > Arunkumar B. > 9789980534. > http://thinkingrails.blogspot.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 27/05/2009, at 9:53 PM, Ruby One wrote:> > Thanks julian for your help almost at the end, little help more. > > i used your regular expression > > line_length = 40 > words = "Kid games need to be both fun and educational. Aimed at > ages > pre-K through middle school, safe environment to discover their > abilities and learn new skills with interactive and fun computer > games. Our games build skills in math, logic, memory, vocabulary, > alphabet, spelling, geography, computer skills, color identification, > shape identification and other various problem solving. Our commitment > to parents, teachers, and kids, is to connect earning and skill > building with a sense of challenge, fun, and self esteem." > > words = words.gsub(/(.{1,#{line_length}})(\s+|\Z)/, "<=\\1\n") > words = words.sub(''<='', '''') > abort words >Hi. Is it really too much work for you to work out what you need to do? class String def word_wrap(line_length=80) self.gsub(/(.{1,#{line_length}})(\s+|\Z)/, "<=\\1=>\n") end end Perhaps you should join http://sensei.zenunit.com/ Julian. ---------------------------------------------- Learn: http://sensei.zenunit.com/ Last updated 20-May-09 (Rails, Basic Unix) Blog: http://random8.zenunit.com/ Twitter: http://twitter.com/random8r> output > > Kid games need to be both fun and > <=educational. Aimed at ages > <=pre-K through middle school, safe > <=environment to discover their > <=abilities and learn new skills with > <=interactive and fun computer > <=games. Our games build skills in math, > <=logic, memory, vocabulary, > <=alphabet, spelling, geography, computer > <=skills, color identification, > <=shape identification and other various > <=problem solving. Our commitment > <=to parents, teachers, and kids, is to > <=connect earning and skill > <=building with a sense of challenge, fun, > <=and self esteem. > > need to append "=>" at end of each line to like in startin. > > waiting for you last help > > Regards > -- > 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 -~----------~----~----~----~------~----~------~--~---
Julian Leviston wrote:> On 27/05/2009, at 9:53 PM, Ruby One wrote: >> games. Our games build skills in math, logic, memory, vocabulary, >> alphabet, spelling, geography, computer skills, color identification, >> shape identification and other various problem solving. Our commitment >> to parents, teachers, and kids, is to connect earning and skill >> building with a sense of challenge, fun, and self esteem." >> >> words = words.gsub(/(.{1,#{line_length}})(\s+|\Z)/, "<=\\1\n") >> words = words.sub(''<='', '''') >> abort words >> > > Hi. > > Is it really too much work for you to work out what you need to do? > > > class String > def word_wrap(line_length=80) > self.gsub(/(.{1,#{line_length}})(\s+|\Z)/, "<=\\1=>\n") > end > end > > Perhaps you should join http://sensei.zenunit.com/ > > Julian. > > ---------------------------------------------- > Learn: http://sensei.zenunit.com/ > Last updated 20-May-09 (Rails, Basic Unix) > Blog: http://random8.zenunit.com/ > Twitter: http://twitter.com/random8rGreat it worked for me !! is there any solution to traverse a string character by charcater in ruby on rails. Regards amit -- Posted via http://www.ruby-forum.com/.
2009/5/27 Ruby One <rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org>> > Julian Leviston wrote: > > On 27/05/2009, at 9:53 PM, Ruby One wrote: > >> games. Our games build skills in math, logic, memory, vocabulary, > >> alphabet, spelling, geography, computer skills, color identification, > >> shape identification and other various problem solving. Our commitment > >> to parents, teachers, and kids, is to connect earning and skill > >> building with a sense of challenge, fun, and self esteem." > >> > >> words = words.gsub(/(.{1,#{line_length}})(\s+|\Z)/, "<=\\1\n") > >> words = words.sub(''<='', '''') > >> abort words > >> > > > > Hi. > > > > Is it really too much work for you to work out what you need to do? > > > > > > class String > > def word_wrap(line_length=80) > > self.gsub(/(.{1,#{line_length}})(\s+|\Z)/, "<=\\1=>\n") > > end > > end > > > > Perhaps you should join http://sensei.zenunit.com/ > > > > Julian. > > > > ---------------------------------------------- > > Learn: http://sensei.zenunit.com/ > > Last updated 20-May-09 (Rails, Basic Unix) > > Blog: http://random8.zenunit.com/ > > Twitter: http://twitter.com/random8r > > > Great it worked for me !! > > is there any solution to traverse a string character by charcater in > ruby on rails. >Have you tried looking through the documentation for the String class? See http://www.ruby-doc.org/core/classes/String.html Colin> > Regards > > amit > -- > 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 -~----------~----~----~----~------~----~------~--~---
Split your string to words like described. Then create an empty array of lines and an empty temporary string. Loop over your words. In the loop, pop a word off the words array and append it to the temp. String. Check for the length of it. If it is more than line_length push the temp. String to the lines array and break the loop, else do nothing. Repeat this until your words array is empty (this means another loop around the described one). While this is not as elegant as the solution posted before, it might be understandable by a novice programmer. 2009/5/27, Ruby One <rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org>:> > I have this paragraph as one srting , apllied below code as suggested by > one of the member. > > words = "Kid games need to be both fun and educational. Aimed at ages > pre-K through middle school, safe environment to discover their > abilities and learn new skills with interactive and fun computer > games. Our games build skills in math, logic, memory, vocabulary, > alphabet, spelling, geography, computer skills, color identification, > shape identification and other various problem solving. Our commitment > to parents, teachers, and kids, is to connect earning and skill > building with a sense of challenge, fun, and self esteem." > > line_length = 10 > > word_arry = words.split(" ") > > text = (0..(words.length / line_length)).inject([]) {|v,num| start > num * line_length; v << %Q{<= #{words[(start)...(start + > line_length)].join(" ")} =>}} > > text.join("\n") > > It cuts the string after every 10 characters into like this > > <= Kid games need to be both fun and educat =><= ional. Aimed at ages > pre-K through middl =><= e school, safe environment to discover t =><> heir > abilities and learn new skills with =><= interactive and fun computer > games. Our =><= games build skills in math, logic, memo =><= ry, > vocabulary, > alphabet, spelling, geog =><= raphy, computer skills, color identifica > =><= tion, > shape identification and other var =><= ious problem solving. Our > commitment > to =><= parents, teachers, and kids, is to conne =><= ct earning and > skill > building with a sen =><= se of challenge, fun, and self esteem. => > > > What i need is the words remain uncut if it comes in the range like in > first line i want eductaional to be complete if it is not in range than > it wil show upto "and" > > > > any kind of help highly appreciated,its a urgent need.Please provide any > way to it. > > Regards & thanks > > amit > -- > Posted via http://www.ruby-forum.com/. > > > >-- Von meinen Mobilgerät aus gesendet