Sha256: 105b6dffd2d1ce6b19a6932b966446be76c4b46f99029dca0a15e5624fd9b0fa

Contents?: true

Size: 1.04 KB

Versions: 30

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

module Nanoc::Checking
  # @api private
  class Loader
    CHECKS_FILENAMES = ['Checks', 'Checks.rb', 'checks', 'checks.rb'].freeze

    def initialize(config:)
      @config = config
    end

    def run
      dsl
    end

    def enabled_checks
      (enabled_checks_from_dsl + enabled_checks_from_config).uniq
    end

    private

    def dsl_present?
      checks_filename && File.file?(checks_filename)
    end

    def enabled_checks_from_dsl
      dsl
      @enabled_checks_from_dsl
    end

    def enabled_checks_from_config
      @config.fetch(:checking, {}).fetch(:enabled_checks, []).map(&:to_sym)
    end

    def dsl
      @enabled_checks_from_dsl ||= []

      @dsl ||=
        if dsl_present?
          Nanoc::Checking::DSL.from_file(checks_filename, enabled_checks: @enabled_checks_from_dsl)
        else
          Nanoc::Checking::DSL.new(enabled_checks: @enabled_checks_from_dsl)
        end
    end

    def checks_filename
      @_checks_filename ||= CHECKS_FILENAMES.find { |f| File.file?(f) }
    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
nanoc-4.11.14 lib/nanoc/checking/loader.rb
nanoc-4.11.13 lib/nanoc/checking/loader.rb
nanoc-4.11.12 lib/nanoc/checking/loader.rb
nanoc-4.11.11 lib/nanoc/checking/loader.rb
nanoc-4.11.10 lib/nanoc/checking/loader.rb
nanoc-4.11.9 lib/nanoc/checking/loader.rb
nanoc-4.11.8 lib/nanoc/checking/loader.rb
nanoc-4.11.7 lib/nanoc/checking/loader.rb
nanoc-4.11.6 lib/nanoc/checking/loader.rb
nanoc-4.11.5 lib/nanoc/checking/loader.rb
nanoc-4.11.4 lib/nanoc/checking/loader.rb
nanoc-4.11.3 lib/nanoc/checking/loader.rb
nanoc-4.11.2 lib/nanoc/checking/loader.rb
nanoc-4.11.1 lib/nanoc/checking/loader.rb
nanoc-4.11.0 lib/nanoc/checking/loader.rb
nanoc-4.10.4 lib/nanoc/checking/loader.rb
nanoc-4.10.3 lib/nanoc/checking/loader.rb
nanoc-4.10.2 lib/nanoc/checking/loader.rb
nanoc-4.10.1 lib/nanoc/checking/loader.rb
nanoc-4.10.0 lib/nanoc/checking/loader.rb