Sha256: d89e61f451f27c965a25440d49e2d2a2833a3f3a61b8c3007b95edef785f87cd
Contents?: true
Size: 738 Bytes
Versions: 124
Compression:
Stored size: 738 Bytes
Contents
# frozen_string_literal: true class ReeText::SafeJoin include Ree::FnDSL fn :safe_join do link :escape_html end DEFAULTS = { sep: "$" } doc(<<~DOC) This method returns an string similar to what <tt>Array#join</tt> would return. The array is flattened, and all items, including the supplied separator, are HTML escaped. safe_join(["<p>foo</p>", "<p>bar</p>"], sep: "<br />") # => "<p>foo</p><br /><p>bar</p>" DOC contract( Array, Ksplat[ sep?: String ] => String ) def call(array, **opts) options = DEFAULTS.merge(opts) sep = escape_html(options[:sep]) array.flatten.map { |i| escape_html(i) }.join(sep) end end
Version data entries
124 entries across 124 versions & 1 rubygems