Class: Serialbench::Serializers::Html::BaseHtmlSerializer
Class Method Summary
collapse
Instance Method Summary
collapse
#get_version, #initialize, #parse, #require_library, #stream_parse, #supports?
Class Method Details
9
10
11
|
# File 'lib/serialbench/serializers/html/base_html_serializer.rb', line 9
def self.format
:html
end
|
Instance Method Details
#capabilities ⇒ Object
13
14
15
|
# File 'lib/serialbench/serializers/html/base_html_serializer.rb', line 13
def capabilities
super | Set.new(%i[dom parse generate])
end
|
#features ⇒ Object
17
18
19
20
21
22
|
# File 'lib/serialbench/serializers/html/base_html_serializer.rb', line 17
def features
{
html5: supports?(:html5),
xpath: supports?(:xpath)
}
end
|
#from_hash(hash) ⇒ Object
28
29
30
31
32
33
34
35
36
|
# File 'lib/serialbench/serializers/html/base_html_serializer.rb', line 28
def from_hash(hash)
rows = hash.flat_map do |key, value|
case value
when Hash then value.map { |k, v| "<tr><td>#{k}</td><td>#{v}</td></tr>" }
else ["<tr><td>#{key}</td><td>#{value}</td></tr>"]
end
end
serialize_document(parse("<html><body><table>#{rows.join}</table></body></html>"))
end
|
#generate(data) ⇒ Object
24
25
26
|
# File 'lib/serialbench/serializers/html/base_html_serializer.rb', line 24
def generate(data)
data.is_a?(Hash) ? from_hash(data) : serialize_document(data)
end
|