Sha256: 477538dffbfc693e9d4b29392cb268d3c325b9bfdbab01986b4311a32c9eb303

Contents?: true

Size: 1.17 KB

Versions: 1

Compression:

Stored size: 1.17 KB

Contents

module HubLink
  module Api
    class PullRequest < Issue
      require "hub_link/api/review"

      ADDITIONAL_EXPORT_COLUMNS = %i(
        merged_at
        body_size
        additions
        comments_count
        review_comments_count
      )

      def pull_request?
        true
      end

      def reviews
        @_reviews ||= fetch_reviews
      end

      def additions
        extended_data.additions
      end

      def body_size
        body.to_s.size
      end

      def merged_at
        extended_data.merged_at
      end

      def comments_count
        extended_data.comments
      end

      def review_comments_count
        extended_data.review_comments
      end

      private

        def export_columns
          super + ADDITIONAL_EXPORT_COLUMNS
        end

        def fetch_reviews
          Octokit.pull_request_reviews(repo, number).map do |data|
            data.repo = repo
            data.pull_request_id = id
            data.number = number
            data.submitter = submitter
            Review.new(data)
          end
        end

        def extended_data
          @_extended_data ||= Octokit.get(pull_request.url)
        end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
hub_link-0.19.0 lib/hub_link/api/pull_request.rb