Sha256: b12e304a86264bbf24912c564df2b11eb1e114054e2ec65bbc250e01c6c001df
Contents?: true
Size: 1.06 KB
Versions: 7
Compression:
Stored size: 1.06 KB
Contents
# frozen_string_literal: true module ThemeCheck # Reports missing include/render/section template class MissingTemplate < LiquidCheck severity :suggestion category :liquid doc docs_url(__FILE__) single_file false def initialize(ignore_missing: []) @ignore_missing = ignore_missing end def on_include(node) template = node.value.template_name_expr if template.is_a?(String) add_missing_offense("snippets/#{template}", node: node) end end alias_method :on_render, :on_include def on_section(node) template = node.value.section_name add_missing_offense("sections/#{template}", node: node) end private def ignore?(path) @ignore_missing.any? { |pattern| File.fnmatch?(pattern, path) } end def add_missing_offense(name, node:) path = "#{name}.liquid" unless ignore?(path) || theme[name] add_offense("'#{path}' is not found", node: node) do |corrector| corrector.create(@theme, "#{name}.liquid", "") end end end end end
Version data entries
7 entries across 7 versions & 1 rubygems