summaryrefslogtreecommitdiff
path: root/lib/jive/pull_request.rb
blob: 06d6f411aaef81dfd5a024c17d6c4f73546c6813 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# frozen_string_literal: true

module Jive
  class PullRequest
    attr_reader :dir, :uri

    def initialize(repo: Repo.current)
      @dir = Jive.home.join(repo.uri.host).join(repo.branch)
      Jive.shell.execute([:mkdir, "-p", @dir]) unless @dir.exist?
    end

    def edit(editor)
      Jive.shell.execute([editor, readme.to_s])
    end

    private

    def template
      Jive.root.join("lib/jive/templates/pull_request.md")
    end

    def readme
      @readme ||=
        begin
          dir.join("README.md").tap do |readme|
            readme.write(template.read) unless readme.exist?
          end
        end
    end
  end
end