Sha256: c93d6f6451b889e898cf742430c24e3b2d5d7182c7e8908b5cdaab1e4f7fc00d
Contents?: true
Size: 1.58 KB
Versions: 2
Compression:
Stored size: 1.58 KB
Contents
require 'keylime' require 'travis' module ProspectusTravis GOOD_STATUSES = %w[created received started passed].freeze FAKE_BUILD = Struct.new(:state) ## # Lookup describes a TravisCI lookup class Lookup def initialize(repo_slug) @repo_slug = repo_slug end def expected @expected ||= GOOD_STATUSES.include?(actual) ? actual : 'passed' end def actual @actual ||= last_build.state end private def client @client ||= Travis::Client.new(uri: uri, access_token: token) end def last_build @last_build ||= repo.last_build || FAKE_BUILD.new('no_results') end def repo @repo ||= client.repo(@repo_slug) end def uri @uri ||= Travis::Client::COM_URI end def token return @token if @token credential = Keylime.new(server: uri) msg = 'TravisCI Token (run `travis token --com` to generate)' @token = credential.get!(msg).password end end ## # Helper for automatically adding build status check class Build < Module def initialize(repo_slug) @repo_slug = repo_slug || raise('No repo specified') end def extended(other) # rubocop:disable Metrics/MethodLength lookup = Lookup.new(@repo_slug) other.deps do item do name 'travis' expected do define_singleton_method(:load) do lookup.expected end end actual do define_singleton_method(:load) do lookup.actual end end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
prospectus_travis-0.0.5 | lib/prospectus_travis.rb |
prospectus_travis-0.0.4 | lib/prospectus_travis.rb |