class Nanoc::Helpers::Capturing::GetContent

@api private

Public Class Methods

new(requested_item, name, item, config) click to toggle source
# File lib/nanoc/helpers/capturing.rb, line 54
def initialize(requested_item, name, item, config)
  @requested_item = requested_item
  @name = name
  @item = item
  @config = config
end

Public Instance Methods

run() click to toggle source
# File lib/nanoc/helpers/capturing.rb, line 61
def run
  rep = @requested_item.reps[:default]._unwrap

  # Create dependency
  if @item.nil? || @requested_item != @item._unwrap
    dependency_tracker = @config._context.dependency_tracker
    dependency_tracker.bounce(@requested_item._unwrap, compiled_content: true)

    unless rep.compiled?
      # FIXME: is :last appropriate?
      Fiber.yield(Nanoc::Core::Errors::UnmetDependency.new(rep, :last))
      return run
    end
  end

  compiled_content_store = @config._context.compiled_content_store
  content = compiled_content_store.get(rep, :"__capture_#{@name}")
  content&.string
end