Class: CDNGet::CDNJS
Constant Summary collapse
- CODE =
"cdnjs"
- SITE_URL =
"https://cdnjs.com/"
- API_URL =
"https://api.cdnjs.com/libraries"
- CDN_URL =
"https://cdnjs.cloudflare.com/ajax/libs"
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
Methods inherited from Base
#download, inherited, #initialize, #latest_version, #search
Constructor Details
This class inherits a constructor from CDNGet::Base
Instance Method Details
#find(library) ⇒ Object
287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 |
# File 'lib/cdnget.rb', line 287 def find(library) validate(library, nil) jstr = fetch("#{API_URL}/#{library}", library) jdata = JSON.parse(jstr) _debug_print(jdata) versions = jdata['assets'].collect {|d| d['version'] }\ .sort_by {|v| v.split(/[-.]/).map(&:to_i) } return { name: library, desc: jdata['description'], tags: (jdata['keywords'] || []).join(", "), site: jdata['homepage'], info: File.join(SITE_URL, "/libraries/#{library}"), license: jdata['license'], versions: versions.reverse(), } end |
#get(library, version) ⇒ Object
305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 |
# File 'lib/cdnget.rb', line 305 def get(library, version) validate(library, version) jstr = fetch("#{API_URL}/#{library}", library) jdata = JSON.parse(jstr) _debug_print(jdata) d = jdata['assets'].find {|d| d['version'] == version } or raise CommandError.new("#{library}/#{version}: Library or version not found.") baseurl = "#{CDN_URL}/#{library}/#{version}/" return { name: library, version: version, desc: jdata['description'], tags: (jdata['keywords'] || []).join(", "), site: jdata['homepage'], info: File.join(SITE_URL, "/libraries/#{library}/#{version}"), urls: d['files'].collect {|s| baseurl + s }, files: d['files'], baseurl: baseurl, license: jdata['license'], } end |
#list ⇒ Object
279 280 281 282 283 284 285 |
# File 'lib/cdnget.rb', line 279 def list() jstr = fetch("#{API_URL}?fields=name,description") jdata = JSON.parse(jstr) _debug_print(jdata) libs = jdata['results'].collect {|d| {name: d['name'], desc: d['description']} } return libs.sort_by {|d| d[:name] }.uniq end |