Class: CocinaDisplay::Subjects::SubjectValue

Inherits:
Object
  • Object
show all
Defined in:
lib/cocina_display/subjects/subject_value.rb

Overview

A descriptive value that can be part of a Subject.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(cocina) ⇒ SubjectValue

Initialize a SubjectValue object with Cocina structured data.

Parameters:

  • cocina (Hash)

    The Cocina structured data for the subject value.



34
35
36
37
# File 'lib/cocina_display/subjects/subject_value.rb', line 34

def initialize(cocina)
  @cocina = cocina
  @type = cocina["type"]
end

Instance Attribute Details

#cocinaObject (readonly)

Returns the value of attribute cocina.



13
14
15
# File 'lib/cocina_display/subjects/subject_value.rb', line 13

def cocina
  @cocina
end

#typeObject

The type of the subject value, like “person”, “title”, or “time”.



17
18
19
# File 'lib/cocina_display/subjects/subject_value.rb', line 17

def type
  @type
end

Class Method Details

.atomic_typesArray<String>

All subject value types that should not be further destructured.

Returns:

  • (Array<String>)


28
29
30
# File 'lib/cocina_display/subjects/subject_value.rb', line 28

def self.atomic_types
  SUBJECT_VALUE_TYPES.keys - ["place"]
end

.from_cocina(cocina) ⇒ SubjectValue

Create a SubjectValue from Cocina structured data.

Parameters:

  • cocina (Hash)

    The Cocina structured data for the subject.

Returns:



22
23
24
# File 'lib/cocina_display/subjects/subject_value.rb', line 22

def self.from_cocina(cocina)
  SUBJECT_VALUE_TYPES.fetch(cocina["type"], SubjectValue).new(cocina)
end

Instance Method Details

#display_strString

The display string for the subject value. Subclasses should override this method to provide specific formatting.

Returns:

  • (String)


42
43
44
# File 'lib/cocina_display/subjects/subject_value.rb', line 42

def display_str
  cocina["value"]
end