module Hanami
module Helpers
module HtmlHelper
# HTML Fragment
#
# @since 0.2.6
# @api private
#
# @see Hanami::Helpers::HtmlHelper::HtmlFragment
class HtmlFragment
# Initialize a HTML Fragment
#
# @param blk [Proc,Hanami::Helpers::HtmlHelper::HtmlBuilder,NilClass] the content block
#
# @return [Hanami::Helpers::HtmlHelper::HtmlFragment]
def initialize(&blk)
@builder = HtmlBuilder.new
@blk = blk
end
# Resolve and return the output
#
# @return [String] the output
#
# @since 0.2.6
# @api private
#
# @see Hanami::Helpers::HtmlHelper::EmptyHtmlNode#to_s
def to_s
content.to_s
end
def content
result = @builder.resolve(&@blk)
if @builder.nested?
@builder.to_s
else
"#{ Utils::Escape.html(result) }"
end
end
end
end
end
end