Class: Amitree::GitClient::Range

Inherits:
Object
  • Object
show all
Defined in:
lib/amitree/git_client/range.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(commits) ⇒ Range

Returns a new instance of Range.



9
10
11
# File 'lib/amitree/git_client/range.rb', line 9

def initialize commits
  @commits = commits
end

Instance Attribute Details

#commitsObject (readonly)

Returns the value of attribute commits.



7
8
9
# File 'lib/amitree/git_client/range.rb', line 7

def commits
  @commits
end

Instance Method Details

#commit_messagesObject



19
20
21
# File 'lib/amitree/git_client/range.rb', line 19

def commit_messages
  commits.map(&:commit).map(&:message)
end

#since(rev) ⇒ Object



23
24
25
# File 'lib/amitree/git_client/range.rb', line 23

def since(rev)
  Range.new(commits[(index(rev)+1)..-1])
end

#story_idsObject



13
14
15
16
17
# File 'lib/amitree/git_client/range.rb', line 13

def story_ids
  commit_messages.map do |msg|
    msg.scan(/(?<=\[).*?(?=\])/).map{|expr| expr.scan /(?<=#)\d+/}
  end.flatten.map(&:to_i).uniq
end

#up_to(rev) ⇒ Object



27
28
29
# File 'lib/amitree/git_client/range.rb', line 27

def up_to(rev)
  Range.new(commits[0..index(rev)])
end