class MakeRelease::Stories
Attributes
branches[RW]
dir[RW]
directory[RW]
stories[R]
Public Class Methods
new(opts = Options.defaults)
click to toggle source
# File lib/make_release/stories.rb, line 7 def initialize(opts = Options.defaults) @options = opts @stories = opts[:stories] || {} @directory = opts[:directory] || '.' @branches = _get_branches(opts[:master], opts[:source]) _get_stories if @stories == {} end
Public Instance Methods
add_story(branch, story)
click to toggle source
# File lib/make_release/stories.rb, line 56 def add_story(branch, story) (@stories[branch] ||= []).push story end
diff()
click to toggle source
# File lib/make_release/stories.rb, line 68 def diff stories = [] opts = @options source_stories.each do |story| stories << story unless find(master, story.sha) end opts.source = ['diff'] opts.stories = {'diff' => stories.flatten} Stories.new opts end
each() { |story| ... }
click to toggle source
# File lib/make_release/stories.rb, line 20 def each @stories.values.each do |stories| stories.each { |story| yield story } end end
find(branch, sha)
click to toggle source
# File lib/make_release/stories.rb, line 60 def find(branch, sha) raise ArgumentError, "Invalid environment #{branch}" unless @branches.include?(branch) @stories[branch].each { |story| return true if story.sha == sha } false end
master()
click to toggle source
# File lib/make_release/stories.rb, line 30 def master @branches[0] end
master=(new_master)
click to toggle source
# File lib/make_release/stories.rb, line 34 def master=(new_master) @stories[master] = [] @branches[0] = new_master _get_stories(new_master) end
shas()
click to toggle source
# File lib/make_release/stories.rb, line 40 def shas source.map do |branch| stories[branch].map { |s| s.sha } end.flatten.reverse end
source()
click to toggle source
# File lib/make_release/stories.rb, line 26 def source @branches[1, @branches.size] end
source_stories()
click to toggle source
# File lib/make_release/stories.rb, line 46 def source_stories story_index = {} source.each do |branch| stories[branch].each { |s| story_index[s.sha] = s } end story_index.values end
Private Instance Methods
_get_branches(master, sources)
click to toggle source
# File lib/make_release/stories.rb, line 83 def _get_branches(master, sources) branches = [] << (master.nil? ? 'master' : master) branches << (sources.empty? ? ['develop'] : sources) branches.flatten end
_get_stories(branches = @branches)
click to toggle source
# File lib/make_release/stories.rb, line 89 def _get_stories(branches = @branches) git = Git.new(@directory) branches.to_a.each do |branch| git.log(branch).each do |line| add_story branch, Story.new(line) end end end