Это - потому что к любому повторяемому можно присоединиться, не только перечисляет, но и результатом и "столяром" всегда являются строки.
, Например:
import urllib2
print('\n############\n'.join(
urllib2.urlopen('http://data.stackexchange.com/users/7095')))
Я не видел такого плагина, но был аналогичный вопрос , который мог бы служить основой для библиотеки или вспомогательной функции.
Как вы покажите, что функция, кажется, помещает ее как расширение к String: если вы действительно не хотите иметь возможность делать это вне представления, я был бы склонен использовать функцию в application_helper.rb
. Что-то вроде этого, может быть?
module ApplicationHelper
def smart_truncate(s, opts = {})
opts = {:words => 12}.merge(opts)
if opts[:sentences]
return s.split(/\.(\s|$)+/)[0, opts[:sentences]].map{|s| s.strip}.join('. ') + '.'
end
a = s.split(/\s/) # or /[ ]+/ to only split on spaces
n = opts[:words]
a[0...n].join(' ') + (a.size > n ? '...' : '')
end
end
smart_truncate("a b c. d e f. g h i.", :sentences => 2) #=> "a b c. d e f."
smart_truncate("apple blueberry cherry plum", :words => 3) #=> "apple blueberry cherry..."