Class: IIIF::V3::Presentation::Sequence
- Inherits:
-
AbstractResource
- Object
- AbstractResource
- IIIF::V3::Presentation::Sequence
- Defined in:
- lib/iiif/v3/presentation/sequence.rb
Direct Known Subclasses
Constant Summary collapse
- TYPE =
'Sequence'.freeze
Constants inherited from AbstractResource
AbstractResource::CONTENT_RESOURCE_PROPERTIES, AbstractResource::PAGING_PROPERTIES
Constants included from HashBehaviours
HashBehaviours::SIMPLE_SELF_RETURNERS
Instance Method Summary collapse
-
#array_only_keys ⇒ Object
NOTE: allowing 'items' or 'canvases' as Universal Viewer currently only accepts canvases see https://github.com/sul-dlss/osullivan/issues/27, sul-dlss/purl/issues/167.
-
#initialize(hsh = {}) ⇒ Sequence
constructor
A new instance of Sequence.
- #legal_viewing_hint_values ⇒ Object
-
#prohibited_keys ⇒ Object
NOTE: relaxing requirement for items as Universal Viewer currently only accepts canvases see https://github.com/sul-dlss/osullivan/issues/27, sul-dlss/purl/issues/167 def required_keys super + %w{ items } end.
- #validate ⇒ Object
Methods inherited from AbstractResource
#any_type_keys, from_ordered_hash, #hash_only_keys, #int_only_keys, #legal_viewing_direction_values, #numeric_only_keys, parse, #required_keys, #string_only_keys, #to_json, #to_ordered_hash, #uri_only_keys
Methods included from HashBehaviours
#clear, #merge, #merge!, #reject!, #select, #select!
Constructor Details
#initialize(hsh = {}) ⇒ Sequence
Returns a new instance of Sequence.
28 29 30 31 |
# File 'lib/iiif/v3/presentation/sequence.rb', line 28 def initialize(hsh={}) hsh['type'] = TYPE unless hsh.has_key? 'type' super(hsh) end |
Instance Method Details
#array_only_keys ⇒ Object
NOTE: allowing 'items' or 'canvases' as Universal Viewer currently only accepts canvases see https://github.com/sul-dlss/osullivan/issues/27, sul-dlss/purl/issues/167
20 21 22 |
# File 'lib/iiif/v3/presentation/sequence.rb', line 20 def array_only_keys super + %w{ canvases } end |
#legal_viewing_hint_values ⇒ Object
24 25 26 |
# File 'lib/iiif/v3/presentation/sequence.rb', line 24 def legal_viewing_hint_values %w{ individuals paged continuous auto-advance } end |
#prohibited_keys ⇒ Object
NOTE: relaxing requirement for items as Universal Viewer currently only accepts canvases see https://github.com/sul-dlss/osullivan/issues/27, sul-dlss/purl/issues/167 def required_keys super + %w{ items } end
14 15 16 |
# File 'lib/iiif/v3/presentation/sequence.rb', line 14 def prohibited_keys super + CONTENT_RESOURCE_PROPERTIES + PAGING_PROPERTIES + %w{ nav_date content_annotations } end |
#validate ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/iiif/v3/presentation/sequence.rb', line 33 def validate super # Canvas object list # NOTE: allowing 'items' or 'canvases' as Universal Viewer currently only accepts canvases # see https://github.com/sul-dlss/osullivan/issues/27, sul-dlss/purl/issues/167 unless (self['items'] && self['items'].any?) || (self['canvases'] && self['canvases'].any?) m = 'The (items or canvases) list must have at least one entry.' raise IIIF::V3::Presentation::MissingRequiredKeyError, m end # TODO: startCanvas: A link from a Sequence or Range to a Canvas that is contained within it # TODO: All external Sequences must have a dereference-able http(s) URI end |