Class: Asciidoctor::Diagram::Extensions::BasicSource

Inherits:
Object
  • Object
show all
Includes:
DiagramSource
Defined in:
lib/asciidoctor-diagram/extensions.rb

Overview

Base class for diagram source implementations that uses an md5 checksum of the source code of a diagram to determine if it has been updated or not.

Direct Known Subclasses

FileSource, ReaderSource

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from DiagramSource

#code, #to_s

Constructor Details

#initialize(attributes) ⇒ BasicSource

Returns a new instance of BasicSource.



308
309
310
# File 'lib/asciidoctor-diagram/extensions.rb', line 308

def initialize(attributes)
  @attributes = attributes
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



306
307
308
# File 'lib/asciidoctor-diagram/extensions.rb', line 306

def attributes
  @attributes
end

Instance Method Details

#checksumObject



324
325
326
# File 'lib/asciidoctor-diagram/extensions.rb', line 324

def checksum
  @checksum ||= compute_checksum(code)
end

#compute_checksum(code) ⇒ Object



328
329
330
331
332
# File 'lib/asciidoctor-diagram/extensions.rb', line 328

def compute_checksum(code)
  md5 = Digest::MD5.new
  md5 << code
  md5.hexdigest
end

#create_image_metadataObject



320
321
322
# File 'lib/asciidoctor-diagram/extensions.rb', line 320

def 
  {'checksum' => checksum}
end

#image_nameObject



312
313
314
# File 'lib/asciidoctor-diagram/extensions.rb', line 312

def image_name
  @attributes['target'] || ('diag-' + checksum)
end

#should_process?(image_file, image_metadata) ⇒ Boolean

Returns:

  • (Boolean)


316
317
318
# File 'lib/asciidoctor-diagram/extensions.rb', line 316

def should_process?(image_file, )
  ['checksum'] != checksum
end