Class: IIIF::V3::Presentation::NavPlace

Inherits:
AbstractResource show all
Defined in:
lib/iiif/v3/presentation/nav_place.rb

Defined Under Namespace

Classes: Rect

Constant Summary collapse

COORD_REGEX =
/(?:(?<hemisphere>[NSEW])\s*)?(?<degrees>\d+)[°⁰*](?:\s*(?<minutes>\d+)[\'ʹ′])?(?:\s*(?<seconds>\d+)["ʺ″])?(?:\s*(?<hemisphere>[NSEW]))?/

Constants inherited from AbstractResource

AbstractResource::CONTENT_RESOURCE_PROPERTIES, AbstractResource::PAGING_PROPERTIES

Constants included from HashBehaviours

HashBehaviours::SIMPLE_SELF_RETURNERS

Instance Method Summary collapse

Methods inherited from AbstractResource

#any_type_keys, #array_only_keys, from_ordered_hash, #hash_only_keys, #int_only_keys, #legal_viewing_direction_values, #legal_viewing_hint_values, #numeric_only_keys, parse, #prohibited_keys, #required_keys, #string_only_keys, #to_json, #to_ordered_hash, #uri_only_keys, #validate

Methods included from HashBehaviours

#clear, #merge, #merge!, #reject!, #select, #select!

Constructor Details

#initialize(coordinate_texts:, base_uri:) ⇒ NavPlace



10
11
12
13
# File 'lib/iiif/v3/presentation/nav_place.rb', line 10

def initialize(coordinate_texts:, base_uri:)
  @coordinate_texts = coordinate_texts
  @base_uri = base_uri
end

Instance Method Details

#buildObject

Raises:

  • (ArgumentError)


20
21
22
23
24
25
26
27
28
# File 'lib/iiif/v3/presentation/nav_place.rb', line 20

def build
  raise ArgumentError.new('invalid coordinates') unless valid?

  {
    id: "#{base_uri}/feature-collection/1",
    type: 'FeatureCollection',
    features: features
  }
end

#valid?Boolean



16
17
18
# File 'lib/iiif/v3/presentation/nav_place.rb', line 16

def valid?
  !(coordinates.nil? || coordinates.empty?)
end