Word wrap: Difference between revisions

15 bytes removed ,  10 months ago
m
(→‎{{header|C}}: Add a simple in-place method)
Line 5,883:
<syntaxhighlight lang="ruby">class String {
method wrap(width) {
var txt = self.gsub(/\s+/, " ");
var len = txt.len;
var para = [];
var i = 0;
while (i < len) {
var j = (i + width);
while ((j < len) && (txt.char_at(j)  != ' ')) { --j };
para.append(txt.substr(i, j-i));
i = j+1;
};
return para.join("\n");
}
}
 
var text = 'aaa bb cc ddddd';
say text.wrap(6);</syntaxhighlight>
 
{{out}}
Line 5,934:
root << [
array.first(i+1).join(' '),
self.prepare_words(array.ftslice(i+1), depth+1, callback)
]
 
Line 5,977:
self.combine([], path, { |combination|
var score = 0
combination.ftfirst(0, -21).each { |line|
score += (width - line.len -> sqr)
}
Line 5,991:
}
}
 
var sww = SmartWordWrap();
 
var words = %w(aaa bb cc ddddd);
var wrapped = sww.wrap(words, 6);
 
say wrapped;</syntaxhighlight>
{{out}}
<pre>
2,747

edits