class Suricate::Jenkins::Client

Public Class Methods

new(options = {}) click to toggle source
# File lib/suricate/jenkins/client.rb, line 6
def initialize(options = {})
  @url       = options[:url]
  @user_name = options[:user_name]
  @password  = options[:password]
end

Public Instance Methods

failed_jobs() click to toggle source
# File lib/suricate/jenkins/client.rb, line 12
def failed_jobs
  jobs.select(&:failed?)
end
jobs() click to toggle source
# File lib/suricate/jenkins/client.rb, line 16
def jobs
  json = get('/api/json')
  json['jobs'].map { |job_json| build_job(job_json) }
end

Private Instance Methods

build_job(json) click to toggle source
# File lib/suricate/jenkins/client.rb, line 33
def build_job(json)
  Job.new(name: json['name'],
          url: json['url'],
          failed: json['color'] == 'red')
end
get(path) click to toggle source
# File lib/suricate/jenkins/client.rb, line 22
def get(path)
  uri = URI.parse(@url + path)
  response = Net::HTTP.start(uri.hostname, uri.port) do |http|
    request = Net::HTTP::Get.new(uri)
    request.basic_auth(@user_name, @password)
    http.request(request)
  end

  JSON.parse(response.body)
end