- Update to Ruby 3.0.4
- Update to Rubocop 0.93
- Datacite 4.3 support:
- Added the new elements and attributes introduced in DataCite 4.1, 4.2, and 4.3.
- Updated sample DataCite XML documents to include the new examples introduced in DataCite 4.3.
- Reading from XML still supports any version of the DataCite schema from 3.0 through 4.3.
- Object mapping for some items was updated to use full objects instead of simple Strings when the DataCite schema introduced more complicated structure. E.g., because ContributorName can now include a nameType and an xml:lang, the simple "name" String in the Contributor object was replaced with a ContributorName object, accessed through Contributor.contributor_name, while Contributor.name is now a convenience method that allows access to the value as a String.
- These updates to the gem are fully backwards compatible with respect to the input/output XML, but some changes in the object model were required to support the more complex XML. So ruby code that worked with version 0.3.0 will require minor updates to use this version.
- Update to Ruby 2.4.1
- Update to RuboCop 0.52
- Update to Ruby 2.2.5
- Treat blank or empty award number as nil when constructing a
FundingReference.
- Fix issue where writing a resource in Datacite 3 would cause the Datacite 3 namespace to stick around, even when later writing Datacite 4.
- Remove well-intentioned but ill-advised feature that would auto-sort
<geoLocationBox/>coordinates into north/south and east/west.
- Allow empty
<identifier/>tags on read, but not write - Allow but ignore empty
<subject/>and<description/>tags on read
- Fixed issue where
<geoLocation>child elements would be written in Datacite 4 schema declaration order (place, point, box, polygon) instead of Datacite 3 schema sequence order (point, box, place), causing<geoLocation>elements with multiple children to fail Datacite 3 schema validation. - Allow
Resource.versionto take numeric arguments. - Fixed issue where
Date#<=>would erroneously report date objects with the same value but differen types as equal.
- Fixed issue where
Datacite::Mapping::Dateobjects initialized with RubyDatesorDatetimescouldn't be serialized to XML.
- Datacite 4.0 support:
- reading supports both Datacite 3 and Datacite 4
- writing now defaults to Datacite 4
- deprecated elements will produce a warning
- Datacite 3 support via
mapping: :datacite_3- invalid elements (
<geoLocationPolygon/>,<fundingReference>) will be dropped, with a warning - IGSN identifiers will be converted to Handle identifiers
- invalid elements (
languageandxml:langattributes no longer default to'en'and are now fully optional.Datenow properly supports RKMS-ISO8601 date ranges- Remove
Datacite::Mapping.login favor ofwarn() - Array fields (
subjects,contributors, etc.) can no longer be set to nil; if set to nil they will instead return an empty array. :nonvalidatingmapping has been removed. Instead:<subject/>and<description/>tags without text are ignored on read, as are<geoLocation>tags with no child elements.- missing
<identifiers/>and<identifiers/>with missing values are ignored on read, but theResourcemust be given a validIdentifierbefore writing it back out.
- Datacite 4.0 support:
- read Datacite 4.0
<fundingReference/>tag (introduced in 0.1.17) - read Datacite 4.0
<geoLocationBox>nodes with coordinates in child nodes (<southBoundLatitude>,<westBoundLongitude>,<northBoundLatitude>,<eastBoundLongitude>) rather than element text - read Datacite 4.0
<geoLocationPointnodes coordinates in child nodes (<pointLatitude>,<pointLongitude>) rather than element text
- read Datacite 4.0
- Filter out
<subject/>tags without values
- In
Rights::CC_BY, use "Creative Commons Attribution 4.0 International (CC BY 4.0)" as value, as per summary, instead of "Creative Commons Attribution 4.0 International (CC-BY)".
- Added experimental support for Datacite 4.0
<fundingReference/>tag - Added convenience constants
Rights::CC_ZEROandRights::CC_BYfor the CC0 public domain declaration and CC-BY Creative Commons Attribution License
- Add new
:nonvalidatingmapping for less strict parsing of problem files. - Provide better error messages for missing identifier values.
- Update to XML::MappingExtensions 0.4.1
- Fix issues with XML::MappingExtensions 0.4.x
- Update to XML::MappingExtensions 0.3.6 for improved namespace support
- Added
namespace_prefixaccessor toResourceto support explicit namespace prefixing - Update to TypesafeEnum 0.1.7 for improved debug output
- Update to XML::MappingExtensions 0.3.5
- (withdrawn)
- Replace all
require_relativewith absoluterequireto avoid symlink issues
- Added convenience methods to directly access creator names and affiliations
- Added convenience methods to directly access funder attributes
- Add convenience method
Identifier.from_doi()to parse DOI strings in various formats (doi:,http://dx.doi.org/, etc.)
- Stop having XML::Mapping generate accessors for fields that need validation (& stop using aliasing to layer validation on top of generated accessors)
- Make validation method aliasing more robust against double-require problems, hopefully preventing
SystemStackError (stack level too deep)on misconfigured systems
- Make gemspec smart enough to handle SSH checkouts
- Update to XML::MappingExtensions 0.3.4
- Update to TypesafeEnum 0.1.5
- Fix issue where missing
xml:langattribute in<resource>would produce ano value, and no default valueerror instead of defaulting to'en'as documented - Ensure that YARD formats README correctly when converting from GitHub-flavored Markdown to HTML
- Update to XML::MappingExtensions 0.3.3
- Update to TypesafeEnum 0.1.4
- Update to TypesafeEnum 0.1.3
- Update to XML::MappingExtensions 0.3.2, allowing use of #parse_xml and #write_xml in examples and tests
- Initial release