class HtmlConditionalComment::Visitors::Visitor

Public Class Methods

new(features, version) click to toggle source
# 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

Public Instance Methods

method_missing(method, *args) click to toggle source

Provide method missing for better interpretation

Calls superclass method
# 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
visit(subject) click to toggle source

Copied from blog.bigbinary.com/2013/07/07/visitor-pattern-and-double-dispatch.html

# File lib/html-conditional-comment/visitor.rb, line 22
def visit(subject)
  method_name = :"visit_#{(subject.class.name || '').gsub('::', '_')}"
  __send__(method_name, subject)
end