Sha256: b71a0b570e4b5edfc8e2a8a3ece5817f1c74deaab88499ce6efe3668b0d1c51d

Contents?: true

Size: 756 Bytes

Versions: 17

Compression:

Stored size: 756 Bytes

Contents

class PostReceivePayload

  def initialize(params)
    parse_params(params)
  end

  attr_accessor :agent_email, :commit, :branch

  def parsed?
    commit.present?
  end

  def parse_params(params)
    (params = MultiJson.load(params["payload"])) if params.key?("payload")
    parse_github_style_params(params) if params
  end

  def parse_github_style_params(params)
    self.commit = params["after"]
    self.agent_email = parse_github_style_agent(params["pusher"])
    self.branch = params["ref"].split("/").last if params.key?("ref")
  end

  def parse_github_style_agent(pusher)
    return nil unless pusher && pusher.key?("email")
    return pusher["email"] unless pusher.key?("name")
    "#{pusher["name"].inspect} <#{pusher["email"]}>"
  end

end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
houston-core-0.8.0.pre app/models/post_receive_payload.rb
houston-core-0.7.0 app/models/post_receive_payload.rb
houston-core-0.7.0.beta4 app/models/post_receive_payload.rb
houston-core-0.7.0.beta3 app/models/post_receive_payload.rb
houston-core-0.7.0.beta2 app/models/post_receive_payload.rb
houston-core-0.7.0.beta app/models/post_receive_payload.rb
houston-core-0.6.3 app/models/post_receive_payload.rb
houston-core-0.6.2 app/models/post_receive_payload.rb
houston-core-0.6.1 app/models/post_receive_payload.rb
houston-core-0.6.0 app/models/post_receive_payload.rb
houston-core-0.5.6 app/models/post_receive_payload.rb
houston-core-0.5.5 app/models/post_receive_payload.rb
houston-core-0.5.4 app/models/post_receive_payload.rb
houston-core-0.5.3 app/models/post_receive_payload.rb
houston-core-0.5.2 app/models/post_receive_payload.rb
houston-core-0.5.1 app/models/post_receive_payload.rb
houston-core-0.5.0 app/models/post_receive_payload.rb