class Magnum::Payload::Base

Constants

GIT_ZERO_SHA

Attributes

author[R]
author_email[R]
branch[R]
commit[R]
commit_url[R]
committer[R]
committer_email[R]
compare_url[R]
data[R]
message[R]
raw_data[R]
skip[R]
test[R]

Public Class Methods

new(payload) click to toggle source
# File lib/magnum/payload/base.rb, line 26
def initialize(payload)
  set_defaults
  
  @raw_data = payload
  @data     = parse_payload(payload)

  parse!

  @skip = skip_message? unless @skip
end

Public Instance Methods

attributes_hash() click to toggle source
# File lib/magnum/payload/base.rb, line 37
def attributes_hash
  {
    "commit"      => commit,
    "branch"      => branch,
    "author"      => author,
    "committer"   => committer,
    "message"     => message,
    "commit_url"  => commit_url,
    "compare_url" => compare_url
  }
end
parse!() click to toggle source
# File lib/magnum/payload/base.rb, line 49
def parse!
  raise "Not implemented in base class"
end
skip?() click to toggle source
# File lib/magnum/payload/base.rb, line 53
def skip?
  skip == true
end

Private Instance Methods

parse_payload(payload) click to toggle source
# File lib/magnum/payload/base.rb, line 64
def parse_payload(payload)
  if payload.kind_of?(String)
    Hashr.new(JSON.parse(payload))
  elsif payload.kind_of?(Hash)
    Hashr.new(payload)
  else
    raise ArgumentError, "String or Hash required"
  end
rescue JSON::ParserError
  raise Magnum::Payload::ParseError, "Valid JSON required"
end
set_defaults() click to toggle source
# File lib/magnum/payload/base.rb, line 59
def set_defaults
  @skip = false # Do not skip
  @test = false # Do not treat as test payload
end