Sha256: 27e784344e2111f6a03c9e4038a8fa8e644b3fe2fc77a98ba3739366b8a09e3e
Contents?: true
Size: 1.09 KB
Versions: 2
Compression:
Stored size: 1.09 KB
Contents
# frozen_string_literal: true require 'cgi' module HS module ElementPreview def text_preview(text) return unless text CGI.escapeHTML(text) end def element_preview(tag_name, params, children) [ element_start(tag_name, params, children), element_content(children), element_end(tag_name, children) ].join end def wrap_into_tag(tag_name, params) children = yield [ element_start(tag_name, params, children), children.join(''), element_end(tag_name, children) ].join end private def element_start(tag, params, children) start = "<#{tag}" unless params.empty? params_str = params.map { |k, v| "#{k}=\"#{v}\"" }.join(' ') start = "#{start} #{params_str}" end return "#{start} />" if children.empty? "#{start}>" end def element_content(children) return if children.empty? children.map(&:preview).compact.join end def element_end(tag, children) return if children.empty? "</#{tag}>" end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
hs-cli-0.3.3 | lib/hs/preview/element_preview.rb |
hs-cli-0.3.2 | lib/hs/preview/element_preview.rb |