class WrapIt::HTMLData
Provides hash-like access to HTML
data.
@author Alexey Ovchinnikov <alexiss@cybernetlab.ru>
Public Class Methods
new(**value)
click to toggle source
Calls superclass method
# File lib/wrap_it/html_data.rb, line 34 def initialize(**value) super(HTMLData.sanitize(**value)) end
sanitize(**values)
click to toggle source
Sanitizes html data
@overload sanitize(values = {})
@param values [Hash] hash to sanitize
@return [Hash] sanitized hash
# File lib/wrap_it/html_data.rb, line 17 def self.sanitize(**values) Hash[values .map do |k, v| k = k.to_s if k.include?('-') k, n = k.split(/-/, 2) v = sanitize(n.to_sym => v) else k = k.downcase.gsub(/[^a-z0-9_]+/, '').gsub(/\A\d+/, '') v = v.is_a?(Hash) ? sanitize(v) : v.to_s end k.empty? ? nil : [k.to_sym, v] end .compact ] end