Sha256: ced9300273e18ff5506974a8df356e8570571a3e6291d1bbb8f5c8d710d45a55

Contents?: true

Size: 790 Bytes

Versions: 6

Compression:

Stored size: 790 Bytes

Contents

# frozen_string_literal: true

module Nanoc
  module Int
    # @api private
    class OutdatednessRule
      include Nanoc::Core::ContractsSupport
      include Singleton

      def call(obj, outdatedness_checker)
        Nanoc::Core::Instrumentor.call(:outdatedness_rule_ran, self.class) do
          apply(obj, outdatedness_checker)
        end
      end

      def apply(_obj, _outdatedness_checker)
        raise NotImplementedError.new('Nanoc::Int::OutdatednessRule subclasses must implement #apply')
      end

      contract C::None => String
      def inspect
        "#{self.class.name}(#{reason})"
      end

      def self.affects_props(*names)
        @affected_props = Set.new(names)
      end

      def self.affected_props
        @affected_props
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
nanoc-4.11.8 lib/nanoc/base/services/outdatedness_rule.rb
nanoc-4.11.7 lib/nanoc/base/services/outdatedness_rule.rb
nanoc-4.11.6 lib/nanoc/base/services/outdatedness_rule.rb
nanoc-4.11.5 lib/nanoc/base/services/outdatedness_rule.rb
nanoc-4.11.4 lib/nanoc/base/services/outdatedness_rule.rb
nanoc-4.11.3 lib/nanoc/base/services/outdatedness_rule.rb