Sha256: 01f8ab228c99cce7f359b9b884e5e4a247a3102f0d9decae22260fef9c43b2e3
Contents?: true
Size: 1.18 KB
Versions: 3
Compression:
Stored size: 1.18 KB
Contents
# frozen_string_literal: true module ThemeCheck class Visitor attr_reader :checks def initialize(checks) @checks = checks end def visit_template(template) @disabled_checks = DisabledChecks.new visit(Node.new(template.root, nil, template)) remove_disabled_offenses rescue Liquid::Error => exception exception.template_name = template.name call_checks(:on_error, exception) end private def visit(node) call_checks(:on_node, node) call_checks(:on_tag, node) if node.tag? call_checks(:"on_#{node.type_name}", node) node.children.each { |child| visit(child) } unless node.literal? call_checks(:"after_#{node.type_name}", node) call_checks(:after_tag, node) if node.tag? call_checks(:after_node, node) end @disabled_checks.update(node) if node.comment? end def call_checks(method, *args) checks.call(method, *args) end def remove_disabled_offenses checks.disableable.each do |check| check.offenses.reject! do |offense| @disabled_checks.disabled?(offense.code_name, offense.start_index) end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
theme-check-0.8.3 | lib/theme_check/visitor.rb |
theme-check-0.8.2 | lib/theme_check/visitor.rb |
theme-check-0.8.1 | lib/theme_check/visitor.rb |