Class: CDNGet::CDNJS
Constant Summary collapse
- CODE =
"cdnjs"
- SITE_URL =
'https://cdnjs.com/'
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
Methods inherited from Base
#download, inherited, #initialize, #search
Constructor Details
This class inherits a constructor from CDNGet::Base
Instance Method Details
#find(library) ⇒ Object
250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 |
# File 'lib/cdnget.rb', line 250 def find(library) validate(library, nil) jstr = fetch("https://api.cdnjs.com/libraries/#{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
268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 |
# File 'lib/cdnget.rb', line 268 def get(library, version) validate(library, version) jstr = fetch("https://api.cdnjs.com/libraries/#{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 = "https://cdnjs.cloudflare.com/ajax/libs/#{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
242 243 244 245 246 247 248 |
# File 'lib/cdnget.rb', line 242 def list() jstr = fetch("https://api.cdnjs.com/libraries?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 |