class Semvergen::ChangeLogFile
Public Class Methods
new(change_log_filename=nil)
click to toggle source
# File lib/semvergen/change_log_file.rb, line 5 def initialize(change_log_filename=nil) @change_log_filename = change_log_filename || "CHANGELOG.md" end
Public Instance Methods
<<(message)
click to toggle source
# File lib/semvergen/change_log_file.rb, line 9 def <<(message) current_change_log = File.exist?(@change_log_filename) ? File.read(@change_log_filename, :encoding => "UTF-8") : "" new_change_log = "# Changelog\n\n#{message}" + current_change_log.gsub("# Changelog\n", "") File.open(@change_log_filename, "w") { |f| f.write new_change_log } end
features(version=nil)
click to toggle source
# File lib/semvergen/change_log_file.rb, line 15 def features(version=nil) features_for_version(version || latest_version) end
Private Instance Methods
features_for_version(version)
click to toggle source
# File lib/semvergen/change_log_file.rb, line 26 def features_for_version(version) lines = File.readlines(@change_log_filename).map { |l| l.chomp } features = lines.slice_before(/^#/).select { |a| a.first == "# #{version}" }.first[1..-1] features.select do |feature| !feature.empty? end.compact end
latest_version()
click to toggle source
# File lib/semvergen/change_log_file.rb, line 21 def latest_version lines = File.readlines(@change_log_filename).map { |l| l.chomp } Array(lines.slice_before(/^#/))[1][0].gsub("# ", "") end