Class: Reviewr::Project

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/reviewr/project.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(git = Git.instance) ⇒ Project

Returns a new instance of Project.



14
15
16
# File 'lib/reviewr/project.rb', line 14

def initialize(git = Git.instance)
  @git = git
end

Instance Attribute Details

#email_passwordObject

Returns the value of attribute email_password.



8
9
10
# File 'lib/reviewr/project.rb', line 8

def email_password
  @email_password
end

#email_serverObject (readonly)

Returns the value of attribute email_server.



7
8
9
# File 'lib/reviewr/project.rb', line 7

def email_server
  @email_server
end

#gitObject (readonly)

Returns the value of attribute git.



7
8
9
# File 'lib/reviewr/project.rb', line 7

def git
  @git
end

#review_branchObject



59
60
61
# File 'lib/reviewr/project.rb', line 59

def review_branch
  @review_branch ||= "review_#{review_sha}"
end

#toObject

Returns the value of attribute to.



8
9
10
# File 'lib/reviewr/project.rb', line 8

def to
  @to
end

#user_emailObject



63
64
65
# File 'lib/reviewr/project.rb', line 63

def user_email
  @user_email ||= git.user_email
end

Instance Method Details

#create_review_branch(base = 'master') ⇒ Object



18
19
20
21
# File 'lib/reviewr/project.rb', line 18

def create_review_branch(base = 'master')
  git.create_branch(review_branch, base)
  git.change_branch(review_branch)
end

#create_review_commit(msg) ⇒ Object



35
36
37
# File 'lib/reviewr/project.rb', line 35

def create_review_commit(msg)
  git.commit(msg)
end

#delete_remote_review_branchObject



77
78
79
# File 'lib/reviewr/project.rb', line 77

def delete_remote_review_branch
  git.push_branch(":#{review_branch}")
end

#fetch_masterObject



31
32
33
# File 'lib/reviewr/project.rb', line 31

def fetch_master
  git.fetch('master')
end

#fetch_review_branchObject



27
28
29
# File 'lib/reviewr/project.rb', line 27

def fetch_review_branch
  git.fetch(review_branch)
end

#master_shaObject



55
56
57
# File 'lib/reviewr/project.rb', line 55

def master_sha
  @master_sha ||= git.origin_master_commit.slice(0, 8)
end

#merge_commitsObject



71
72
73
74
75
# File 'lib/reviewr/project.rb', line 71

def merge_commits
  git.cherry(current_branch, review_branch).split(/\n/).each do |line|
    git.cherry_pick(line.split(/\s/)[1])
  end
end

#push_review_branchObject



39
40
41
# File 'lib/reviewr/project.rb', line 39

def push_review_branch
  git.push_branch(review_branch)
end

#rebase_reviewObject



23
24
25
# File 'lib/reviewr/project.rb', line 23

def rebase_review
  git.rebase(current_branch, review_branch)
end

#requester_emailObject



81
82
83
84
85
86
87
# File 'lib/reviewr/project.rb', line 81

def requester_email
  msg = git.log(1)
  if msg
    m = msg.match(/requested_by: ([^\s]+)/)
    m && m[1]
  end
end

#review_bodyObject



51
52
53
# File 'lib/reviewr/project.rb', line 51

def review_body
  @review_body ||= git.last_commit_body
end

#review_shaObject



43
44
45
# File 'lib/reviewr/project.rb', line 43

def review_sha
  @review_sha ||= git.last_commit_sha.slice(0, 8)
end

#review_subjectObject



47
48
49
# File 'lib/reviewr/project.rb', line 47

def review_subject
  @review_subject ||= git.last_commit_subject
end