Just in case someone would like to contribute ideas of elegant code:
PROBLEM:
Given a string of lines (for example, "abc\nde\nfgh\n") and a number n,
produce a string of the same lines, but each line indented by n spaces.
If the original string does NOT end in \n, it is OK (but not required)
to have it ending in \n in the result.
Speed is not an issue; I'm mainly looking EITHER for compact/elegant
code in Core Ruby (noing well that elegance is a very subjective
criterium), OR for some library function which already has solved this.
Here is my own (pretty straightforward) solution to the problem:
def indent(n,s)
(s.split.map {|x| (' '*n)+x}.join("\n"))+"\n"
end
This works, so the only reason I'm posting this, is to learn about
alternative ways of doing this.
On Sep 19, 2007, at 1:13 PM, Ronald Fischer wrote:
Just in case someone would like to contribute ideas of elegant code:
PROBLEM:
Given a string of lines (for example, "abc\nde\nfgh\n") and a number n,
produce a string of the same lines, but each line indented by n spaces.
If the original string does NOT end in \n, it is OK (but not required)
to have it ending in \n in the result.
Speed is not an issue; I'm mainly looking EITHER for compact/elegant
code in Core Ruby (noing well that elegance is a very subjective
criterium), OR for some library function which already has solved this.
Here is my own (pretty straightforward) solution to the problem:
def indent(n,s)
(s.split.map {|x| (' '*n)+x}.join("\n"))+"\n"
end
On Sep 19, 6:13 am, "Ronald Fischer" <ronald.fisc...@venyon.com> wrote:
Just in case someone would like to contribute ideas of elegant code:
PROBLEM:
Given a string of lines (for example, "abc\nde\nfgh\n") and a number n,
produce a string of the same lines, but each line indented by n spaces.
If the original string does NOT end in \n, it is OK (but not required)
to have it ending in \n in the result.
Speed is not an issue; I'm mainly looking EITHER for compact/elegant
code in Core Ruby (noing well that elegance is a very subjective
criterium), OR for some library function which already has solved this.
Here is my own (pretty straightforward) solution to the problem:
def indent(n,s)
(s.split.map {|x| (' '*n)+x}.join("\n"))+"\n"
end
This works, so the only reason I'm posting this, is to learn about
alternative ways of doing this.
something like this?
str.gsub(/\b(\w+)/) {|word| ' '*n + word}
···
On 9/19/07, Ronald Fischer <ronald.fischer@venyon.com> wrote:
Just in case someone would like to contribute ideas of elegant code:
PROBLEM:
Given a string of lines (for example, "abc\nde\nfgh\n") and a number n,
produce a string of the same lines, but each line indented by n spaces.
If the original string does NOT end in \n, it is OK (but not required)
to have it ending in \n in the result.
Speed is not an issue; I'm mainly looking EITHER for compact/elegant
code in Core Ruby (noing well that elegance is a very subjective
criterium), OR for some library function which already has solved this.
Here is my own (pretty straightforward) solution to the problem:
def indent(n,s)
(s.split.map {|x| (' '*n)+x}.join("\n"))+"\n"
end
This works, so the only reason I'm posting this, is to learn about
alternative ways of doing this.
Ronald
--
Ronald Fischer <ronald.fischer@venyon.com>
Phone: +49-89-452133-162