Class: Desi::Upstream

Inherits:
Object
  • Object
show all
Defined in:
lib/desi/upstream.rb

Defined Under Namespace

Classes: Release

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ Upstream

Returns a new instance of Upstream.



42
43
44
# File 'lib/desi/upstream.rb', line 42

def initialize(opts = {})
  @client = opts.fetch(:http_client_factory, Desi::HttpClient).new('https://api.github.com/')
end

Instance Method Details

#find_release(name_or_version) ⇒ Object



56
57
58
# File 'lib/desi/upstream.rb', line 56

def find_release(name_or_version)
  releases.detect {|r| r === name_or_version }
end

#latest_releaseObject



52
53
54
# File 'lib/desi/upstream.rb', line 52

def latest_release
  releases.first
end

#releasesObject



46
47
48
49
50
# File 'lib/desi/upstream.rb', line 46

def releases
  @releases ||= fetch_tags.
    map {|v| Release.new(v['name'], v['tarball_url']) }.
    sort
end