From: Just Another Victim of the Ambient Morality Date: 2007-07-12T03:25:00+09:00 Subject: Re: How to repeat string patterns in Ruby? "Jano Svitok" wrote in message news:8d9b3d920706201328s697fbbaoe1c5e52cab21b9b1@mail.gmail.com... > On 6/19/07, Robert Klemme wrote: >> On 19.06.2007 02:53, Just Another Victim of the Ambient Morality wrote: >> > I have some funky Python code that I'm trying to modify but it's >> > formatted with spaces instead of tabs, making it impossible to change. >> > Now, >> > there may be many different ways to solve this problem but the first >> > impulse >> > I had was to write a small Ruby script to reformat the code. >> > Now, a certain pattern came up in my solution that I have seen >> > before. >> > I wanted to do something like this: >> > >> > num_tabs = num_spaces / tab_width >> > tabs = num_tabs.collect { "\t" }.join >> > >> > ...but I discovered that there is not collect method in the integer >> > object. The best I could come up with was: >> > >> > tabs = '' >> > num_tabs.times { tabs << "\t" } >> > >> > Is there a more succinct, more Ruby-esque way to do this? >> > Thank you... >> >> $ expand --help >> Usage: expand [OPTION]... [FILE]... >> Convert tabs in each FILE to spaces, writing to standard output. >> With no FILE, or when FILE is -, read standard input. >> >> Mandatory arguments to long options are mandatory for short options too. >> -i, --initial do not convert tabs after non blanks >> -t, --tabs=NUMBER have tabs NUMBER characters apart, not 8 >> -t, --tabs=LIST use comma separated list of explicit tab positions >> --help display this help and exit >> --version output version information and exit >> >> Report bugs to . >> >> :-) > > Maybe this one would be better: > > unexpand --help > Usage: unexpand [OPTION]... [FILE]... > Convert blanks in each FILE to tabs, writing to standard output. > With no FILE, or when FILE is -, read standard input. > > Mandatory arguments to long options are mandatory for short options too. > -a, --all convert all blanks, instead of just initial blanks > --first-only convert only leading sequences of blanks (overrides -a) > -t, --tabs=N have tabs N characters apart instead of 8 (enables -a) > -t, --tabs=LIST use comma separated LIST of tab positions (enables -a) > --help display this help and exit > --version output version information and exit > > Report bugs to . > > :) All useful information, thank you...