Class: ROCrate::Preview

Inherits:
File show all
Defined in:
lib/ro_crate/model/preview.rb

Overview

A representation of the ‘ro-crate-preview.html` file.

Constant Summary collapse

IDENTIFIER =
'ro-crate-preview.html'.freeze
DEFAULT_TEMPLATE =
::File.expand_path(::File.join(::File.dirname(__FILE__), '..', 'ro-crate-preview.html.erb'))

Instance Attribute Summary collapse

Attributes inherited from Entity

#crate, #properties

Instance Method Summary collapse

Methods inherited from File

#entries, #remote?

Methods inherited from DataEntity

#entries, #filepath, format_id, specialize

Methods inherited from Entity

#==, #[], #[]=, #auto_dereference, #auto_reference, #canonical_id, #dereference, #eql?, #external?, format_id, #has_type?, #hash, #id, #id=, #inspect, properties, #raw_properties, #reference, #to_json, #type, #type=

Constructor Details

#initialize(crate, properties = {}) ⇒ Preview

Returns a new instance of Preview.



15
16
17
18
# File 'lib/ro_crate/model/preview.rb', line 15

def initialize(crate, properties = {})
  @template = nil
  super(crate, nil, IDENTIFIER, properties)
end

Instance Attribute Details

#templateString

The ERB template to use when rendering the preview.

Returns:

  • (String)


13
14
15
# File 'lib/ro_crate/model/preview.rb', line 13

def template
  @template
end

Instance Method Details

#generateString

Generate the crate’s ‘ro-crate-preview.html`.

Returns:

  • (String)

    The rendered HTML as a string.



23
24
25
26
27
# File 'lib/ro_crate/model/preview.rb', line 23

def generate
  b = crate.get_binding
  renderer = ERB.new(template || ::File.read(DEFAULT_TEMPLATE))
  renderer.result(b)
end