bolognese 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/Gemfile.lock +1 -1
 - data/lib/bolognese/datacite_utils.rb +2 -2
 - data/lib/bolognese/metadata.rb +16 -10
 - data/lib/bolognese/metadata_utils.rb +3 -11
 - data/lib/bolognese/readers/bibtex_reader.rb +1 -1
 - data/lib/bolognese/readers/citeproc_reader.rb +2 -2
 - data/lib/bolognese/readers/codemeta_reader.rb +2 -2
 - data/lib/bolognese/readers/crossref_reader.rb +2 -2
 - data/lib/bolognese/readers/datacite_json_reader.rb +3 -3
 - data/lib/bolognese/readers/datacite_reader.rb +3 -3
 - data/lib/bolognese/readers/ris_reader.rb +1 -1
 - data/lib/bolognese/readers/schema_org_reader.rb +3 -3
 - data/lib/bolognese/version.rb +1 -1
 - data/lib/bolognese/writers/bibtex_writer.rb +1 -1
 - data/lib/bolognese/writers/codemeta_writer.rb +2 -2
 - data/lib/bolognese/writers/crosscite_writer.rb +3 -3
 - data/lib/bolognese/writers/datacite_json_writer.rb +3 -3
 - data/lib/bolognese/writers/jats_writer.rb +2 -2
 - data/lib/bolognese/writers/ris_writer.rb +1 -1
 - data/lib/bolognese/writers/schema_org_writer.rb +3 -3
 - data/spec/readers/bibtex_reader_spec.rb +1 -1
 - data/spec/readers/citeproc_reader_spec.rb +1 -1
 - data/spec/readers/codemeta_reader_spec.rb +5 -5
 - data/spec/readers/crossref_reader_spec.rb +9 -9
 - data/spec/readers/datacite_reader_spec.rb +9 -9
 - data/spec/readers/ris_reader_spec.rb +1 -1
 - data/spec/readers/schema_org_reader_spec.rb +10 -10
 - data/spec/writers/schema_org_writer_spec.rb +2 -2
 - metadata +1 -1
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: acbbf45161f598000d9ff25bb9377c5332eb1482830a2e2b4137aab2fcc33043
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 3a6c992a04626c916ec2f579aad4f9ab303756071db6a8178499a996834416cd
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 65dba0019f3401ae22dbd8d05da1cda01900ab0f865a3b37c8b4d7983e7d8616779e0ad7b7a123815eef252db8c5734982321bcf5cc2cc599e75a70dec436417
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: d856dea89a299b900acd9462cf01b2cb1c88fe0d8619cd003b6f2fb4da4e54624e86bb580db50488c7d31a256c9fbede5802b185b126c253328c714bc3dd1191
         
     | 
    
        data/Gemfile.lock
    CHANGED
    
    
| 
         @@ -153,9 +153,9 @@ module Bolognese 
     | 
|
| 
       153 
153 
     | 
    
         
             
                end
         
     | 
| 
       154 
154 
     | 
    
         | 
| 
       155 
155 
     | 
    
         
             
                def insert_version(xml)
         
     | 
| 
       156 
     | 
    
         
            -
                  return xml unless  
     | 
| 
      
 156 
     | 
    
         
            +
                  return xml unless version.present?
         
     | 
| 
       157 
157 
     | 
    
         | 
| 
       158 
     | 
    
         
            -
                  xml.version( 
     | 
| 
      
 158 
     | 
    
         
            +
                  xml.version(version)
         
     | 
| 
       159 
159 
     | 
    
         
             
                end
         
     | 
| 
       160 
160 
     | 
    
         | 
| 
       161 
161 
     | 
    
         
             
                def insert_related_identifiers(xml)
         
     | 
    
        data/lib/bolognese/metadata.rb
    CHANGED
    
    | 
         @@ -6,7 +6,13 @@ module Bolognese 
     | 
|
| 
       6 
6 
     | 
    
         
             
              class Metadata
         
     | 
| 
       7 
7 
     | 
    
         
             
                include Bolognese::MetadataUtils
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
                attr_writer :id, :provider_id, :client_id, :doi
         
     | 
| 
      
 9 
     | 
    
         
            +
                attr_writer :id, :provider_id, :client_id, :doi, :identifier, :creator, :title, :publisher, :rights, :dates, :date_published, :date_modified,
         
     | 
| 
      
 10 
     | 
    
         
            +
                            :date_updated, :journal, :volume, :first_page, :last_page, :url, :version, :resource_type_general,
         
     | 
| 
      
 11 
     | 
    
         
            +
                            :keywords, :editor, :description, :alternate_identifiers, :language, :size,
         
     | 
| 
      
 12 
     | 
    
         
            +
                            :formats, :schema_version, :resource_type_general, :meta, :periodical,
         
     | 
| 
      
 13 
     | 
    
         
            +
                            :format, :funding_references, :style, :locale, :state, :geo_location,
         
     | 
| 
      
 14 
     | 
    
         
            +
                            :type, :additional_type, :citeproc_type, :bibtex_type, :ris_type, :content_url, :related_identifiers
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
       10 
16 
     | 
    
         | 
| 
       11 
17 
     | 
    
         
             
                def initialize(input: nil, from: nil, **options)
         
     | 
| 
       12 
18 
     | 
    
         
             
                  id = normalize_id(input, options)
         
     | 
| 
         @@ -20,7 +26,7 @@ module Bolognese 
     | 
|
| 
       20 
26 
     | 
    
         
             
                  elsif input.present? && File.exist?(input)
         
     | 
| 
       21 
27 
     | 
    
         
             
                    ext = File.extname(input)
         
     | 
| 
       22 
28 
     | 
    
         
             
                    if %w(.bib .ris .xml .json).include?(ext)
         
     | 
| 
       23 
     | 
    
         
            -
                      hsh = { " 
     | 
| 
      
 29 
     | 
    
         
            +
                      hsh = { "url" => options[:url],
         
     | 
| 
       24 
30 
     | 
    
         
             
                        "state" => options[:state],
         
     | 
| 
       25 
31 
     | 
    
         
             
                        "date_registered" => options[:date_registered],
         
     | 
| 
       26 
32 
     | 
    
         
             
                        "date_updated" => options[:date_updated],
         
     | 
| 
         @@ -34,7 +40,7 @@ module Bolognese 
     | 
|
| 
       34 
40 
     | 
    
         
             
                      exit 1
         
     | 
| 
       35 
41 
     | 
    
         
             
                    end
         
     | 
| 
       36 
42 
     | 
    
         
             
                  else
         
     | 
| 
       37 
     | 
    
         
            -
                    hsh = { " 
     | 
| 
      
 43 
     | 
    
         
            +
                    hsh = { "url" => options[:url],
         
     | 
| 
       38 
44 
     | 
    
         
             
                            "state" => options[:state],
         
     | 
| 
       39 
45 
     | 
    
         
             
                            "date_registered" => options[:date_registered],
         
     | 
| 
       40 
46 
     | 
    
         
             
                            "date_updated" => options[:date_updated],
         
     | 
| 
         @@ -57,7 +63,7 @@ module Bolognese 
     | 
|
| 
       57 
63 
     | 
    
         
             
                  @sandbox = options[:sandbox]
         
     | 
| 
       58 
64 
     | 
    
         | 
| 
       59 
65 
     | 
    
         
             
                  # options that come from the datacite database
         
     | 
| 
       60 
     | 
    
         
            -
                  @ 
     | 
| 
      
 66 
     | 
    
         
            +
                  @url = hsh.to_h["url"].presence || options[:url].presence
         
     | 
| 
       61 
67 
     | 
    
         
             
                  @state = hsh.to_h["state"].presence
         
     | 
| 
       62 
68 
     | 
    
         
             
                  @date_registered = hsh.to_h["date_registered"].presence
         
     | 
| 
       63 
69 
     | 
    
         
             
                  @date_updated = hsh.to_h["date_updated"].presence
         
     | 
| 
         @@ -119,8 +125,8 @@ module Bolognese 
     | 
|
| 
       119 
125 
     | 
    
         
             
                  @size ||= meta.fetch("size", nil)
         
     | 
| 
       120 
126 
     | 
    
         
             
                end
         
     | 
| 
       121 
127 
     | 
    
         | 
| 
       122 
     | 
    
         
            -
                def  
     | 
| 
       123 
     | 
    
         
            -
                  @ 
     | 
| 
      
 128 
     | 
    
         
            +
                def formats
         
     | 
| 
      
 129 
     | 
    
         
            +
                  @formats ||= meta.fetch("formats", nil)
         
     | 
| 
       124 
130 
     | 
    
         
             
                end
         
     | 
| 
       125 
131 
     | 
    
         | 
| 
       126 
132 
     | 
    
         
             
                def schema_version
         
     | 
| 
         @@ -135,12 +141,12 @@ module Bolognese 
     | 
|
| 
       135 
141 
     | 
    
         
             
                  @related_identifiers ||= meta.fetch("related_identifiers", nil)
         
     | 
| 
       136 
142 
     | 
    
         
             
                end
         
     | 
| 
       137 
143 
     | 
    
         | 
| 
       138 
     | 
    
         
            -
                def  
     | 
| 
       139 
     | 
    
         
            -
                  @ 
     | 
| 
      
 144 
     | 
    
         
            +
                def url
         
     | 
| 
      
 145 
     | 
    
         
            +
                  @url ||= meta.fetch("url", nil)
         
     | 
| 
       140 
146 
     | 
    
         
             
                end
         
     | 
| 
       141 
147 
     | 
    
         | 
| 
       142 
     | 
    
         
            -
                def  
     | 
| 
       143 
     | 
    
         
            -
                  @ 
     | 
| 
      
 148 
     | 
    
         
            +
                def version
         
     | 
| 
      
 149 
     | 
    
         
            +
                  @version ||= meta.fetch("version", nil)
         
     | 
| 
       144 
150 
     | 
    
         
             
                end
         
     | 
| 
       145 
151 
     | 
    
         | 
| 
       146 
152 
     | 
    
         
             
                def publication_year
         
     | 
| 
         @@ -62,15 +62,7 @@ module Bolognese 
     | 
|
| 
       62 
62 
     | 
    
         
             
                include Bolognese::Writers::TurtleWriter
         
     | 
| 
       63 
63 
     | 
    
         | 
| 
       64 
64 
     | 
    
         
             
                attr_accessor :string, :from, :sandbox, :meta, :regenerate, :issue, :contributor
         
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
       66 
     | 
    
         
            -
                attr_writer :identifier, :creator, :title, :publisher, :rights, :dates, :date_published, :date_modified,
         
     | 
| 
       67 
     | 
    
         
            -
                            :date_updated, :journal, :volume, :first_page, :last_page, :b_url, :b_version, :resource_type_general,
         
     | 
| 
       68 
     | 
    
         
            -
                            :keywords, :editor, :description, :alternate_identifiers, :language, :size,
         
     | 
| 
       69 
     | 
    
         
            -
                            :b_format, :schema_version, :resource_type_general, :meta, :periodical,
         
     | 
| 
       70 
     | 
    
         
            -
                            :format, :funding_references, :style, :locale, :state, :geo_location,
         
     | 
| 
       71 
     | 
    
         
            -
                            :type, :additional_type, :citeproc_type, :bibtex_type, :ris_type, :content_url, :related_identifiers
         
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
       73 
     | 
    
         
            -
                attr_reader :doc, :service_provider, :page_start, :page_end, :related_identifier, :reverse, :name_detector
         
     | 
| 
      
 65 
     | 
    
         
            +
                attr_reader :doc, :service_provider, :page_start, :page_end, :reverse, :name_detector
         
     | 
| 
       74 
66 
     | 
    
         | 
| 
       75 
67 
     | 
    
         
             
                # replace DOI in XML if provided in options
         
     | 
| 
       76 
68 
     | 
    
         
             
                def raw
         
     | 
| 
         @@ -146,8 +138,8 @@ module Bolognese 
     | 
|
| 
       146 
138 
     | 
    
         
             
                    "page" => [first_page, last_page].compact.join("-").presence,
         
     | 
| 
       147 
139 
     | 
    
         
             
                    "publisher" => publisher,
         
     | 
| 
       148 
140 
     | 
    
         
             
                    "title" => parse_attributes(title, content: "text", first: true),
         
     | 
| 
       149 
     | 
    
         
            -
                    "URL" =>  
     | 
| 
       150 
     | 
    
         
            -
                    "version" =>  
     | 
| 
      
 141 
     | 
    
         
            +
                    "URL" => url,
         
     | 
| 
      
 142 
     | 
    
         
            +
                    "version" => version,
         
     | 
| 
       151 
143 
     | 
    
         
             
                    "volume" => volume
         
     | 
| 
       152 
144 
     | 
    
         
             
                  }.compact.symbolize_keys
         
     | 
| 
       153 
145 
     | 
    
         
             
                end
         
     | 
| 
         @@ -68,7 +68,7 @@ module Bolognese 
     | 
|
| 
       68 
68 
     | 
    
         
             
                      "resource_type_general" => Metadata::SO_TO_DC_TRANSLATIONS[type],
         
     | 
| 
       69 
69 
     | 
    
         
             
                      "additional_type" => Bolognese::Utils::BIB_TO_CR_TRANSLATIONS[meta.try(:type).to_s] || meta.try(:type).to_s,
         
     | 
| 
       70 
70 
     | 
    
         
             
                      "doi" => doi,
         
     | 
| 
       71 
     | 
    
         
            -
                      " 
     | 
| 
      
 71 
     | 
    
         
            +
                      "url" => meta.try(:url).to_s,
         
     | 
| 
       72 
72 
     | 
    
         
             
                      "title" => meta.try(:title).to_s,
         
     | 
| 
       73 
73 
     | 
    
         
             
                      "creator" => author,
         
     | 
| 
       74 
74 
     | 
    
         
             
                      "periodical" => periodical,
         
     | 
| 
         @@ -66,7 +66,7 @@ module Bolognese 
     | 
|
| 
       66 
66 
     | 
    
         
             
                      "ris_type" => CP_TO_RIS_TRANSLATIONS[type] || "GEN",
         
     | 
| 
       67 
67 
     | 
    
         
             
                      "resource_type_general" => Bolognese::Utils::SO_TO_DC_TRANSLATIONS[type],
         
     | 
| 
       68 
68 
     | 
    
         
             
                      "doi" => doi_from_url(doi),
         
     | 
| 
       69 
     | 
    
         
            -
                      " 
     | 
| 
      
 69 
     | 
    
         
            +
                      "url" => normalize_id(meta.fetch("URL", nil)),
         
     | 
| 
       70 
70 
     | 
    
         
             
                      "title" => meta.fetch("title", nil),
         
     | 
| 
       71 
71 
     | 
    
         
             
                      "creator" => author,
         
     | 
| 
       72 
72 
     | 
    
         
             
                      "periodical" => periodical,
         
     | 
| 
         @@ -77,7 +77,7 @@ module Bolognese 
     | 
|
| 
       77 
77 
     | 
    
         
             
                      #{}"pagination" => meta.pages.to_s.presence,
         
     | 
| 
       78 
78 
     | 
    
         
             
                      "description" => meta.fetch("abstract", nil).present? ? { "text" => sanitize(meta.fetch("abstract")) } : nil,
         
     | 
| 
       79 
79 
     | 
    
         
             
                      #{ }"rights" => { "id" => meta.field?(:copyright) && meta.copyright.to_s.presence },
         
     | 
| 
       80 
     | 
    
         
            -
                      " 
     | 
| 
      
 80 
     | 
    
         
            +
                      "version" => meta.fetch("version", nil),
         
     | 
| 
       81 
81 
     | 
    
         
             
                      "keywords" => meta.fetch("categories", nil),
         
     | 
| 
       82 
82 
     | 
    
         
             
                      "state" => state
         
     | 
| 
       83 
83 
     | 
    
         
             
                    }
         
     | 
| 
         @@ -42,7 +42,7 @@ module Bolognese 
     | 
|
| 
       42 
42 
     | 
    
         
             
                      "resource_type_general" => Bolognese::Utils::SO_TO_DC_TRANSLATIONS[type],
         
     | 
| 
       43 
43 
     | 
    
         
             
                      "identifier" => identifier,
         
     | 
| 
       44 
44 
     | 
    
         
             
                      "doi" => validate_doi(id),
         
     | 
| 
       45 
     | 
    
         
            -
                      " 
     | 
| 
      
 45 
     | 
    
         
            +
                      "url" => normalize_id(meta.fetch("codeRepository", nil)),
         
     | 
| 
       46 
46 
     | 
    
         
             
                      "title" => meta.fetch("title", nil),
         
     | 
| 
       47 
47 
     | 
    
         
             
                      "creator" => author,
         
     | 
| 
       48 
48 
     | 
    
         
             
                      "editor" => editor,
         
     | 
| 
         @@ -53,7 +53,7 @@ module Bolognese 
     | 
|
| 
       53 
53 
     | 
    
         
             
                      "date_modified" => meta.fetch("dateModified", nil),
         
     | 
| 
       54 
54 
     | 
    
         
             
                      "description" => meta.fetch("description", nil).present? ? { "text" => sanitize(meta.fetch("description")) } : nil,
         
     | 
| 
       55 
55 
     | 
    
         
             
                      "rights" => { "id" => meta.fetch("license", nil) },
         
     | 
| 
       56 
     | 
    
         
            -
                      " 
     | 
| 
      
 56 
     | 
    
         
            +
                      "version" => meta.fetch("version", nil),
         
     | 
| 
       57 
57 
     | 
    
         
             
                      "keywords" => meta.fetch("tags", nil),
         
     | 
| 
       58 
58 
     | 
    
         
             
                      "state" => state
         
     | 
| 
       59 
59 
     | 
    
         
             
                    }
         
     | 
| 
         @@ -97,7 +97,7 @@ module Bolognese 
     | 
|
| 
       97 
97 
     | 
    
         
             
                      "ris_type" => Bolognese::Utils::CR_TO_RIS_TRANSLATIONS[additional_type] || "JOUR",
         
     | 
| 
       98 
98 
     | 
    
         
             
                      "resource_type_general" => Bolognese::Utils::SO_TO_DC_TRANSLATIONS[type],
         
     | 
| 
       99 
99 
     | 
    
         
             
                      "doi" => doi,
         
     | 
| 
       100 
     | 
    
         
            -
                      " 
     | 
| 
      
 100 
     | 
    
         
            +
                      "url" => bibliographic_metadata.dig("doi_data", "resource"),
         
     | 
| 
       101 
101 
     | 
    
         
             
                      "title" => parse_attributes(bibliographic_metadata.dig("titles", "title")),
         
     | 
| 
       102 
102 
     | 
    
         
             
                      "alternate_identifiers" => crossref_alternate_identifiers(bibliographic_metadata),
         
     | 
| 
       103 
103 
     | 
    
         
             
                      "creator" => crossref_people(bibliographic_metadata, "author"),
         
     | 
| 
         @@ -115,7 +115,7 @@ module Bolognese 
     | 
|
| 
       115 
115 
     | 
    
         
             
                      "last_page" => bibliographic_metadata.dig("pages", "last_page"),
         
     | 
| 
       116 
116 
     | 
    
         
             
                      "description" => crossref_description(bibliographic_metadata),
         
     | 
| 
       117 
117 
     | 
    
         
             
                      "rights" => crossref_license(program_metadata),
         
     | 
| 
       118 
     | 
    
         
            -
                      " 
     | 
| 
      
 118 
     | 
    
         
            +
                      "version" => nil,
         
     | 
| 
       119 
119 
     | 
    
         
             
                      "keywords" => nil,
         
     | 
| 
       120 
120 
     | 
    
         
             
                      "language" => nil,
         
     | 
| 
       121 
121 
     | 
    
         
             
                      "size" => nil,
         
     | 
| 
         @@ -27,7 +27,7 @@ module Bolognese 
     | 
|
| 
       27 
27 
     | 
    
         
             
                      "ris_type" => Bolognese::Utils::SO_TO_RIS_TRANSLATIONS[resource_type_general.to_s.dasherize] || "GEN",
         
     | 
| 
       28 
28 
     | 
    
         
             
                      "resource_type_general" => resource_type_general,
         
     | 
| 
       29 
29 
     | 
    
         
             
                      "doi" => validate_doi(meta.fetch("doi", nil)),
         
     | 
| 
       30 
     | 
    
         
            -
                      " 
     | 
| 
      
 30 
     | 
    
         
            +
                      "url" => normalize_id(meta.fetch("url", nil)),
         
     | 
| 
       31 
31 
     | 
    
         
             
                      "title" => meta.fetch("title", nil),
         
     | 
| 
       32 
32 
     | 
    
         
             
                      "alternate_identifiers" => meta.fetch("alternate-identifiers", nil),
         
     | 
| 
       33 
33 
     | 
    
         
             
                      "creator" => meta.fetch("creator", nil),
         
     | 
| 
         @@ -42,11 +42,11 @@ module Bolognese 
     | 
|
| 
       42 
42 
     | 
    
         
             
                      "date_modified" => meta.fetch("date-modified", nil),
         
     | 
| 
       43 
43 
     | 
    
         
             
                      "description" => meta.fetch("description", nil),
         
     | 
| 
       44 
44 
     | 
    
         
             
                      "rights" => meta.fetch("rights", nil),
         
     | 
| 
       45 
     | 
    
         
            -
                      " 
     | 
| 
      
 45 
     | 
    
         
            +
                      "version" => meta.fetch("version", nil),
         
     | 
| 
       46 
46 
     | 
    
         
             
                      "keywords" => meta.fetch("subject", nil),
         
     | 
| 
       47 
47 
     | 
    
         
             
                      "language" => meta.fetch("language", nil),
         
     | 
| 
       48 
48 
     | 
    
         
             
                      "size" => meta.fetch("size", nil),
         
     | 
| 
       49 
     | 
    
         
            -
                      " 
     | 
| 
      
 49 
     | 
    
         
            +
                      "formats" => meta.fetch("formats", nil),
         
     | 
| 
       50 
50 
     | 
    
         
             
                      "geo_location" => meta.fetch("geo-location", nil),
         
     | 
| 
       51 
51 
     | 
    
         
             
                      "schema_version" => meta.fetch("schema-version", nil),
         
     | 
| 
       52 
52 
     | 
    
         
             
                      "state" => state
         
     | 
| 
         @@ -39,7 +39,7 @@ module Bolognese 
     | 
|
| 
       39 
39 
     | 
    
         
             
                    end.compact
         
     | 
| 
       40 
40 
     | 
    
         | 
| 
       41 
41 
     | 
    
         
             
                    { "string" => string,
         
     | 
| 
       42 
     | 
    
         
            -
                      " 
     | 
| 
      
 42 
     | 
    
         
            +
                      "url" => attributes.fetch("url", nil),
         
     | 
| 
       43 
43 
     | 
    
         
             
                      "state" => attributes.fetch("state", nil),
         
     | 
| 
       44 
44 
     | 
    
         
             
                      "date_registered" => attributes.fetch("minted", nil),
         
     | 
| 
       45 
45 
     | 
    
         
             
                      "date_updated" => attributes.fetch("updated", nil),
         
     | 
| 
         @@ -174,12 +174,12 @@ module Bolognese 
     | 
|
| 
       174 
174 
     | 
    
         
             
                      "date_modified" => datacite_date(dates, "Updated"),
         
     | 
| 
       175 
175 
     | 
    
         
             
                      "description" => description,
         
     | 
| 
       176 
176 
     | 
    
         
             
                      "rights" => rights,
         
     | 
| 
       177 
     | 
    
         
            -
                      " 
     | 
| 
      
 177 
     | 
    
         
            +
                      "version" => meta.fetch("version", nil),
         
     | 
| 
       178 
178 
     | 
    
         
             
                      "keywords" => keywords,
         
     | 
| 
       179 
179 
     | 
    
         
             
                      "language" => meta.fetch("language", nil),
         
     | 
| 
       180 
180 
     | 
    
         
             
                      "geo_location" => geo_location,
         
     | 
| 
       181 
181 
     | 
    
         
             
                      "related_identifiers" => related_identifiers,
         
     | 
| 
       182 
     | 
    
         
            -
                      " 
     | 
| 
      
 182 
     | 
    
         
            +
                      "formats" => formats,
         
     | 
| 
       183 
183 
     | 
    
         
             
                      "size" => sizes,
         
     | 
| 
       184 
184 
     | 
    
         
             
                      "schema_version" => schema_version,
         
     | 
| 
       185 
185 
     | 
    
         
             
                      "state" => state
         
     | 
| 
         @@ -67,7 +67,7 @@ module Bolognese 
     | 
|
| 
       67 
67 
     | 
    
         
             
                      "ris_type" => ris_type,
         
     | 
| 
       68 
68 
     | 
    
         
             
                      "resource_type_general" => Metadata::SO_TO_DC_TRANSLATIONS[type],
         
     | 
| 
       69 
69 
     | 
    
         
             
                      "doi" => doi,
         
     | 
| 
       70 
     | 
    
         
            -
                      " 
     | 
| 
      
 70 
     | 
    
         
            +
                      "url" => meta.fetch("UR", nil),
         
     | 
| 
       71 
71 
     | 
    
         
             
                      "title" => meta.fetch("T1", nil),
         
     | 
| 
       72 
72 
     | 
    
         
             
                      "creator" => get_authors(author),
         
     | 
| 
       73 
73 
     | 
    
         
             
                      "publisher" => meta.fetch("PB", "(:unav)"),
         
     | 
| 
         @@ -123,10 +123,10 @@ module Bolognese 
     | 
|
| 
       123 
123 
     | 
    
         
             
                      "doi" => validate_doi(id),
         
     | 
| 
       124 
124 
     | 
    
         
             
                      "identifier" => identifier,
         
     | 
| 
       125 
125 
     | 
    
         
             
                      "alternate_identifiers" => alternate_identifiers,
         
     | 
| 
       126 
     | 
    
         
            -
                      " 
     | 
| 
      
 126 
     | 
    
         
            +
                      "url" => normalize_id(meta.fetch("url", nil)),
         
     | 
| 
       127 
127 
     | 
    
         
             
                      "content_url" => Array.wrap(meta.fetch("contentUrl", nil)).unwrap,
         
     | 
| 
       128 
128 
     | 
    
         
             
                      "size" => meta.fetch("contenSize", nil),
         
     | 
| 
       129 
     | 
    
         
            -
                      " 
     | 
| 
      
 129 
     | 
    
         
            +
                      "formats" => Array.wrap(meta.fetch("encodingFormat", nil) || meta.fetch("fileFormat", nil)).unwrap,
         
     | 
| 
       130 
130 
     | 
    
         
             
                      "title" => meta.fetch("name", nil),
         
     | 
| 
       131 
131 
     | 
    
         
             
                      "creator" => author,
         
     | 
| 
       132 
132 
     | 
    
         
             
                      "editor" => editor,
         
     | 
| 
         @@ -139,7 +139,7 @@ module Bolognese 
     | 
|
| 
       139 
139 
     | 
    
         
             
                      "date_modified" => meta.fetch("dateModified", nil),
         
     | 
| 
       140 
140 
     | 
    
         
             
                      "description" => meta.fetch("description", nil).present? ? { "text" => sanitize(meta.fetch("description")) } : nil,
         
     | 
| 
       141 
141 
     | 
    
         
             
                      "rights" => rights,
         
     | 
| 
       142 
     | 
    
         
            -
                      " 
     | 
| 
      
 142 
     | 
    
         
            +
                      "version" => meta.fetch("version", nil),
         
     | 
| 
       143 
143 
     | 
    
         
             
                      "keywords" => meta.fetch("keywords", nil).to_s.split(", "),
         
     | 
| 
       144 
144 
     | 
    
         
             
                      "state" => state,
         
     | 
| 
       145 
145 
     | 
    
         
             
                      "schema_version" => meta.fetch("schemaVersion", nil),
         
     | 
    
        data/lib/bolognese/version.rb
    CHANGED
    
    
| 
         @@ -10,7 +10,7 @@ module Bolognese 
     | 
|
| 
       10 
10 
     | 
    
         
             
                      bibtex_type: bibtex_type.presence || "misc",
         
     | 
| 
       11 
11 
     | 
    
         
             
                      bibtex_key: identifier,
         
     | 
| 
       12 
12 
     | 
    
         
             
                      doi: doi,
         
     | 
| 
       13 
     | 
    
         
            -
                      url:  
     | 
| 
      
 13 
     | 
    
         
            +
                      url: url,
         
     | 
| 
       14 
14 
     | 
    
         
             
                      author: authors_as_string(creator),
         
     | 
| 
       15 
15 
     | 
    
         
             
                      keywords: keywords.present? ? Array.wrap(keywords).map { |k| parse_attributes(k, content: "text", first: true) }.join(", ") : nil,
         
     | 
| 
       16 
16 
     | 
    
         
             
                      language: language,
         
     | 
| 
         @@ -11,11 +11,11 @@ module Bolognese 
     | 
|
| 
       11 
11 
     | 
    
         
             
                      "@type" => type,
         
     | 
| 
       12 
12 
     | 
    
         
             
                      "@id" => identifier,
         
     | 
| 
       13 
13 
     | 
    
         
             
                      "identifier" => identifier,
         
     | 
| 
       14 
     | 
    
         
            -
                      "codeRepository" =>  
     | 
| 
      
 14 
     | 
    
         
            +
                      "codeRepository" => url,
         
     | 
| 
       15 
15 
     | 
    
         
             
                      "title" => title,
         
     | 
| 
       16 
16 
     | 
    
         
             
                      "agents" => creator,
         
     | 
| 
       17 
17 
     | 
    
         
             
                      "description" => parse_attributes(description, content: "text", first: true),
         
     | 
| 
       18 
     | 
    
         
            -
                      "version" =>  
     | 
| 
      
 18 
     | 
    
         
            +
                      "version" => version,
         
     | 
| 
       19 
19 
     | 
    
         
             
                      "tags" => keywords.to_s.split(", ").presence,
         
     | 
| 
       20 
20 
     | 
    
         
             
                      "datePublished" => date_published,
         
     | 
| 
       21 
21 
     | 
    
         
             
                      "dateModified" => date_modified,
         
     | 
| 
         @@ -7,7 +7,7 @@ module Bolognese 
     | 
|
| 
       7 
7 
     | 
    
         
             
                    hsh = {
         
     | 
| 
       8 
8 
     | 
    
         
             
                      "id" => identifier,
         
     | 
| 
       9 
9 
     | 
    
         
             
                      "doi" => doi,
         
     | 
| 
       10 
     | 
    
         
            -
                      "url" =>  
     | 
| 
      
 10 
     | 
    
         
            +
                      "url" => url,
         
     | 
| 
       11 
11 
     | 
    
         
             
                      "type" => type,
         
     | 
| 
       12 
12 
     | 
    
         
             
                      "additional_type" => additional_type,
         
     | 
| 
       13 
13 
     | 
    
         
             
                      "citeproc_type" => citeproc_type,
         
     | 
| 
         @@ -27,8 +27,8 @@ module Bolognese 
     | 
|
| 
       27 
27 
     | 
    
         
             
                      "language" => language,
         
     | 
| 
       28 
28 
     | 
    
         
             
                      "alternate_identifiers" => alternate_identifiers,
         
     | 
| 
       29 
29 
     | 
    
         
             
                      "size" => size,
         
     | 
| 
       30 
     | 
    
         
            -
                      " 
     | 
| 
       31 
     | 
    
         
            -
                      "version" =>  
     | 
| 
      
 30 
     | 
    
         
            +
                      "formats" => formats,
         
     | 
| 
      
 31 
     | 
    
         
            +
                      "version" => version,
         
     | 
| 
       32 
32 
     | 
    
         
             
                      "rights" => rights,
         
     | 
| 
       33 
33 
     | 
    
         
             
                      "description" => description,
         
     | 
| 
       34 
34 
     | 
    
         
             
                      "volume" => volume,
         
     | 
| 
         @@ -7,7 +7,7 @@ module Bolognese 
     | 
|
| 
       7 
7 
     | 
    
         
             
                    hsh = {
         
     | 
| 
       8 
8 
     | 
    
         
             
                      "id" => identifier,
         
     | 
| 
       9 
9 
     | 
    
         
             
                      "doi" => doi,
         
     | 
| 
       10 
     | 
    
         
            -
                      "url" =>  
     | 
| 
      
 10 
     | 
    
         
            +
                      "url" => url,
         
     | 
| 
       11 
11 
     | 
    
         
             
                      "creator" => creator,
         
     | 
| 
       12 
12 
     | 
    
         
             
                      "title" => title,
         
     | 
| 
       13 
13 
     | 
    
         
             
                      "publisher" => publisher,
         
     | 
| 
         @@ -24,8 +24,8 @@ module Bolognese 
     | 
|
| 
       24 
24 
     | 
    
         
             
                      "alternate-identifiers" => alternate_identifiers,
         
     | 
| 
       25 
25 
     | 
    
         
             
                      "related-identifiers" => related_identifiers,
         
     | 
| 
       26 
26 
     | 
    
         
             
                      "size" => size,
         
     | 
| 
       27 
     | 
    
         
            -
                      " 
     | 
| 
       28 
     | 
    
         
            -
                      "version" =>  
     | 
| 
      
 27 
     | 
    
         
            +
                      "formats" => formats,
         
     | 
| 
      
 28 
     | 
    
         
            +
                      "version" => version,
         
     | 
| 
       29 
29 
     | 
    
         
             
                      "rights" => rights,
         
     | 
| 
       30 
30 
     | 
    
         
             
                      "description" => description,
         
     | 
| 
       31 
31 
     | 
    
         
             
                      "geo-location" => geo_location,
         
     | 
| 
         @@ -22,7 +22,7 @@ module Bolognese 
     | 
|
| 
       22 
22 
     | 
    
         
             
                    insert_issue(xml) if issue.present?
         
     | 
| 
       23 
23 
     | 
    
         
             
                    insert_fpage(xml) if first_page.present?
         
     | 
| 
       24 
24 
     | 
    
         
             
                    insert_lpage(xml) if last_page.present?
         
     | 
| 
       25 
     | 
    
         
            -
                    insert_version(xml) if  
     | 
| 
      
 25 
     | 
    
         
            +
                    insert_version(xml) if version.present?
         
     | 
| 
       26 
26 
     | 
    
         
             
                    insert_pub_id(xml)
         
     | 
| 
       27 
27 
     | 
    
         
             
                  end
         
     | 
| 
       28 
28 
     | 
    
         | 
| 
         @@ -112,7 +112,7 @@ module Bolognese 
     | 
|
| 
       112 
112 
     | 
    
         
             
                  end
         
     | 
| 
       113 
113 
     | 
    
         | 
| 
       114 
114 
     | 
    
         
             
                  def insert_version(xml)
         
     | 
| 
       115 
     | 
    
         
            -
                    xml.version( 
     | 
| 
      
 115 
     | 
    
         
            +
                    xml.version(version)
         
     | 
| 
       116 
116 
     | 
    
         
             
                  end
         
     | 
| 
       117 
117 
     | 
    
         | 
| 
       118 
118 
     | 
    
         
             
                  def insert_pub_id(xml)
         
     | 
| 
         @@ -10,7 +10,7 @@ module Bolognese 
     | 
|
| 
       10 
10 
     | 
    
         
             
                      "T2" => periodical && periodical["title"],
         
     | 
| 
       11 
11 
     | 
    
         
             
                      "AU" => to_ris(creator),
         
     | 
| 
       12 
12 
     | 
    
         
             
                      "DO" => doi,
         
     | 
| 
       13 
     | 
    
         
            -
                      "UR" =>  
     | 
| 
      
 13 
     | 
    
         
            +
                      "UR" => url,
         
     | 
| 
       14 
14 
     | 
    
         
             
                      "AB" => parse_attributes(description, content: "text", first: true),
         
     | 
| 
       15 
15 
     | 
    
         
             
                      "KW" => Array.wrap(keywords).map { |k| parse_attributes(k, content: "text", first: true) }.presence,
         
     | 
| 
       16 
16 
     | 
    
         
             
                      "PY" => publication_year,
         
     | 
| 
         @@ -8,18 +8,18 @@ module Bolognese 
     | 
|
| 
       8 
8 
     | 
    
         
             
                      "@type" => type,
         
     | 
| 
       9 
9 
     | 
    
         
             
                      "@id" => identifier,
         
     | 
| 
       10 
10 
     | 
    
         
             
                      "identifier" => to_schema_org_identifier(identifier, alternate_identifiers: alternate_identifiers),
         
     | 
| 
       11 
     | 
    
         
            -
                      "url" =>  
     | 
| 
      
 11 
     | 
    
         
            +
                      "url" => url,
         
     | 
| 
       12 
12 
     | 
    
         
             
                      "additionalType" => additional_type,
         
     | 
| 
       13 
13 
     | 
    
         
             
                      "name" => parse_attributes(title, content: "text", first: true),
         
     | 
| 
       14 
14 
     | 
    
         
             
                      "author" => to_schema_org(creator),
         
     | 
| 
       15 
15 
     | 
    
         
             
                      "editor" => to_schema_org(editor),
         
     | 
| 
       16 
16 
     | 
    
         
             
                      "description" => parse_attributes(description, content: "text", first: true),
         
     | 
| 
       17 
17 
     | 
    
         
             
                      "license" => Array.wrap(rights).map { |l| l["id"] }.compact.unwrap,
         
     | 
| 
       18 
     | 
    
         
            -
                      "version" =>  
     | 
| 
      
 18 
     | 
    
         
            +
                      "version" => version,
         
     | 
| 
       19 
19 
     | 
    
         
             
                      "keywords" => keywords.present? ? Array.wrap(keywords).map { |k| parse_attributes(k, content: "text", first: true) }.join(", ") : nil,
         
     | 
| 
       20 
20 
     | 
    
         
             
                      "inLanguage" => language,
         
     | 
| 
       21 
21 
     | 
    
         
             
                      "contentSize" => size,
         
     | 
| 
       22 
     | 
    
         
            -
                      "encodingFormat" =>  
     | 
| 
      
 22 
     | 
    
         
            +
                      "encodingFormat" => formats,
         
     | 
| 
       23 
23 
     | 
    
         
             
                      "dateCreated" => Array.wrap(dates).find { |d| d["type"] == "Created" }.to_h.fetch("__content__", nil),
         
     | 
| 
       24 
24 
     | 
    
         
             
                      "datePublished" => date_published,
         
     | 
| 
       25 
25 
     | 
    
         
             
                      "dateModified" => date_modified,
         
     | 
| 
         @@ -30,7 +30,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       30 
30 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       31 
31 
     | 
    
         
             
                  expect(subject.identifier).to eq("https://doi.org/10.7554/elife.01567")
         
     | 
| 
       32 
32 
     | 
    
         
             
                  expect(subject.type).to eq("ScholarlyArticle")
         
     | 
| 
       33 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 33 
     | 
    
         
            +
                  expect(subject.url).to eq("http://elifesciences.org/lookup/doi/10.7554/eLife.01567")
         
     | 
| 
       34 
34 
     | 
    
         
             
                  expect(subject.resource_type_general).to eq("Text")
         
     | 
| 
       35 
35 
     | 
    
         
             
                  expect(subject.creator.length).to eq(5)
         
     | 
| 
       36 
36 
     | 
    
         
             
                  expect(subject.creator.first).to eq("type"=>"Person", "name"=>"Martial Sankar", "givenName"=>"Martial", "familyName"=>"Sankar")
         
     | 
| 
         @@ -17,7 +17,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       17 
17 
     | 
    
         
             
                it "BlogPosting" do
         
     | 
| 
       18 
18 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       19 
19 
     | 
    
         
             
                  expect(subject.identifier).to eq("https://doi.org/10.5438/4k3m-nyvg")
         
     | 
| 
       20 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 20 
     | 
    
         
            +
                  expect(subject.url).to eq("https://blog.datacite.org/eating-your-own-dog-food")
         
     | 
| 
       21 
21 
     | 
    
         
             
                  expect(subject.type).to eq("BlogPosting")
         
     | 
| 
       22 
22 
     | 
    
         
             
                  expect(subject.resource_type_general).to eq("Text")
         
     | 
| 
       23 
23 
     | 
    
         
             
                  expect(subject.creator).to eq("type"=>"Person", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner")
         
     | 
| 
         @@ -19,7 +19,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       19 
19 
     | 
    
         
             
                it "maremma" do
         
     | 
| 
       20 
20 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       21 
21 
     | 
    
         
             
                  expect(subject.identifier).to eq("https://doi.org/10.5438/qeg0-3gm3")
         
     | 
| 
       22 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 22 
     | 
    
         
            +
                  expect(subject.url).to eq("https://github.com/datacite/maremma")
         
     | 
| 
       23 
23 
     | 
    
         
             
                  expect(subject.type).to eq("SoftwareSourceCode")
         
     | 
| 
       24 
24 
     | 
    
         
             
                  expect(subject.creator).to eq("type"=>"Person", "id"=>"http://orcid.org/0000-0003-0077-4738", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner")
         
     | 
| 
       25 
25 
     | 
    
         
             
                  expect(subject.title).to eq("Maremma: a Ruby library for simplified network calls")
         
     | 
| 
         @@ -35,7 +35,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       35 
35 
     | 
    
         
             
                  input = fixture_path + 'codemeta.json'
         
     | 
| 
       36 
36 
     | 
    
         
             
                  subject = Bolognese::Metadata.new(input: input)
         
     | 
| 
       37 
37 
     | 
    
         
             
                  expect(subject.identifier).to eq("https://doi.org/10.5063/f1m61h5x")
         
     | 
| 
       38 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 38 
     | 
    
         
            +
                  expect(subject.url).to eq("https://github.com/DataONEorg/rdataone")
         
     | 
| 
       39 
39 
     | 
    
         
             
                  expect(subject.type).to eq("SoftwareSourceCode")
         
     | 
| 
       40 
40 
     | 
    
         
             
                  expect(subject.creator).to eq( [{"type"=>"Person",
         
     | 
| 
       41 
41 
     | 
    
         
             
                                                  "id"=>"http://orcid.org/0000-0003-0077-4738",
         
     | 
| 
         @@ -51,7 +51,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       51 
51 
     | 
    
         
             
                  expect(subject.title).to eq("R Interface to the DataONE REST API")
         
     | 
| 
       52 
52 
     | 
    
         
             
                  expect(subject.description["text"]).to start_with("Provides read and write access to data and metadata")
         
     | 
| 
       53 
53 
     | 
    
         
             
                  expect(subject.keywords).to eq(["data sharing", "data repository", "DataONE"])
         
     | 
| 
       54 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 54 
     | 
    
         
            +
                  expect(subject.version).to eq("2.0.0")
         
     | 
| 
       55 
55 
     | 
    
         
             
                  expect(subject.dates).to eq("2016-05-27")
         
     | 
| 
       56 
56 
     | 
    
         
             
                  expect(subject.date_published).to eq("2016-05-27")
         
     | 
| 
       57 
57 
     | 
    
         
             
                  expect(subject.date_modified).to eq("2016-05-27")
         
     | 
| 
         @@ -63,7 +63,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       63 
63 
     | 
    
         
             
                  subject = Bolognese::Metadata.new(input: input)
         
     | 
| 
       64 
64 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       65 
65 
     | 
    
         
             
                  expect(subject.identifier).to eq("https://doi.org/10.5438/qeg0-3gm3")
         
     | 
| 
       66 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 66 
     | 
    
         
            +
                  expect(subject.url).to eq("https://github.com/datacite/maremma")
         
     | 
| 
       67 
67 
     | 
    
         
             
                  expect(subject.type).to eq("SoftwareSourceCode")
         
     | 
| 
       68 
68 
     | 
    
         
             
                  expect(subject.creator).to eq("type"=>"Person", "id"=>"http://orcid.org/0000-0003-0077-4738", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner")
         
     | 
| 
       69 
69 
     | 
    
         
             
                  expect(subject.title).to eq("Maremma: a Ruby library for simplified network calls")
         
     | 
| 
         @@ -80,7 +80,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       80 
80 
     | 
    
         
             
                  subject = Bolognese::Metadata.new(input: input)
         
     | 
| 
       81 
81 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       82 
82 
     | 
    
         
             
                  expect(subject.identifier).to eq("https://doi.org/10.5438/wr0x-e194")
         
     | 
| 
       83 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 83 
     | 
    
         
            +
                  expect(subject.url).to eq("https://github.com/datacite/metadata-reports")
         
     | 
| 
       84 
84 
     | 
    
         
             
                  expect(subject.type).to eq("SoftwareSourceCode")
         
     | 
| 
       85 
85 
     | 
    
         
             
                  expect(subject.creator.size).to eq(4)
         
     | 
| 
       86 
86 
     | 
    
         
             
                  expect(subject.creator.last).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0001-8135-3489", "name"=>"Lars Holm Nielsen", "givenName"=>"Lars Holm", "familyName"=>"Nielsen")
         
     | 
| 
         @@ -20,7 +20,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       20 
20 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       21 
21 
     | 
    
         
             
                  expect(subject.identifier).to eq("https://doi.org/10.7554/elife.01567")
         
     | 
| 
       22 
22 
     | 
    
         
             
                  expect(subject.type).to eq("ScholarlyArticle")
         
     | 
| 
       23 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 23 
     | 
    
         
            +
                  expect(subject.url).to eq("https://elifesciences.org/articles/01567")
         
     | 
| 
       24 
24 
     | 
    
         
             
                  expect(subject.additional_type).to eq("JournalArticle")
         
     | 
| 
       25 
25 
     | 
    
         
             
                  expect(subject.bibtex_type).to eq("article")
         
     | 
| 
       26 
26 
     | 
    
         
             
                  expect(subject.ris_type).to eq("JOUR")
         
     | 
| 
         @@ -55,7 +55,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       55 
55 
     | 
    
         
             
                  subject = Bolognese::Metadata.new(input: input)
         
     | 
| 
       56 
56 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       57 
57 
     | 
    
         
             
                  expect(subject.identifier).to eq(input)
         
     | 
| 
       58 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 58 
     | 
    
         
            +
                  expect(subject.url).to eq("http://dx.plos.org/10.1371/journal.pone.0000030")
         
     | 
| 
       59 
59 
     | 
    
         
             
                  expect(subject.type).to eq("ScholarlyArticle")
         
     | 
| 
       60 
60 
     | 
    
         
             
                  expect(subject.additional_type).to eq("JournalArticle")
         
     | 
| 
       61 
61 
     | 
    
         
             
                  expect(subject.bibtex_type).to eq("article")
         
     | 
| 
         @@ -83,7 +83,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       83 
83 
     | 
    
         
             
                  subject = Bolognese::Metadata.new(input: input)
         
     | 
| 
       84 
84 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       85 
85 
     | 
    
         
             
                  expect(subject.identifier).to eq(input)
         
     | 
| 
       86 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 86 
     | 
    
         
            +
                  expect(subject.url).to eq("http://biorxiv.org/lookup/doi/10.1101/097196")
         
     | 
| 
       87 
87 
     | 
    
         
             
                  expect(subject.type).to eq("ScholarlyArticle")
         
     | 
| 
       88 
88 
     | 
    
         
             
                  expect(subject.additional_type).to eq("PostedContent")
         
     | 
| 
       89 
89 
     | 
    
         
             
                  expect(subject.bibtex_type).to eq("article")
         
     | 
| 
         @@ -106,7 +106,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       106 
106 
     | 
    
         
             
                  subject = Bolognese::Metadata.new(input: input)
         
     | 
| 
       107 
107 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       108 
108 
     | 
    
         
             
                  expect(subject.identifier).to eq("https://doi.org/10.1890/0012-9658(2006)87%5B2832:tiopma%5D2.0.co;2")
         
     | 
| 
       109 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 109 
     | 
    
         
            +
                  expect(subject.url).to eq("http://doi.wiley.com/10.1890/0012-9658(2006)87[2832:TIOPMA]2.0.CO;2")
         
     | 
| 
       110 
110 
     | 
    
         
             
                  expect(subject.type).to eq("ScholarlyArticle")
         
     | 
| 
       111 
111 
     | 
    
         
             
                  expect(subject.additional_type).to eq("JournalArticle")
         
     | 
| 
       112 
112 
     | 
    
         
             
                  expect(subject.resource_type_general).to eq("Text")
         
     | 
| 
         @@ -129,7 +129,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       129 
129 
     | 
    
         
             
                  subject = Bolognese::Metadata.new(input: input)
         
     | 
| 
       130 
130 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       131 
131 
     | 
    
         
             
                  expect(subject.identifier).to eq("https://doi.org/10.1155/2012/291294")
         
     | 
| 
       132 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 132 
     | 
    
         
            +
                  expect(subject.url).to eq("http://www.hindawi.com/journals/pm/2012/291294/")
         
     | 
| 
       133 
133 
     | 
    
         
             
                  expect(subject.type).to eq("ScholarlyArticle")
         
     | 
| 
       134 
134 
     | 
    
         
             
                  expect(subject.additional_type).to eq("JournalArticle")
         
     | 
| 
       135 
135 
     | 
    
         
             
                  expect(subject.resource_type_general).to eq("Text")
         
     | 
| 
         @@ -153,7 +153,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       153 
153 
     | 
    
         
             
                  subject = Bolognese::Metadata.new(input: input)
         
     | 
| 
       154 
154 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       155 
155 
     | 
    
         
             
                  expect(subject.identifier).to eq(input)
         
     | 
| 
       156 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 156 
     | 
    
         
            +
                  expect(subject.url).to eq("http://linkinghub.elsevier.com/retrieve/pii/S0014299915002332")
         
     | 
| 
       157 
157 
     | 
    
         
             
                  expect(subject.type).to eq("ScholarlyArticle")
         
     | 
| 
       158 
158 
     | 
    
         
             
                  expect(subject.additional_type).to eq("JournalArticle")
         
     | 
| 
       159 
159 
     | 
    
         
             
                  expect(subject.resource_type_general).to eq("Text")
         
     | 
| 
         @@ -172,7 +172,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       172 
172 
     | 
    
         
             
                  subject = Bolognese::Metadata.new(input: input)
         
     | 
| 
       173 
173 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       174 
174 
     | 
    
         
             
                  expect(subject.identifier).to eq("https://doi.org/10.2210/pdb4hhb/pdb")
         
     | 
| 
       175 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 175 
     | 
    
         
            +
                  expect(subject.url).to eq("ftp://ftp.wwpdb.org/pub/pdb/data/structures/divided/pdb/hh/pdb4hhb.ent.gz")
         
     | 
| 
       176 
176 
     | 
    
         
             
                  expect(subject.type).to eq("ScholarlyArticle")
         
     | 
| 
       177 
177 
     | 
    
         
             
                  expect(subject.additional_type).to eq("SaComponent")
         
     | 
| 
       178 
178 
     | 
    
         
             
                  expect(subject.resource_type_general).to eq("Text")
         
     | 
| 
         @@ -195,7 +195,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       195 
195 
     | 
    
         
             
                  subject = Bolognese::Metadata.new(input: input)
         
     | 
| 
       196 
196 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       197 
197 
     | 
    
         
             
                  expect(subject.identifier).to eq("https://doi.org/10.1007/978-3-662-46370-3_13")
         
     | 
| 
       198 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 198 
     | 
    
         
            +
                  expect(subject.url).to eq("http://link.springer.com/10.1007/978-3-662-46370-3_13")
         
     | 
| 
       199 
199 
     | 
    
         
             
                  expect(subject.type).to eq("Chapter")
         
     | 
| 
       200 
200 
     | 
    
         
             
                  expect(subject.additional_type).to eq("BookChapter")
         
     | 
| 
       201 
201 
     | 
    
         
             
                  expect(subject.resource_type_general).to eq("Text")
         
     | 
| 
         @@ -216,7 +216,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       216 
216 
     | 
    
         
             
                  subject = Bolognese::Metadata.new(input: input)
         
     | 
| 
       217 
217 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       218 
218 
     | 
    
         
             
                  expect(subject.identifier).to eq(input)
         
     | 
| 
       219 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 219 
     | 
    
         
            +
                  expect(subject.url).to eq("http://doi.wiley.com/10.1111/nph.14619")
         
     | 
| 
       220 
220 
     | 
    
         
             
                  expect(subject.type).to eq("ScholarlyArticle")
         
     | 
| 
       221 
221 
     | 
    
         
             
                  expect(subject.additional_type).to eq("JournalArticle")
         
     | 
| 
       222 
222 
     | 
    
         
             
                  expect(subject.resource_type_general).to eq("Text")
         
     | 
| 
         @@ -19,7 +19,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       19 
19 
     | 
    
         
             
                it "Dataset" do
         
     | 
| 
       20 
20 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       21 
21 
     | 
    
         
             
                  expect(subject.identifier).to eq("https://doi.org/10.5061/dryad.8515")
         
     | 
| 
       22 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 22 
     | 
    
         
            +
                  expect(subject.url).to eq("http://datadryad.org/resource/doi:10.5061/dryad.8515")
         
     | 
| 
       23 
23 
     | 
    
         
             
                  expect(subject.type).to eq("Dataset")
         
     | 
| 
       24 
24 
     | 
    
         
             
                  expect(subject.additional_type).to eq("DataPackage")
         
     | 
| 
       25 
25 
     | 
    
         
             
                  expect(subject.resource_type_general).to eq("Dataset")
         
     | 
| 
         @@ -441,7 +441,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       441 
441 
     | 
    
         
             
                  expect(subject.alternate_identifiers).to eq("type"=>"ISBN", "name"=>"937-0-4523-12357-6")
         
     | 
| 
       442 
442 
     | 
    
         
             
                  expect(subject.date_published).to eq("2010")
         
     | 
| 
       443 
443 
     | 
    
         
             
                  expect(subject.size).to eq("256 pages")
         
     | 
| 
       444 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 444 
     | 
    
         
            +
                  expect(subject.formats).to eq("pdf")
         
     | 
| 
       445 
445 
     | 
    
         
             
                  expect(subject.content_url).to eq("https://example.org/report.pdf")
         
     | 
| 
       446 
446 
     | 
    
         
             
                  expect(subject.publication_year).to eq(2010)
         
     | 
| 
       447 
447 
     | 
    
         
             
                  expect(subject.related_identifiers.length).to eq(1)
         
     | 
| 
         @@ -568,7 +568,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       568 
568 
     | 
    
         
             
                                                 "givenName"=>"Henk",
         
     | 
| 
       569 
569 
     | 
    
         
             
                                                 "familyName"=>"Eskes"}])
         
     | 
| 
       570 
570 
     | 
    
         
             
                  expect(subject.title).to eq("Multi-Sensor Reanalysis (MSR) of total ozone, version 2")
         
     | 
| 
       571 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 571 
     | 
    
         
            +
                  expect(subject.version).to eq("2")
         
     | 
| 
       572 
572 
     | 
    
         
             
                  expect(subject.date_published).to eq("2015")
         
     | 
| 
       573 
573 
     | 
    
         
             
                  expect(subject.publisher).to eq("Royal Netherlands Meteorological Institute (KNMI)")
         
     | 
| 
       574 
574 
     | 
    
         
             
                  expect(subject.service_provider).to eq("DataCite")
         
     | 
| 
         @@ -682,7 +682,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       682 
682 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       683 
683 
     | 
    
         
             
                  expect(subject.identifier).to eq("https://doi.org/10.5061/dryad.8515")
         
     | 
| 
       684 
684 
     | 
    
         
             
                  expect(subject.doi).to eq("10.5061/dryad.8515")
         
     | 
| 
       685 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 685 
     | 
    
         
            +
                  expect(subject.url).to eq("http://datadryad.org/resource/doi:10.5061/dryad.8515")
         
     | 
| 
       686 
686 
     | 
    
         
             
                  expect(subject.type).to eq("Dataset")
         
     | 
| 
       687 
687 
     | 
    
         
             
                  expect(subject.title).to eq("A new malaria agent in African hominids.")
         
     | 
| 
       688 
688 
     | 
    
         
             
                end
         
     | 
| 
         @@ -692,7 +692,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       692 
692 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       693 
693 
     | 
    
         
             
                  expect(subject.identifier).to eq("https://doi.org/10.5061/dryad.8515")
         
     | 
| 
       694 
694 
     | 
    
         
             
                  expect(subject.doi).to eq("10.5061/dryad.8515")
         
     | 
| 
       695 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 695 
     | 
    
         
            +
                  expect(subject.url).to eq("http://datadryad.org/resource/doi:10.5061/dryad.8515")
         
     | 
| 
       696 
696 
     | 
    
         
             
                  expect(subject.type).to eq("Dataset")
         
     | 
| 
       697 
697 
     | 
    
         
             
                  expect(subject.title).to eq("Data from: A new malaria agent in African hominids.")
         
     | 
| 
       698 
698 
     | 
    
         
             
                  expect(subject.state).to eq("registered")
         
     | 
| 
         @@ -716,13 +716,13 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       716 
716 
     | 
    
         | 
| 
       717 
717 
     | 
    
         
             
              it "GTEx dataset" do
         
     | 
| 
       718 
718 
     | 
    
         
             
                input = fixture_path + 'gtex.xml'
         
     | 
| 
       719 
     | 
    
         
            -
                 
     | 
| 
      
 719 
     | 
    
         
            +
                url = "https://ors.datacite.org/doi:/10.25491/9hx8-ke93"
         
     | 
| 
       720 
720 
     | 
    
         
             
                content_url = "https://storage.googleapis.com/gtex_analysis_v7/single_tissue_eqtl_data/GTEx_Analysis_v7_eQTL_expression_matrices.tar.gz"
         
     | 
| 
       721 
     | 
    
         
            -
                subject = Bolognese::Metadata.new(input: input, from: 'datacite',  
     | 
| 
      
 721 
     | 
    
         
            +
                subject = Bolognese::Metadata.new(input: input, from: 'datacite', url: url, content_url: content_url)
         
     | 
| 
       722 
722 
     | 
    
         | 
| 
       723 
723 
     | 
    
         
             
                expect(subject.valid?).to be true
         
     | 
| 
       724 
724 
     | 
    
         
             
                expect(subject.identifier).to eq("https://doi.org/10.25491/9hx8-ke93")
         
     | 
| 
       725 
     | 
    
         
            -
                expect(subject. 
     | 
| 
      
 725 
     | 
    
         
            +
                expect(subject.url).to eq("https://ors.datacite.org/doi:/10.25491/9hx8-ke93")
         
     | 
| 
       726 
726 
     | 
    
         
             
                expect(subject.content_url).to eq("https://storage.googleapis.com/gtex_analysis_v7/single_tissue_eqtl_data/GTEx_Analysis_v7_eQTL_expression_matrices.tar.gz")
         
     | 
| 
       727 
727 
     | 
    
         
             
                expect(subject.type).to eq("Dataset")
         
     | 
| 
       728 
728 
     | 
    
         
             
                expect(subject.additional_type).to eq("DroNc-seq data")
         
     | 
| 
         @@ -732,7 +732,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       732 
732 
     | 
    
         
             
                expect(subject.date_published).to eq("2017")
         
     | 
| 
       733 
733 
     | 
    
         
             
                expect(subject.related_identifiers.length).to eq(4)
         
     | 
| 
       734 
734 
     | 
    
         
             
                expect(subject.related_identifiers.last).to eq("id"=>"https://www.ebi.ac.uk/miriam/main/datatypes/MIR:00000663", "related_identifier_type"=>"URL", "relation_type"=>"IsPartOf")
         
     | 
| 
       735 
     | 
    
         
            -
                expect(subject. 
     | 
| 
      
 735 
     | 
    
         
            +
                expect(subject.formats).to eq("application/tar")
         
     | 
| 
       736 
736 
     | 
    
         
             
                expect(subject.size).to eq("15.7M")
         
     | 
| 
       737 
737 
     | 
    
         
             
                expect(subject.periodical).to eq("id"=>"https://www.ebi.ac.uk/miriam/main/datatypes/MIR:00000663", "title"=>"GTEx", "type"=>"DataCatalog")
         
     | 
| 
       738 
738 
     | 
    
         
             
                expect(subject.publisher).to eq("GTEx")
         
     | 
| 
         @@ -30,7 +30,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       30 
30 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       31 
31 
     | 
    
         
             
                  expect(subject.identifier).to eq("https://doi.org/10.7554/elife.01567")
         
     | 
| 
       32 
32 
     | 
    
         
             
                  expect(subject.type).to eq("ScholarlyArticle")
         
     | 
| 
       33 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 33 
     | 
    
         
            +
                  expect(subject.url).to eq("http://elifesciences.org/lookup/doi/10.7554/eLife.01567")
         
     | 
| 
       34 
34 
     | 
    
         
             
                  expect(subject.resource_type_general).to eq("Text")
         
     | 
| 
       35 
35 
     | 
    
         
             
                  expect(subject.creator.length).to eq(5)
         
     | 
| 
       36 
36 
     | 
    
         
             
                  expect(subject.creator.first).to eq("type"=>"Person",
         
     | 
| 
         @@ -20,7 +20,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       20 
20 
     | 
    
         
             
                it "BlogPosting" do
         
     | 
| 
       21 
21 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       22 
22 
     | 
    
         
             
                  expect(subject.identifier).to eq("https://doi.org/10.5438/4k3m-nyvg")
         
     | 
| 
       23 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 23 
     | 
    
         
            +
                  expect(subject.url).to eq("https://blog.datacite.org/eating-your-own-dog-food")
         
     | 
| 
       24 
24 
     | 
    
         
             
                  expect(subject.type).to eq("BlogPosting")
         
     | 
| 
       25 
25 
     | 
    
         
             
                  expect(subject.creator).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner")
         
     | 
| 
       26 
26 
     | 
    
         
             
                  expect(subject.title).to eq("Eating your own Dog Food")
         
     | 
| 
         @@ -38,7 +38,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       38 
38 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       39 
39 
     | 
    
         
             
                  expect(subject.identifier).to eq("https://doi.org/10.5438/0000-00ss")
         
     | 
| 
       40 
40 
     | 
    
         
             
                  expect(subject.doi).to eq("10.5438/0000-00ss")
         
     | 
| 
       41 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 41 
     | 
    
         
            +
                  expect(subject.url).to eq("https://blog.datacite.org/eating-your-own-dog-food")
         
     | 
| 
       42 
42 
     | 
    
         
             
                  expect(subject.type).to eq("BlogPosting")
         
     | 
| 
       43 
43 
     | 
    
         
             
                end
         
     | 
| 
       44 
44 
     | 
    
         | 
| 
         @@ -49,7 +49,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       49 
49 
     | 
    
         
             
                  expect(subject.errors.first).to eq("43:0: ERROR: Element '{http://datacite.org/schema/kernel-4}publisher': [facet 'minLength'] The value has a length of '0'; this underruns the allowed minimum length of '1'.")
         
     | 
| 
       50 
50 
     | 
    
         
             
                  expect(subject.identifier).to eq("https://doi.org/10.5281/zenodo.1196821")
         
     | 
| 
       51 
51 
     | 
    
         
             
                  expect(subject.doi).to eq("10.5281/zenodo.1196821")
         
     | 
| 
       52 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 52 
     | 
    
         
            +
                  expect(subject.url).to eq("https://zenodo.org/record/1196821")
         
     | 
| 
       53 
53 
     | 
    
         
             
                  expect(subject.type).to eq("Dataset")
         
     | 
| 
       54 
54 
     | 
    
         
             
                  expect(subject.title).to eq("PsPM-SC4B: SCR, ECG, EMG, PSR and respiration measurements in a delay fear conditioning task with auditory CS and electrical US")
         
     | 
| 
       55 
55 
     | 
    
         
             
                  expect(subject.creator.size).to eq(6)
         
     | 
| 
         @@ -62,7 +62,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       62 
62 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       63 
63 
     | 
    
         
             
                  expect(subject.identifier).to eq("https://doi.org/10.1594/pangaea.836178")
         
     | 
| 
       64 
64 
     | 
    
         
             
                  expect(subject.doi).to eq("10.1594/pangaea.836178")
         
     | 
| 
       65 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 65 
     | 
    
         
            +
                  expect(subject.url).to eq("https://doi.pangaea.de/10.1594/PANGAEA.836178")
         
     | 
| 
       66 
66 
     | 
    
         
             
                  expect(subject.type).to eq("Dataset")
         
     | 
| 
       67 
67 
     | 
    
         
             
                  expect(subject.title).to eq("Hydrological and meteorological investigations in a lake near Kangerlussuaq, west Greenland")
         
     | 
| 
       68 
68 
     | 
    
         
             
                  expect(subject.creator.size).to eq(8)
         
     | 
| 
         @@ -77,7 +77,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       77 
77 
     | 
    
         
             
                #   #expect(subject.errors).to be true
         
     | 
| 
       78 
78 
     | 
    
         
             
                #   expect(subject.identifier).to eq("https://doi.org/10.3334/ornldaac/1418")
         
     | 
| 
       79 
79 
     | 
    
         
             
                #   expect(subject.doi).to eq("10.3334/ornldaac/1418")
         
     | 
| 
       80 
     | 
    
         
            -
                #   expect(subject. 
     | 
| 
      
 80 
     | 
    
         
            +
                #   expect(subject.url).to eq("https://doi.org/10.3334/ornldaac/1418")
         
     | 
| 
       81 
81 
     | 
    
         
             
                #   expect(subject.type).to eq("DataSet")
         
     | 
| 
       82 
82 
     | 
    
         
             
                #   expect(subject.title).to eq("AirMOSS: L2/3 Volumetric Soil Moisture Profiles Derived From Radar, 2012-2015")
         
     | 
| 
       83 
83 
     | 
    
         
             
                #   expect(subject.creator.size).to eq(8)
         
     | 
| 
         @@ -116,7 +116,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       116 
116 
     | 
    
         
             
                  subject = Bolognese::Metadata.new(input: input)
         
     | 
| 
       117 
117 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       118 
118 
     | 
    
         
             
                  expect(subject.identifier).to eq("https://doi.org/10.5438/4k3m-nyvg")
         
     | 
| 
       119 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 119 
     | 
    
         
            +
                  expect(subject.url).to eq("https://blog.datacite.org/eating-your-own-dog-food")
         
     | 
| 
       120 
120 
     | 
    
         
             
                  expect(subject.type).to eq("BlogPosting")
         
     | 
| 
       121 
121 
     | 
    
         
             
                  expect(subject.creator).to eq("type"=>"Person", "id"=>"http://orcid.org/0000-0003-1419-2405", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner")
         
     | 
| 
       122 
122 
     | 
    
         
             
                  expect(subject.title).to eq("Eating your own Dog Food")
         
     | 
| 
         @@ -136,13 +136,13 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       136 
136 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       137 
137 
     | 
    
         
             
                  expect(subject.identifier).to eq("https://doi.org/10.25491/d50j-3083")
         
     | 
| 
       138 
138 
     | 
    
         
             
                  expect(subject.alternate_identifiers).to eq("name"=>"687610993", "type"=>"md5")
         
     | 
| 
       139 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 139 
     | 
    
         
            +
                  expect(subject.url).to eq("https://ors.datacite.org/doi:/10.25491/d50j-3083")
         
     | 
| 
       140 
140 
     | 
    
         
             
                  expect(subject.content_url).to eq("https://storage.googleapis.com/gtex_analysis_v7/single_tissue_eqtl_data/GTEx_Analysis_v7_eQTL_expression_matrices.tar.gz")
         
     | 
| 
       141 
141 
     | 
    
         
             
                  expect(subject.type).to eq("Dataset")
         
     | 
| 
       142 
142 
     | 
    
         
             
                  expect(subject.additional_type).to eq("Gene expression matrices")
         
     | 
| 
       143 
143 
     | 
    
         
             
                  expect(subject.creator).to eq("name"=>"The GTEx Consortium", "type"=>"Organization")
         
     | 
| 
       144 
144 
     | 
    
         
             
                  expect(subject.title).to eq("Fully processed, filtered and normalized gene expression matrices (in BED format) for each tissue, which were used as input into FastQTL for eQTL discovery")
         
     | 
| 
       145 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 145 
     | 
    
         
            +
                  expect(subject.version).to eq("v7")
         
     | 
| 
       146 
146 
     | 
    
         
             
                  expect(subject.keywords).to eq(["gtex", "annotation", "phenotype", "gene regulation", "transcriptomics"])
         
     | 
| 
       147 
147 
     | 
    
         
             
                  expect(subject.date_published).to eq("2017")
         
     | 
| 
       148 
148 
     | 
    
         
             
                  expect(subject.periodical).to eq("title"=>"GTEx", "type"=>"DataCatalog")
         
     | 
| 
         @@ -158,7 +158,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       158 
158 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       159 
159 
     | 
    
         
             
                  expect(subject.identifier).to eq("https://doi.org/10.23725/8na3-9s47")
         
     | 
| 
       160 
160 
     | 
    
         
             
                  expect(subject.alternate_identifiers).to eq([{"name"=>"3b33f6b9338fccab0901b7d317577ea3", "type"=>"md5"}, {"name"=>"ark:/99999/fk41CrU4eszeLUDe", "type"=>"minid"}, {"name"=>"dg.4503/c3d66dc9-58da-411c-83c4-dd656aa3c4b7", "type"=>"dataguid"}])
         
     | 
| 
       161 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 161 
     | 
    
         
            +
                  expect(subject.url).to eq("https://ors.datacite.org/doi:/10.23725/8na3-9s47")
         
     | 
| 
       162 
162 
     | 
    
         
             
                  expect(subject.content_url).to eq(["s3://cgp-commons-public/topmed_open_access/197bc047-e917-55ed-852d-d563cdbc50e4/NWD165827.recab.cram", "gs://topmed-irc-share/public/NWD165827.recab.cram"])
         
     | 
| 
       163 
163 
     | 
    
         
             
                  expect(subject.type).to eq("Dataset")
         
     | 
| 
       164 
164 
     | 
    
         
             
                  expect(subject.additional_type).to eq("CRAM file")
         
     | 
| 
         @@ -211,7 +211,7 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       211 
211 
     | 
    
         
             
                  expect(subject.valid?).to be true
         
     | 
| 
       212 
212 
     | 
    
         
             
                  expect(subject.identifier).to eq("https://doi.org/10.23725/7jg3-v803")
         
     | 
| 
       213 
213 
     | 
    
         
             
                  expect(subject.alternate_identifiers).to eq([{"name"=>"ark:/99999/fk4E1n6n1YHKxPk", "type"=>"minid"}, {"name"=>"dg.4503/01b048d0-e128-4cb0-94e9-b2d2cab7563d", "type"=>"dataguid"}, {"name"=>"f9e72bdf25bf4b4f0e581d9218fec2eb", "type"=>"md5"}])
         
     | 
| 
       214 
     | 
    
         
            -
                  expect(subject. 
     | 
| 
      
 214 
     | 
    
         
            +
                  expect(subject.url).to eq("https://ors.datacite.org/doi:/10.23725/7jg3-v803")
         
     | 
| 
       215 
215 
     | 
    
         
             
                  expect(subject.content_url).to eq(["s3://cgp-commons-public/topmed_open_access/44a8837b-4456-5709-b56b-54e23000f13a/NWD100953.recab.cram","gs://topmed-irc-share/public/NWD100953.recab.cram","dos://dos.commons.ucsc-cgp.org/01b048d0-e128-4cb0-94e9-b2d2cab7563d?version=2018-05-26T133719.491772Z"])
         
     | 
| 
       216 
216 
     | 
    
         
             
                  expect(subject.type).to eq("Dataset")
         
     | 
| 
       217 
217 
     | 
    
         
             
                  expect(subject.additional_type).to eq("CRAM file")
         
     | 
| 
         @@ -119,9 +119,9 @@ describe Bolognese::Metadata, vcr: true do 
     | 
|
| 
       119 
119 
     | 
    
         | 
| 
       120 
120 
     | 
    
         
             
                it "author is organization" do
         
     | 
| 
       121 
121 
     | 
    
         
             
                  input = fixture_path + 'gtex.xml'
         
     | 
| 
       122 
     | 
    
         
            -
                   
     | 
| 
      
 122 
     | 
    
         
            +
                  url = "https://ors.datacite.org/doi:/10.25491/9hx8-ke93"
         
     | 
| 
       123 
123 
     | 
    
         
             
                  content_url = "https://storage.googleapis.com/gtex_analysis_v7/single_tissue_eqtl_data/GTEx_Analysis_v7_eQTL_expression_matrices.tar.gz"  
         
     | 
| 
       124 
     | 
    
         
            -
                  subject = Bolognese::Metadata.new(input: input,  
     | 
| 
      
 124 
     | 
    
         
            +
                  subject = Bolognese::Metadata.new(input: input, url: url, content_url: content_url, from: "datacite")
         
     | 
| 
       125 
125 
     | 
    
         
             
                  json = JSON.parse(subject.schema_org)
         
     | 
| 
       126 
126 
     | 
    
         
             
                  expect(json["@id"]).to eq("https://doi.org/10.25491/9hx8-ke93")
         
     | 
| 
       127 
127 
     | 
    
         
             
                  expect(json["author"]).to eq("@type"=>"Organization", "name"=>"The GTEx Consortium")
         
     |