1
0
mirror of https://github.com/github/choosealicense.com synced 2024-12-22 12:50:24 +01:00

spec_helper: Adjust to new 'licenses' key in the FSF API

The old root object has been moved under 'licenses' with
wking/fsf-api@8398a357 (pull: Add JSON-LD markup, 2018-01-04,
wking/fsf-api#12) for better forward/backward compatibility.
Unfortunately, this results in another one-time incompatible change,
which this commit accommodates.

The protection from future changes (which should be rare) isn't great,
because we're still parsing the document as JSON.  There is at least
one JSON-LD parser for Ruby [1], but I've stuck with vanilla JSON to
avoid pullling in an external dependency just for this rather
peripheral functionality.

[1]: https://github.com/ruby-rdf/json-ld/
This commit is contained in:
W. Trevor King 2018-01-05 16:18:59 -08:00
parent 5513a3baab
commit 24fbf6685d

View File

@ -104,7 +104,7 @@ def fsf_approved_licenses
url = 'https://wking.github.io/fsf-api/licenses-full.json' url = 'https://wking.github.io/fsf-api/licenses-full.json'
object = JSON.parse(OpenURI.open_uri(url).read) object = JSON.parse(OpenURI.open_uri(url).read)
licenses = {} licenses = {}
object.each_value do |meta| object['licenses'].each_value do |meta|
next unless (meta.include? 'identifiers') && (meta['identifiers'].include? 'spdx') && (meta.include? 'tags') && (meta['tags'].include? 'libre') next unless (meta.include? 'identifiers') && (meta['identifiers'].include? 'spdx') && (meta.include? 'tags') && (meta['tags'].include? 'libre')
meta['identifiers']['spdx'].each do |identifier| meta['identifiers']['spdx'].each do |identifier|
licenses[identifier.downcase] = meta['name'] licenses[identifier.downcase] = meta['name']