Class: CocinaDisplay::Structural::FileSet

Inherits:
Object
  • Object
show all
Defined in:
lib/cocina_display/structural/file_set.rb

Overview

Represents a set of files in a Cocina object.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(cocina, base_url: "https://stacks.stanford.edu", druid: nil) ⇒ FileSet

Initialize the FileSet with Cocina structural data.

Parameters:

  • cocina (Hash)

    Cocina structured data for a single FileSet

  • base_url (String) (defaults to: "https://stacks.stanford.edu")

    URL to Stacks environment that will serve this fileset

  • druid (String, nil) (defaults to: nil)

    DRUID of the object this fileset belongs to



15
16
17
18
19
# File 'lib/cocina_display/structural/file_set.rb', line 15

def initialize(cocina, base_url: "https://stacks.stanford.edu", druid: nil)
  @cocina = cocina
  @base_url = base_url
  @druid = druid
end

Instance Attribute Details

#base_urlObject (readonly)

URL to Stacks environment that will serve this fileset.



9
10
11
# File 'lib/cocina_display/structural/file_set.rb', line 9

def base_url
  @base_url
end

#cocinaObject (readonly)

Underlying hash parsed from Cocina JSON.



6
7
8
# File 'lib/cocina_display/structural/file_set.rb', line 6

def cocina
  @cocina
end

Instance Method Details

#filesArray<CocinaDisplay::Structural::File>

All files contained in this FileSet.



30
31
32
33
34
# File 'lib/cocina_display/structural/file_set.rb', line 30

def files
  @files ||= Array(cocina.dig("structural", "contains")).map do |file|
    CocinaDisplay::Structural::File.new(file, base_url: base_url, druid: druid)
  end
end

#typeString?

Note:

This can differ from the contained file types.

The declared type of the FileSet, like “image” or “document”.

Returns:

  • (String, nil)


24
25
26
# File 'lib/cocina_display/structural/file_set.rb', line 24

def type
  cocina["type"]&.delete_prefix("https://cocina.sul.stanford.edu/models/resources/")
end