Sha256: 9ee71385facc38dce4718659d69fe4b53bc281011e535de7a4dd90041a3868b2

Contents?: true

Size: 626 Bytes

Versions: 5

Compression:

Stored size: 626 Bytes

Contents

require 'uri'

module Jenkins
  module Build
    class Build
      BUILDS = %w[lastBuild lastStableBuild lastSuccessfulBuild lastFailedBuild lastUnstableBuild lastUnsuccessfulBuild lastCompletedBuild].freeze
      JENKINS_PATH = %r{^/jobs?/(?<job>[\w-]+)/(?<build_number>\d+|#{Regexp.union(BUILDS)})}.freeze
      NUMBER = /\A\d+\z/.freeze

      attr_reader :uri, :job, :number

      def initialize(url)
        @uri = URI(url)

        match = @uri.path.match(JENKINS_PATH) or return

        @job = match[:job]
        @number = (number = match[:build_number]) =~ NUMBER ? number.to_i : number
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
jenkins-build-0.2.0 lib/jenkins/build/build.rb
jenkins-build-0.2.0.pre6 lib/jenkins/build/build.rb
jenkins-build-0.2.0.pre5 lib/jenkins/build/build.rb
jenkins-build-0.2.0.pre4 lib/jenkins/build/build.rb
jenkins-build-0.2.0.pre3 lib/jenkins/build/build.rb