class Raketeer::FilesBumper
@author Jonathan Bradley Whited @since 0.2.4
Attributes
bump_ver[R]
bump_ver_empty[R]
bump_ver_empty?[R]
changes[RW]
dry_run[R]
dry_run?[R]
files[R]
init_per_file[RW]
line[RW]
lines[RW]
sem_ver[RW]
strict[RW]
strict?[RW]
version[RW]
version_bumped[RW]
version_bumped?[RW]
Public Class Methods
new(files,bump_ver,dry_run,strict,&init_per_file)
click to toggle source
# File lib/raketeer/files_bumper.rb, line 39 def initialize(files,bump_ver,dry_run,strict,&init_per_file) @bump_ver = bump_ver @bump_ver_empty = bump_ver.empty? @dry_run = dry_run @files = files.to_a @init_per_file = init_per_file @sem_ver = nil @strict = strict @version = nil @version_bumped = false end
Public Instance Methods
add_change(line,push: true)
click to toggle source
# File lib/raketeer/files_bumper.rb, line 51 def add_change(line,push: true) puts "+ #{line}" @changes += 1 @lines << line if push end
bump_files(&block)
click to toggle source
# File lib/raketeer/files_bumper.rb, line 58 def bump_files(&block) @files.each do |filename| puts "[#{filename}]:" if !File.exist?(filename) puts '! File does not exist' next end @changes = 0 # For possible future use @lines = [] @sem_ver = nil @init_per_file&.call(self) File.foreach(filename) do |line| @line = line block.call(self) if !@line.strip.empty? @lines << @line end next if bump_ver_empty? print '= ' if @changes > 0 if dry_run? puts "Nothing written (dry run): #{@sem_ver}" else File.open(filename,'w') do |file| file.puts @lines end puts "#{@changes} change#{@changes == 1 ? '' : 's'} written" end else puts "Nothing written (up-to-date): #{@sem_ver}" end end end
bump_line!(add_change: true)
click to toggle source
@return [:no_ver,:same_ver,:bumped_ver]
# File lib/raketeer/files_bumper.rb, line 103 def bump_line!(add_change: true) @sem_ver = SemVer.parse_line(@line,strict: @strict) return :no_ver if @sem_ver.nil? @version = @sem_ver if @version.nil? if bump_ver_empty? puts "= #{@sem_ver}" return :same_ver else orig_line = @line.dup orig_sem_ver_s = @sem_ver.to_s @bump_ver.bump_line!(@line,@sem_ver,strict: @strict) if @sem_ver.to_s != orig_sem_ver_s if !@version_bumped @version = @sem_ver @version_bumped = true end self.add_change(@line,push: false) if add_change return :bumped_ver else @line = orig_line return :same_ver end end end