class BuildkiteJobFinishedEvent

Value object that wraps raw buildkite webhook data and provides convenience methods for querying it

Public Class Methods

new(data) click to toggle source
# File lib/lita/buildkite_job_finished_event.rb, line 6
def initialize(data)
  @data = data
end

Public Instance Methods

agent_hostname() click to toggle source
# File lib/lita/buildkite_job_finished_event.rb, line 40
def agent_hostname
  @data.fetch("job", {}).fetch("agent",{}).fetch("hostname","")
end
agent_name() click to toggle source
# File lib/lita/buildkite_job_finished_event.rb, line 36
def agent_name
  @data.fetch("job", {}).fetch("agent",{}).fetch("name","")
end
build_branch() click to toggle source
# File lib/lita/buildkite_job_finished_event.rb, line 44
def build_branch
  @data.fetch("build", {}).fetch("branch","")
end
job_finished_at() click to toggle source
# File lib/lita/buildkite_job_finished_event.rb, line 31
def job_finished_at
  value = @data.fetch("job", {}).fetch("finished_at", nil)
  value ? DateTime.parse(value).to_time : nil
end
job_name() click to toggle source
# File lib/lita/buildkite_job_finished_event.rb, line 14
def job_name
  @data.fetch("job", {}).fetch("name","")
end
job_slug() click to toggle source
# File lib/lita/buildkite_job_finished_event.rb, line 18
def job_slug
  slugorize(job_name)
end
job_started_at() click to toggle source
# File lib/lita/buildkite_job_finished_event.rb, line 26
def job_started_at
  value = @data.fetch("job", {}).fetch("started_at", nil)
  value ? DateTime.parse(value).to_time : nil
end
job_state() click to toggle source
# File lib/lita/buildkite_job_finished_event.rb, line 22
def job_state
  @data.fetch("job", {}).fetch("state","")
end
name() click to toggle source
# File lib/lita/buildkite_job_finished_event.rb, line 10
def name
  @data.fetch("event", "")
end
pipeline_name() click to toggle source
# File lib/lita/buildkite_job_finished_event.rb, line 48
def pipeline_name
  @data.fetch("pipeline", {}).fetch("name", "")
end
pipeline_slug() click to toggle source
# File lib/lita/buildkite_job_finished_event.rb, line 52
def pipeline_slug
  @data.fetch("pipeline", {}).fetch("slug", "")
end

Private Instance Methods

slugorize(input) click to toggle source
# File lib/lita/buildkite_job_finished_event.rb, line 58
def slugorize(input)
  result = input.to_s.downcase
  result.gsub!(/['|’]/, '')           # Remove apostrophes
  result.gsub!('&', 'and')            # Replace & with 'and'
  result.gsub!(/[^a-z0-9\-]/, '-')    # Get rid of anything we don't like
  result.gsub!(/-+/, '-')             # collapse dashes
  result.gsub!(/-$/, '')              # trim dashes
  result.gsub!(/^-/, '')              # trim dashes
  result
end