Class: HTML::Conditions

Inherits:
Hash
  • Object
show all
Defined in:
lib/rails/deprecated_sanitizer/html-scanner/html/node.rb

Overview

:nodoc:

Instance Method Summary collapse

Constructor Details

#initialize(hash) ⇒ Conditions

Returns a new instance of Conditions.



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/rails/deprecated_sanitizer/html-scanner/html/node.rb', line 6

def initialize(hash)
  super()
  hash = { :content => hash } unless Hash === hash
  hash = keys_to_symbols(hash)
  hash.each do |k,v|
    case k
      when :tag, :content then
        # keys are valid, and require no further processing
      when :attributes then
        hash[k] = keys_to_strings(v)
      when :parent, :child, :ancestor, :descendant, :sibling, :before,
              :after
        hash[k] = Conditions.new(v)
      when :children
        hash[k] = v = keys_to_symbols(v)
        v.each do |key,value|
          case key
            when :count, :greater_than, :less_than
              # keys are valid, and require no further processing
            when :only
              v[key] = Conditions.new(value)
            else
              raise "illegal key #{key.inspect} => #{value.inspect}"
          end
        end
      else
        raise "illegal key #{k.inspect} => #{v.inspect}"
    end
  end
  update hash
end