Class: Autolinker::HTML::Conditions

Inherits:
Hash
  • Object
show all
Defined in:
lib/autolinker/html/node.rb

Overview

:nodoc:

Instance Method Summary collapse

Constructor Details

#initialize(hash) ⇒ Conditions

Returns a new instance of Conditions.



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
37
# File 'lib/autolinker/html/node.rb', line 7

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