Sha256: 4f9c133669e92fe63c955768459b0a6ce2ba9c5216dadbe5854525b913c676c9
Contents?: true
Size: 918 Bytes
Versions: 2
Compression:
Stored size: 918 Bytes
Contents
# encoding: utf-8 require "desi/http_client" require "json" module Desi class Upstream class Release < Struct.new(:name, :description, :release_date, :download_url) def to_s self.name end end def initialize(opts = {}) @client = opts.fetch(:http_client_factory, Desi::HttpClient).new('https://api.github.com/') end def releases @releases ||= fetch_releases. select {|v| v['content_type'] == 'application/gzip' }. sort {|a,b| b["name"] <=> a['name'] }. map {|v| Release.new(v['name'], v['description'], v['created_at'], v['html_url']) } end def latest_release releases.first end def find_release(name) releases.detect {|r| r.name == name || r.version == name } end private def fetch_releases JSON.parse @client.get('/repos/elasticsearch/elasticsearch/downloads').body end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
desi-0.2.1 | lib/desi/upstream.rb |
desi-0.2.0 | lib/desi/upstream.rb |