Sha256: ee3028fb8c73c1766434713defe8e988ec308a17119a7c3e2aaebef266be0681

Contents?: true

Size: 737 Bytes

Versions: 1

Compression:

Stored size: 737 Bytes

Contents

require 'prpr/event/pull_request'
require 'json'

module Prpr
  module Event
    class UnknownEvent < StandardError
    end

    class Event
      class << self
        def parse(payload, event:)
          case event
          when 'pull_request'
            PullRequest.new(JSON.parse(payload))
          when 'push'
            Push.new(JSON.parse(payload))
          when 'issue_comment'
            IssueComment.new(JSON.parse(payload))
          when 'commit_comment'
            CommitComment.new(JSON.parse(payload))
          when 'pull_request_review_comment'
            PullRequestReviewComment.new(JSON.parse(payload))
          else
            fail UnknownEvent, event
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
prpr-0.1.0 lib/prpr/event/event.rb