class ShipIO::Client

Attributes

api_key[RW]

Public Class Methods

new(api_key, options={}) click to toggle source
# File lib/ShipIO/client.rb, line 5
def initialize(api_key, options={})
  @api_key = api_key
end

Public Instance Methods

build(job, build_id) click to toggle source

Returns a build from a Job

# File lib/ShipIO/client.rb, line 27
def build(job, build_id)
  json_build = get("jobs/#{job.uuid}/builds/#{build_id}.json")

  Build.new({
                uuid: json_build["id"],
                build_number: json_build["build_number"],
                commit_sha: json_build["commit_sha"],
                state: json_build["state"],
                log_url: json_build["log_url"],
                successful: json_build["successful"]
            })
end
builds(job) click to toggle source

Returns all the builds by a User

# File lib/ShipIO/client.rb, line 41
def builds(job)
  response = get("jobs/#{job.uuid}/builds.json")
  builds = []
  for json_build in response do
    build = Build.new({
                          uuid: json_build["id"],
                          build_number: json_build["build_number"],
                          commit_sha: json_build["commit_sha"],
                          state: json_build["state"],
                          log_url: json_build["log_url"],
                          successful: json_build["successful"]
                      })
    builds << build
  end
  builds
end
jobs() click to toggle source

Returns all the jobs in the user account

# File lib/ShipIO/client.rb, line 10
def jobs
  result = get("jobs.json")
  jobs = []
  for json_job in result do
    job = Job.new(self, {
        uuid: json_job["id"],
        name: json_job["name"],
        repository_name: json_job["repository"]["name"],
        repository_branch: json_job["repository"]["selected_branch"],
        repository_url: json_job["repository"]["html_url"]
    })
    jobs << job
  end
  jobs
end
pusher_channel() click to toggle source

Gets the Pusher channel for a user

# File lib/ShipIO/client.rb, line 59
def pusher_channel
  get("user/channel.json")
end

Private Instance Methods

get(url, params={}) click to toggle source
# File lib/ShipIO/client.rb, line 64
def get(url, params={})
  url = '/' + url if url[0] != '/'
  url = ShipIO::BASE_URL + url
  result = RestClient.get url, {"Authorization" => "Bearer #{api_key}"}
  JSON.parse(result)
end
post(url, params={}) click to toggle source
# File lib/ShipIO/client.rb, line 71
def post(url, params={})
  url = '/' + url if url[0] != '/'
  url = ShipIO::BASE_URL + url
  result = RestClient.post url, {"Authorization" => "Bearer #{api_key}"}
  JSON.parse(result)
end