Class: Coradoc::AsciiDoc::Model::ImageResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/coradoc/asciidoc/model/resolver.rb

Overview

Resolves image references with configurable strategies.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(strategy: :reference) ⇒ ImageResolver

Create a new ImageResolver.

Parameters:

  • strategy (Symbol) (defaults to: :reference)

    resolution strategy (:reference, :copy, :embed)



267
268
269
# File 'lib/coradoc/asciidoc/model/resolver.rb', line 267

def initialize(strategy: :reference)
  @strategy = strategy
end

Instance Attribute Details

#strategySymbol (readonly)

Returns the resolution strategy.

Returns:

  • (Symbol)

    the resolution strategy



261
262
263
# File 'lib/coradoc/asciidoc/model/resolver.rb', line 261

def strategy
  @strategy
end

Instance Method Details

#resolve(image_node, base_dir, output_dir = nil) ⇒ Image::Core

Resolve an image reference.

Parameters:

  • image_node (Image::Core)

    the image node

  • base_dir (String)

    base directory for relative paths

  • output_dir (String, nil) (defaults to: nil)

    output directory for :copy mode

Returns:



278
279
280
281
282
283
284
285
286
287
288
289
# File 'lib/coradoc/asciidoc/model/resolver.rb', line 278

def resolve(image_node, base_dir, output_dir = nil)
  case strategy
  when :reference
    image_node
  when :copy
    copy_image(image_node, base_dir, output_dir)
  when :embed
    embed_image(image_node, base_dir)
  else
    image_node
  end
end