Class: Asciidoctor::Diagram::Extensions::FileSource
Overview
A diagram source that retrieves the code for a diagram from an external source file.
Instance Attribute Summary
Attributes inherited from BasicSource
#attributes
Instance Method Summary
collapse
Methods inherited from BasicSource
#attr, #checksum, #create_image_metadata
#attr, #create_image_metadata, #to_s
Constructor Details
#initialize(parent_block, file_name, attributes) ⇒ FileSource
Returns a new instance of FileSource.
446
447
448
449
|
# File 'lib/asciidoctor-diagram/extensions.rb', line 446
def initialize(parent_block, file_name, attributes)
super(parent_block, attributes)
@file_name = file_name
end
|
Instance Method Details
#base_dir ⇒ Object
451
452
453
454
455
456
457
|
# File 'lib/asciidoctor-diagram/extensions.rb', line 451
def base_dir
if @file_name
File.dirname(@file_name)
else
super
end
end
|
#code ⇒ Object
473
474
475
|
# File 'lib/asciidoctor-diagram/extensions.rb', line 473
def code
@code ||= read_code
end
|
#image_name ⇒ Object
459
460
461
462
463
464
465
466
467
|
# File 'lib/asciidoctor-diagram/extensions.rb', line 459
def image_name
if @attributes['target']
super
elsif @file_name
File.basename(@file_name, File.extname(@file_name))
else
checksum
end
end
|
#read_code ⇒ Object
477
478
479
480
481
482
483
484
485
|
# File 'lib/asciidoctor-diagram/extensions.rb', line 477
def read_code
if @file_name
lines = File.readlines(@file_name)
lines = ::Asciidoctor::Helpers.normalize_lines(lines)
@parent_block.apply_subs(lines, resolve_diagram_subs).join("\n")
else
''
end
end
|
#should_process?(image_file, image_metadata) ⇒ Boolean
469
470
471
|
# File 'lib/asciidoctor-diagram/extensions.rb', line 469
def should_process?(image_file, image_metadata)
(@file_name && File.mtime(@file_name) > File.mtime(image_file)) || super
end
|