class Nanoc::Int::ItemRepRouter
Assigns paths to reps.
@api private
Public Class Methods
new(reps, action_provider, site)
click to toggle source
# File lib/nanoc/base/services/item_rep_router.rb, line 12 def initialize(reps, action_provider, site) @reps = reps @action_provider = action_provider @site = site end
Public Instance Methods
route_rep(rep, snapshot_action, paths_to_reps)
click to toggle source
# File lib/nanoc/base/services/item_rep_router.rb, line 28 def route_rep(rep, snapshot_action, paths_to_reps) basic_path = snapshot_action.path return if basic_path.nil? # Check for duplicate paths if paths_to_reps.key?(basic_path) raise IdenticalRoutesError.new(basic_path, paths_to_reps[basic_path], rep) else paths_to_reps[basic_path] = rep end rep.raw_paths[snapshot_action.snapshot_name] = @site.config[:output_dir] + basic_path rep.paths[snapshot_action.snapshot_name] = strip_index_filename(basic_path) end
run()
click to toggle source
# File lib/nanoc/base/services/item_rep_router.rb, line 18 def run paths_to_reps = {} @reps.each do |rep| mem = @action_provider.memory_for(rep) mem.snapshot_actions.each do |snapshot_action| route_rep(rep, snapshot_action, paths_to_reps) end end end
strip_index_filename(basic_path)
click to toggle source
# File lib/nanoc/base/services/item_rep_router.rb, line 43 def strip_index_filename(basic_path) @site.config[:index_filenames].each do |index_filename| rep_path_ending = basic_path[-index_filename.length..-1] next unless rep_path_ending == index_filename return basic_path[0..-index_filename.length - 1] end basic_path end