class Nanoc::Core::ItemRepBuilder

@api private

Attributes

reps[R]

Public Class Methods

new(site, action_provider, reps) click to toggle source
# File lib/nanoc/core/item_rep_builder.rb, line 12
def initialize(site, action_provider, reps)
  @site = site
  @action_provider = action_provider
  @reps = reps
end
snapshot_defs_for(action_sequence) click to toggle source
# File lib/nanoc/core/item_rep_builder.rb, line 35
def self.snapshot_defs_for(action_sequence)
  is_binary = action_sequence.item_rep.item.content.binary?
  snapshot_defs = []

  action_sequence.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::Core::Filter.named!(action.filter_name).to_binary?
    end
  end

  snapshot_defs
end

Public Instance Methods

run() click to toggle source
# File lib/nanoc/core/item_rep_builder.rb, line 18
def run
  @site.items.each do |item|
    @action_provider.rep_names_for(item).each do |rep_name|
      @reps << Nanoc::Core::ItemRep.new(item, rep_name)
    end
  end

  action_sequences = Nanoc::Core::ItemRepRouter.new(@reps, @action_provider, @site).run

  @reps.each do |rep|
    rep.snapshot_defs = self.class.snapshot_defs_for(action_sequences[rep])
  end

  action_sequences
end