Sha256: 65de531c5a3a7e4d2ddf0c2197999090a6571775a0ad3a74e8927f2107d5fbb0

Contents?: true

Size: 721 Bytes

Versions: 49

Compression:

Stored size: 721 Bytes

Contents

# frozen_string_literal: true

module Nanoc::RuleDSL
  class Rule
    include Nanoc::Core::ContractsSupport

    contract C::None => Symbol
    attr_reader :rep_name

    contract C::None => Nanoc::Core::Pattern
    attr_reader :pattern

    contract Nanoc::Core::Pattern, Symbol, Proc => C::Any
    def initialize(pattern, rep_name, block)
      @pattern = pattern
      @rep_name = rep_name.to_sym
      @block = block
    end

    contract Nanoc::Core::Item => C::Bool
    def applicable_to?(item)
      @pattern.match?(item.identifier)
    end

    # @api private
    contract Nanoc::Core::Identifier => C::Or[nil, C::ArrayOf[String]]
    def matches(identifier)
      @pattern.captures(identifier)
    end
  end
end

Version data entries

49 entries across 49 versions & 1 rubygems

Version Path
nanoc-4.13.3 lib/nanoc/rule_dsl/rule.rb
nanoc-4.13.2 lib/nanoc/rule_dsl/rule.rb
nanoc-4.13.1 lib/nanoc/rule_dsl/rule.rb
nanoc-4.13.0 lib/nanoc/rule_dsl/rule.rb
nanoc-4.12.21 lib/nanoc/rule_dsl/rule.rb
nanoc-4.12.20 lib/nanoc/rule_dsl/rule.rb
nanoc-4.12.19 lib/nanoc/rule_dsl/rule.rb
nanoc-4.12.18 lib/nanoc/rule_dsl/rule.rb
nanoc-4.12.17 lib/nanoc/rule_dsl/rule.rb
nanoc-4.12.16 lib/nanoc/rule_dsl/rule.rb
nanoc-4.12.15 lib/nanoc/rule_dsl/rule.rb
nanoc-4.12.14 lib/nanoc/rule_dsl/rule.rb
nanoc-4.12.13 lib/nanoc/rule_dsl/rule.rb
nanoc-4.12.12 lib/nanoc/rule_dsl/rule.rb
nanoc-4.12.11 lib/nanoc/rule_dsl/rule.rb
nanoc-4.12.10 lib/nanoc/rule_dsl/rule.rb
nanoc-4.12.9 lib/nanoc/rule_dsl/rule.rb
nanoc-4.12.8 lib/nanoc/rule_dsl/rule.rb
nanoc-4.12.7 lib/nanoc/rule_dsl/rule.rb
nanoc-4.12.6 lib/nanoc/rule_dsl/rule.rb