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
|
# File 'lib/xforge/version_parser.rb', line 3
def parse(changes_file, version)
release_notes_first = nil
changes_first = nil
changes_last = nil
lines = File.open(changes_file).readlines
state = nil
lines.each_with_index do |line, n|
if line =~ /#{version}/ && state.nil?
state = :in_release_notes
release_notes_first = n+1
end
if (line =~ /\*/ && (state == :in_release_notes))
state = :in_changes
changes_first = changes_last = n
end
if (line =~ /\*/ && (state == :in_changes))
changes_last = n
end
if line =~ /^==/ && state == :in_changes
state = :done
end
end
release_notes = lines[release_notes_first..changes_first-1].join("")
release_changes = lines[changes_first..changes_last].collect{|line| line[2..-1].chomp}
Version.new(release_notes, release_changes)
end
|