class ExtremeFeedbackDevice::Jenkins

Public Instance Methods

full_uri() click to toggle source
# File lib/extreme_feedback_device/jenkins.rb, line 12
def full_uri
  URI(full_url)
end
full_url() click to toggle source
# File lib/extreme_feedback_device/jenkins.rb, line 8
def full_url
  ::File.join(base_url, 'api', 'json?tree=jobs[name,color,healthReport[score]]')
end
jobs() click to toggle source
# File lib/extreme_feedback_device/jenkins.rb, line 16
def jobs
  json = get_json
  jobs_from_json(json) if json.is_a?(String)
end

Private Instance Methods

get_json() click to toggle source
# File lib/extreme_feedback_device/jenkins.rb, line 33
def get_json
  request = ::Net::HTTP::Get.new(full_uri)
  request.basic_auth(user, token)

  response = nil
  begin
    http = ::Net::HTTP.new(full_uri.hostname, full_uri.port)
    http.use_ssl = true if full_uri.scheme == "https"
    http.start do
      response = http.request(request)
    end
  rescue SocketError => e
    response = e
  end

  if response.is_a?(::Net::HTTPSuccess)
    return response.body
  else
    return nil
  end
end
jobs_from_json(json) click to toggle source
# File lib/extreme_feedback_device/jenkins.rb, line 23
def jobs_from_json(json)
  json_objects = []
  begin
    json_objects = ::JSON.parse(json)
  rescue ::JSON::JSONError
  end

  json_objects["jobs"].map { |json_object| ExtremeFeedbackDevice::Job.from_json_object(json_object) }
end