Sha256: e28b49bfeb1ac5353c68f6dc6447668238ca570c67e12a6b7490e8f14d8821a4
Contents?: true
Size: 847 Bytes
Versions: 4
Compression:
Stored size: 847 Bytes
Contents
# frozen_string_literal: true module Nanoc::RuleDSL class RoutingRule < Rule include Nanoc::Core::ContractsSupport contract C::None => C::Maybe[Symbol] attr_reader :snapshot_name contract Nanoc::Core::Pattern, Symbol, Proc, C::KeywordArgs[snapshot_name: C::Optional[Symbol]] => C::Any def initialize(pattern, rep_name, block, snapshot_name: nil) super(pattern, rep_name, block) @snapshot_name = snapshot_name end contract Nanoc::Core::ItemRep, C::KeywordArgs[ site: Nanoc::Core::Site, view_context: Nanoc::Core::ViewContextForPreCompilation, ] => C::Any def apply_to(rep, site:, view_context:) context = Nanoc::RuleDSL::RoutingRuleContext.new( rep:, site:, view_context:, ) context.instance_exec(matches(rep.item.identifier), &@block) end end end
Version data entries
4 entries across 4 versions & 1 rubygems