Sha256: 531b8a411f1d8f4cff11c509272136ec2b79834dd91766a1aa9c01b5285154fb
Contents?: true
Size: 1.34 KB
Versions: 8
Compression:
Stored size: 1.34 KB
Contents
module Nanoc::Extra::Checking # @api private class OutputDirNotFoundError < Nanoc::Int::Errors::Generic def initialize(directory_path) super("Unable to run check against output directory at “#{directory_path}”: directory does not exist.") end end # @api private class Check < Nanoc::Int::Context extend Nanoc::Int::PluginRegistry::PluginMethods attr_reader :issues def self.create(site) output_dir = site.config[:output_dir] unless File.exist?(output_dir) raise Nanoc::Extra::Checking::OutputDirNotFoundError.new(output_dir) end output_filenames = Dir[output_dir + '/**/*'].select { |f| File.file?(f) } context = { items: Nanoc::ItemCollectionView.new(site.items), layouts: Nanoc::LayoutCollectionView.new(site.layouts), config: Nanoc::ConfigView.new(site.config), site: Nanoc::SiteView.new(site), # TODO: remove me output_filenames: output_filenames, } new(context) end def initialize(context) super(context) @issues = Set.new end def run raise NotImplementedError.new('Nanoc::Extra::Checking::Check subclasses must implement #run') end def add_issue(desc, params = {}) subject = params.fetch(:subject, nil) @issues << Issue.new(desc, subject, self.class) end end end
Version data entries
8 entries across 8 versions & 1 rubygems