class GitHubWebHooksReceiver::Payload

Public Class Methods

new(data, metadata={}) click to toggle source
# File lib/github-web-hooks-receiver/payload.rb, line 19
def initialize(data, metadata={})
  @data = data
  @metadata = metadata
end

Public Instance Methods

[](key) click to toggle source
# File lib/github-web-hooks-receiver/payload.rb, line 24
def [](key)
  key.split(".").inject(@data) do |current_data, current_key|
    if current_data
      current_data[current_key]
    else
      nil
    end
  end
end
event_name() click to toggle source
# File lib/github-web-hooks-receiver/payload.rb, line 58
def event_name
  if gitlab?
    self["object_kind"]
  else
    @metadata["x-github-event"]
  end
end
github_gollum?() click to toggle source
# File lib/github-web-hooks-receiver/payload.rb, line 54
def github_gollum?
  event_name == "gollum"
end
gitlab?() click to toggle source
# File lib/github-web-hooks-receiver/payload.rb, line 46
def gitlab?
  not self["object_kind"].nil?
end
gitlab_wiki?() click to toggle source
# File lib/github-web-hooks-receiver/payload.rb, line 50
def gitlab_wiki?
  event_name == "wiki_page"
end
repository_url() click to toggle source
# File lib/github-web-hooks-receiver/payload.rb, line 34
def repository_url
  if gitlab_wiki?
    self["wiki.git_ssh_url"]
  elsif gitlab?
    self["repository.url"]
  elsif github_gollum?
    self["repository.clone_url"].gsub(/(\.git)\z/, ".wiki\\1")
  else
    self["repository.clone_url"] || "#{self['repository.url']}.git"
  end
end