Class: HtmlConditionalComment::Visitors::Visitor

Inherits:
Object
  • Object
show all
Defined in:
lib/html-conditional-comment/visitor.rb

Direct Known Subclasses

Eval, ToString

Instance Method Summary collapse

Constructor Details

#initialize(features, version) ⇒ Visitor

Returns a new instance of Visitor.



10
11
12
13
14
15
16
17
18
19
# File 'lib/html-conditional-comment/visitor.rb', line 10

def initialize(features, version)
  @features = features
  @features = [@features] unless @features.is_a?(Enumerable)

  @version = if version.is_a?(VersionVector)
    version
  else
    VersionVector.new(version)
  end
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args) ⇒ Object

Provide method missing for better interpretation



28
29
30
31
32
33
34
# File 'lib/html-conditional-comment/visitor.rb', line 28

def method_missing(method, *args)
  if method.to_s() =~ /^visit\_(.+)/
    raise VisitError.new($1)
  else
    super(method, args)
  end
end

Instance Method Details

#visit(subject) ⇒ Object



22
23
24
25
# File 'lib/html-conditional-comment/visitor.rb', line 22

def visit(subject)
  method_name = :"visit_#{(subject.class.name || '').gsub('::', '_')}"
  __send__(method_name, subject)
end