module NewRelic::LatestChanges
Constants
- FOOTER
Public Class Methods
default_changelog()
click to toggle source
# File lib/new_relic/latest_changes.rb, line 6 def self.default_changelog File.join(File.dirname(__FILE__), '..', '..', 'CHANGELOG') end
extract_latest_changes(contents)
click to toggle source
# File lib/new_relic/latest_changes.rb, line 50 def self.extract_latest_changes(contents) changes = [] version_count = 0 contents.each_line do |line| if line.match(/##\s+v[\d.]+\s+##/) version_count += 1 end break if version_count >= 2 changes << line.sub(/^ \* /, "* ").chomp end changes end
read(changelog=default_changelog)
click to toggle source
# File lib/new_relic/latest_changes.rb, line 15 def self.read(changelog=default_changelog) changes = extract_latest_changes(File.read(changelog)) changes << FOOTER changes.join("\n") end
read_patch(patch_level, changelog=default_changelog)
click to toggle source
Patches are expected to have the format of our normal item, with the precise version number included in the line in parens. For example:
-
This is a patch item (3.7.1.188)
# File lib/new_relic/latest_changes.rb, line 26 def self.read_patch(patch_level, changelog=default_changelog) latest = extract_latest_changes(File.read(changelog)) changes = ["## v#{patch_level} ##", ""] current_item = nil latest.each do |line| if line.match(/^\s*\*.*/) if line.match(/\(#{patch_level}\)/) # Found a patch level item, so start tracking the lines! current_item = line else # Found an item that isn't our patch level, so don't grab it current_item = nil end end if current_item changes << line end end changes.join("\n") end