Class: StoryPullRequest

Inherits:
FinishedCommand show all
Includes:
Story
Defined in:
lib/pivotal-github/story_pull_request.rb

Instance Attribute Summary

Attributes inherited from Command

#args, #known_options, #options, #unknown_options

Instance Method Summary collapse

Methods included from Story

#delivered_ids, #delivered_ids_since_last_pr, #fast_log_delivered_text, #git_log_delivered_story_ids, #pr_ids, #story_url

Methods inherited from FinishedCommand

#run!

Methods inherited from Command

#initialize, #message, #message_ids, #parse, run!, #story_branch, #story_id, #story_ids

Constructor Details

This class inherits a constructor from Command

Instance Method Details

#cmdObject

Returns a command appropriate for executing at the command line



37
38
39
40
41
42
43
44
# File 'lib/pivotal-github/story_pull_request.rb', line 37

def cmd
  Dir.mkdir '.pull_requests' unless File.directory?('.pull_requests')
  c =  ["touch .pull_requests/`date '+%s'`"]
  c << "git add ."
  c << %(git commit -m "#{short_message}" -m "#{long_message}")
  c << "git pull-request"
  c.join("\n")
end

#delivers_url(id) ⇒ Object

Returns the (Markdown) link for a delivered story id.



21
22
23
# File 'lib/pivotal-github/story_pull_request.rb', line 21

def delivers_url(id)
  "[Delivers ##{id}](#{story_url(id)})"
end

#long_messageObject

Returns a commit message with links to all the delivered stories.



31
32
33
34
# File 'lib/pivotal-github/story_pull_request.rb', line 31

def long_message
  ids = delivered_ids_since_last_pr(fast_log_delivered_text)
  ids.map { |id| delivers_url(id) }.join("\n")
end

#parserObject



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/pivotal-github/story_pull_request.rb', line 8

def parser
  OptionParser.new do |opts|
    opts.banner = "Usage: git story-pull-request [options]"
    opts.on("-o", "--override", "override unfinished story warning") do |opt|
      self.options.override = opt
    end
    opts.on_tail("-h", "--help", "this usage guide") do
      puts opts.to_s; exit 0
    end
  end
end

#short_messageObject

Returns a commit message with the branch being used for the pull request.



26
27
28
# File 'lib/pivotal-github/story_pull_request.rb', line 26

def short_message
  "Issue pull request for branch #{story_branch}"
end