Sha256: 4c638ce460fc2b3580ee48fe9ab2142a216fbb5be1f3311ac8089dea154b5445

Contents?: true

Size: 1.44 KB

Versions: 17

Compression:

Stored size: 1.44 KB

Contents

require 'pronto'
require 'rake'
require 'rake/tasklib'

module Pronto
  module RakeTask
    # Provides a custom rake task to use with Travis.
    #
    # require 'rubocop/rake/travis_pull_request'
    # Pronto::Rake::TravisPullRequest.new
    class TravisPullRequest < Rake::TaskLib
      attr_accessor :name
      attr_accessor :verbose

      def initialize(*args, &task_block)
        setup_ivars(args)

        unless ::Rake.application.last_comment
          desc 'Run Pronto on Travis Pull Request'
        end

        task(name, *args) do |_, task_args|
          RakeFileUtils.send(:verbose, verbose) do
            yield(*[self, task_args].slice(0, task_block.arity)) if task_block
            run_task
          end
        end
      end

      def run_task
        return if pull_id.nil? || pull_id == 'false'

        pull_request = client.pull_request(repo_slug, pull_id)
        formatter = ::Pronto::Formatter::GithubFormatter.new

        gem_names = ::Pronto::GemNames.new.to_a
        gem_names.each { |gem_name| require "pronto/#{gem_name}" }
        ::Pronto.run(pull_request.base.sha, '.', formatter)
      end

      private

      def client
        Octokit::Client.new
      end

      def pull_id
        ENV['TRAVIS_PULL_REQUEST']
      end

      def repo_slug
        ENV['TRAVIS_REPO_SLUG']
      end

      def setup_ivars(args)
        @name = args.shift || :pronto_travis_pull_request
        @verbose = true
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
pronto-0.11.3 lib/pronto/rake_task/travis_pull_request.rb
pronto-0.11.2 lib/pronto/rake_task/travis_pull_request.rb
pronto-0.11.1 lib/pronto/rake_task/travis_pull_request.rb
pronto-0.11.0 lib/pronto/rake_task/travis_pull_request.rb
pronto-0.10.0 lib/pronto/rake_task/travis_pull_request.rb
pronto-0.9.5 lib/pronto/rake_task/travis_pull_request.rb
pronto-0.9.4 lib/pronto/rake_task/travis_pull_request.rb
pronto-0.9.3 lib/pronto/rake_task/travis_pull_request.rb
pronto-0.9.2 lib/pronto/rake_task/travis_pull_request.rb
pronto-0.9.1 lib/pronto/rake_task/travis_pull_request.rb
pronto-0.9.0 lib/pronto/rake_task/travis_pull_request.rb
pronto-0.8.2 lib/pronto/rake_task/travis_pull_request.rb
pronto-0.8.1 lib/pronto/rake_task/travis_pull_request.rb
pronto-0.8.0 lib/pronto/rake_task/travis_pull_request.rb
pronto-0.7.1 lib/pronto/rake_task/travis_pull_request.rb
pronto-0.7.0 lib/pronto/rake_task/travis_pull_request.rb
pronto-0.6.0 lib/pronto/rake_task/travis_pull_request.rb