Sha256: dcbdaeb241953336773f837e5bc800b72a88f70e2a091cfb45741b81fbc159e9
Contents?: true
Size: 1.92 KB
Versions: 2
Compression:
Stored size: 1.92 KB
Contents
# frozen_string_literal: true module Nanoc module Int class ActionSequence include Nanoc::Core::ContractsSupport include Enumerable DDMemoize.activate(self) attr_reader :item_rep attr_reader :actions def initialize(item_rep, actions: []) @item_rep = item_rep @actions = actions end contract C::None => Numeric def size @actions.size end contract Numeric => C::Maybe[Nanoc::Core::ProcessingAction] def [](idx) @actions[idx] end contract C::None => C::ArrayOf[Nanoc::Core::ProcessingAction] def snapshot_actions @actions.select { |a| a.is_a?(Nanoc::Core::ProcessingActions::Snapshot) } end contract C::None => Array def paths snapshot_actions.map { |a| [a.snapshot_names, a.paths] } end memoized def serialize serialize_uncached end contract C::None => Array def serialize_uncached to_a.map(&:serialize) end contract C::Func[Nanoc::Core::ProcessingAction => C::Any] => self def each @actions.each { |a| yield(a) } self end contract C::Func[Nanoc::Core::ProcessingAction => C::Any] => self def map self.class.new( @item_rep, actions: @actions.map { |a| yield(a) }, ) end def snapshots_defs is_binary = @item_rep.item.content.binary? snapshot_defs = [] each do |action| case action when Nanoc::Core::ProcessingActions::Snapshot action.snapshot_names.each do |snapshot_name| snapshot_defs << Nanoc::Core::SnapshotDef.new(snapshot_name, binary: is_binary) end when Nanoc::Core::ProcessingActions::Filter is_binary = Nanoc::Filter.named!(action.filter_name).to_binary? end end snapshot_defs end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
nanoc-4.11.2 | lib/nanoc/base/entities/action_sequence.rb |
nanoc-4.11.1 | lib/nanoc/base/entities/action_sequence.rb |