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