Sha256: 4d335eea524d7db35af3fae37246954053dcdd018328c9f97b50322306f374a1

Contents?: true

Size: 1.19 KB

Versions: 5

Compression:

Stored size: 1.19 KB

Contents

module Janky
  module Builder
    class Payload
      def self.parse(json)
        parsed = Yajl.load(json)
        build  = parsed["build"]

        new(
          build["phase"],
          build["parameters"]["JANKY_ID"],
          build["full_url"],
          build["status"]
        )
      end

      def self.start(id, url)
        new("STARTED", id, url, nil)
      end

      def self.complete(id, green)
        status = (green ? "SUCCESS" : "FAILED")
        new("FINISHED", id, nil, status)
      end

      def initialize(phase, id, url, status)
        @phase      = phase
        @id         = id
        @url        = url
        @status     = status
      end

      attr_reader :id, :url

      def started?
        @phase == "STARTED"
      end

      def completed?
        @phase == "FINISHED"
      end

      def green?
        if completed?
          @status == "SUCCESS"
        else
          false
        end
      end

      def to_json
        { :build => {
            :phase    => @phase,
            :status   => @status,
            :full_url => @url,
            :parameters => {
              "JANKY_ID" => @id
            }
          }
        }.to_json
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
janky-0.9.12 lib/janky/builder/payload.rb
janky-0.9.11 lib/janky/builder/payload.rb
janky-0.9.10 lib/janky/builder/payload.rb
janky-0.9.9 lib/janky/builder/payload.rb
janky-0.9.0 lib/janky/builder/payload.rb