Class: Datacite::Mapping::Resource
- Inherits:
-
Object
- Object
- Datacite::Mapping::Resource
- Includes:
- XML::Mapping
- Defined in:
- lib/datacite/mapping/resource.rb
Overview
A collection of metadata properties chosen for the accurate and consistent identification of a resource for citation and retrieval purposes, along with recommended use instructions. The resource that is being identified can be of any kind, but it is typically a dataset.
Instance Attribute Summary collapse
-
#alternate_identifiers ⇒ Array<AlternateIdentifier>
An identifier or identifiers other than the primary Identifier applied to the resource being registered.
-
#contributors ⇒ Array<Contributor>
Institutions or persons responsible for collecting, creating, or otherwise contributing to the developement of the dataset.
-
#creators ⇒ Array<Creator>
The main researchers involved working on the data, or the authors of the publication in priority order.
-
#dates ⇒ Array<Date>
Different dates relevant to the work.
-
#descriptions ⇒ Array<Description>
All additional information that does not fit in any of the other categories.
-
#formats ⇒ Array<String>
Technical format of the resource, e.g.
-
#geo_locations ⇒ Array<GeoLocations>
Spatial region or named place where the data was gathered or about which the data is focused.
-
#identifier ⇒ Identifier
A persistent identifier that identifies a resource.
-
#language ⇒ String
It's unclear from the spec whether language is required; to play it safe, if it's missing, we default to 'en'.
-
#publication_year ⇒ Integer
Year when the resource is made publicly available.
-
#publisher ⇒ String
The name of the entity that holds, archives, publishes prints, distributes, releases, issues, or produces the resource.
-
#related_identifiers ⇒ Array<RelatedIdentifier>
Identifiers of related resources.
-
#resource_type ⇒ ResourceType?
The type of the resource.
-
#rights_list ⇒ Array<Rights>
Rights information for this resource.
-
#sizes ⇒ Array<String>
Unstructured size information about the resource.
-
#subjects ⇒ Array<Subject>
Subjects, keywords, classification codes, or key phrases describing the resource.
-
#titles ⇒ Array<Title>
The names or titles by which a resource is known.
-
#version ⇒ String
Version number of the resource.
Instance Method Summary collapse
-
#initialize(identifier:, creators:, titles:, publisher:, publication_year:, subjects: [], contributors: [], dates: [], language: 'en', resource_type: nil, alternate_identifiers: [], related_identifiers: [], sizes: [], formats: [], version: nil, rights_list: [], descriptions: [], geo_locations: []) ⇒ Resource
constructor
Initialies a new Resource.
-
#pre_save(options = { mapping: :_default })
Overrides
::XML::Mapping.pre_saveto write namespace information.
Constructor Details
#initialize(identifier:, creators:, titles:, publisher:, publication_year:, subjects: [], contributors: [], dates: [], language: 'en', resource_type: nil, alternate_identifiers: [], related_identifiers: [], sizes: [], formats: [], version: nil, rights_list: [], descriptions: [], geo_locations: []) ⇒ Resource
Initialies a new Datacite::Mapping::Resource
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/datacite/mapping/resource.rb', line 114 def initialize(identifier:, creators:, titles:, publisher:, publication_year:, subjects: [], contributors: [], dates: [], language: 'en', resource_type: nil, alternate_identifiers: [], related_identifiers: [], sizes: [], formats: [], version: nil, rights_list: [], descriptions: [], geo_locations: []) # rubocop:disable Metrics/MethodLength, Metrics/ParameterLists, Metrics/AbcSize self.identifier = identifier self.creators = creators self.titles = titles self.publisher = publisher self.publication_year = publication_year self.subjects = subjects self.contributors = contributors self.dates = dates self.language = language self.resource_type = resource_type self.alternate_identifiers = alternate_identifiers self. = self.sizes = sizes self.formats = formats self.version = version self.rights_list = rights_list self.descriptions = descriptions self.geo_locations = geo_locations end |
Instance Attribute Details
#alternate_identifiers ⇒ Array<AlternateIdentifier>
Returns an identifier or identifiers other than the primary Identifier applied to the resource being registered.
63 |
# File 'lib/datacite/mapping/resource.rb', line 63 array_node :alternate_identifiers, 'alternateIdentifiers', 'alternateIdentifier', class: AlternateIdentifier, default_value: [] |
#contributors ⇒ Array<Contributor>
Returns institutions or persons responsible for collecting, creating, or otherwise contributing to the developement of the dataset.
46 |
# File 'lib/datacite/mapping/resource.rb', line 46 array_node :contributors, 'contributors', 'contributor', class: Contributor, default_value: [] |
#creators ⇒ Array<Creator>
Returns the main researchers involved working on the data, or the authors of the publication in priority order.
26 |
# File 'lib/datacite/mapping/resource.rb', line 26 array_node :creators, 'creators', 'creator', class: Creator |
#dates ⇒ Array<Date>
Returns different dates relevant to the work.
50 |
# File 'lib/datacite/mapping/resource.rb', line 50 array_node :dates, 'dates', 'date', class: Date, default_value: [] |
#descriptions ⇒ Array<Description>
Returns all additional information that does not fit in any of the other categories.
87 |
# File 'lib/datacite/mapping/resource.rb', line 87 array_node :descriptions, 'descriptions', 'description', class: Description, default_value: [] |
#formats ⇒ Array<String>
Returns technical format of the resource, e.g. file extension or MIME type.
75 |
# File 'lib/datacite/mapping/resource.rb', line 75 array_node :formats, 'formats', 'format', class: String, default_value: [] |
#geo_locations ⇒ Array<GeoLocations>
Returns spatial region or named place where the data was gathered or about which the data is focused.
91 |
# File 'lib/datacite/mapping/resource.rb', line 91 array_node :geo_locations, 'geoLocations', 'geoLocation', class: GeoLocation, default_value: [] |
#identifier ⇒ Identifier
Returns a persistent identifier that identifies a resource.
22 |
# File 'lib/datacite/mapping/resource.rb', line 22 object_node :identifier, 'identifier', class: Identifier |
#language ⇒ String
It's unclear from the spec whether language is required; to play it safe, if it's missing, we default to 'en'.
55 |
# File 'lib/datacite/mapping/resource.rb', line 55 text_node :language, 'language' |
#publication_year ⇒ Integer
Returns year when the resource is made publicly available.
38 |
# File 'lib/datacite/mapping/resource.rb', line 38 numeric_node :publication_year, 'publicationYear' |
#publisher ⇒ String
Returns the name of the entity that holds, archives, publishes prints, distributes, releases, issues, or produces the resource.
34 |
# File 'lib/datacite/mapping/resource.rb', line 34 text_node :publisher, 'publisher' |
#related_identifiers ⇒ Array<RelatedIdentifier>
Returns identifiers of related resources.
67 |
# File 'lib/datacite/mapping/resource.rb', line 67 array_node :related_identifiers, 'relatedIdentifiers', 'relatedIdentifier', class: RelatedIdentifier, default_value: [] |
#resource_type ⇒ ResourceType?
Returns the type of the resource. Optional.
59 |
# File 'lib/datacite/mapping/resource.rb', line 59 object_node :resource_type, 'resourceType', class: ResourceType, default_value: nil |
#rights_list ⇒ Array<Rights>
Returns rights information for this resource.
83 |
# File 'lib/datacite/mapping/resource.rb', line 83 array_node :rights_list, 'rightsList', 'rights', class: Rights, default_value: [] |
#sizes ⇒ Array<String>
Returns unstructured size information about the resource.
71 |
# File 'lib/datacite/mapping/resource.rb', line 71 array_node :sizes, 'sizes', 'size', class: String, default_value: [] |
#subjects ⇒ Array<Subject>
Returns subjects, keywords, classification codes, or key phrases describing the resource.
42 |
# File 'lib/datacite/mapping/resource.rb', line 42 array_node :subjects, 'subjects', 'subject', class: Subject, default_value: [] |
#titles ⇒ Array<Title>
Returns the names or titles by which a resource is known.
30 |
# File 'lib/datacite/mapping/resource.rb', line 30 array_node :titles, 'titles', 'title', class: Title |
#version ⇒ String
Returns version number of the resource. Optional.
79 |
# File 'lib/datacite/mapping/resource.rb', line 79 text_node :version, 'version', default_value: nil |
Instance Method Details
#pre_save(options = { mapping: :_default })
Overrides ::XML::Mapping.pre_save to write namespace information.
Used for writing.
191 192 193 194 195 196 197 |
# File 'lib/datacite/mapping/resource.rb', line 191 def pre_save( = { mapping: :_default }) xml = super() xml.add_namespace('http://datacite.org/schema/kernel-3') xml.add_namespace('xsi', 'http://www.w3.org/2001/XMLSchema-instance') xml.add_attribute('xsi:schemaLocation', 'http://datacite.org/schema/kernel-3 http://schema.datacite.org/meta/kernel-3/metadata.xsd') xml end |