require 'travis/api/serialize/v1/archive/build/job' module Travis module Api module Serialize module V1 module Archive class Build include Formats attr_reader :build, :commit, :repository def initialize(build, options = {}) @build = build @commit = build.commit @repository = build.repository end def data { 'id' => build.id, 'number' => build.number, 'config' => build.obfuscated_config.stringify_keys, 'result' => 0, 'started_at' => format_date(build.started_at), 'finished_at' => format_date(build.finished_at), 'duration' => build.duration, 'commit' => commit.commit, 'branch' => commit.branch, 'message' => commit.message, 'committed_at' => format_date(commit.committed_at), 'author_name' => commit.author_name, 'author_email' => commit.author_email, 'committer_name' => commit.committer_name, 'committer_email' => commit.committer_email, 'matrix' => build.matrix.map { |job| Job.new(job).data }, 'repository' => repository_data } end def repository_data { 'id' => repository.id, 'slug' => repository.slug } end end end end end end end