Class: CDNGet::CDNJS
Overview
TODO: use jsdelivr api
Constant Summary collapse
- CODE =
"cdnjs"
- SITE_URL =
'https://cdnjs.com/'
Instance Method Summary collapse
Methods inherited from Base
Instance Method Details
#find(library) ⇒ Object
145 146 147 148 149 150 151 152 153 154 155 |
# File 'lib/cdnget.rb', line 145 def find(library) validate(library, nil) jstr = fetch("https://api.cdnjs.com/libraries/#{library}", library) jdata = JSON.parse(jstr) return { name: library, desc: jdata['description'], tags: (jdata['keywords'] || []).join(", "), versions: jdata['assets'].collect {|d| d['version'] }, } end |
#get(library, version) ⇒ Object
157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 |
# File 'lib/cdnget.rb', line 157 def get(library, version) validate(library, version) jstr = fetch("https://api.cdnjs.com/libraries/#{library}", library) jdata = JSON.parse(jstr) d = jdata['assets'].find {|d| d['version'] == version } or raise CommandError.new("#{library}/#{version}: Library or version not found.") baseurl = "https://cdnjs.cloudflare.com/ajax/libs/#{library}/#{version}/" return { name: library, desc: jdata['description'], tags: (jdata['keywords'] || []).join(", "), version: version, urls: d['files'].collect {|s| baseurl + s }, files: d['files'], baseurl: baseurl, } end |
#list ⇒ Object
137 138 139 140 141 142 143 |
# File 'lib/cdnget.rb', line 137 def list libs = [] jstr = fetch("https://api.cdnjs.com/libraries?fields=name,description") jdata = JSON.parse(jstr) libs = jdata['results'].collect {|d| {name: d['name'], desc: d['description']} } return libs.sort_by {|d| d[:name] }.uniq end |