class Aufgaben::Bump::Base
Constants
- DEFAULT_COMMIT_MESSAGE_TEMPLATE
Attributes
commit_message_template[RW]
current_version[RW]
files[RW]
next_version[RW]
ns[R]
target_name[R]
Public Class Methods
new(name, ns, target_name, depends:) { |self| ... }
click to toggle source
Calls superclass method
Aufgaben::Base::new
# File lib/aufgaben/bump/base.rb, line 27 def initialize(name, ns, target_name, depends:) super(name, depends: depends) @ns = ns || default_namespace @target_name = target_name @files ||= [] @commit_message_template = DEFAULT_COMMIT_MESSAGE_TEMPLATE yield self if block_given? namespace(ns) { define } end
Public Instance Methods
default_namespace()
click to toggle source
# File lib/aufgaben/bump/base.rb, line 40 def default_namespace :bump end
Private Instance Methods
commit_message()
click to toggle source
# File lib/aufgaben/bump/base.rb, line 92 def commit_message ERB.new(commit_message_template).result_with_hash( ns: ns, name: name, target_name: target_name, current_version: current_version, next_version: next_version, release_label: release_label, release_url: release_url, ) end
define()
click to toggle source
# File lib/aufgaben/bump/base.rb, line 53 def define desc "Bump #{target_name} version" task name, [:next_version] => depends do |_task, args| self.next_version = args.fetch(:next_version) or raise "`next_version is required`" current_version or raise "`current_version` is required" puts "Bumping #{target_name} from #{current_version} to #{next_version} ..." puts "" current_version_pattern = Regexp.new('\b' + Regexp.escape(current_version) + '\b') changed_files = target_files.each_with_object([]) do |file, new_files| next unless File.exist? file if dry_run? puts "#{file} will be changed." else print "Writing #{file} ..." content = File.read(file) content.gsub!(current_version_pattern, next_version) File.write(file, content) puts " OK" puts "" end new_files << file end if changed_files.empty? puts "No changed files." elsif !dry_run? puts "Committing changed files ..." puts "" git "add", *changed_files git "commit", "-m", commit_message end end end
target_files()
click to toggle source
# File lib/aufgaben/bump/base.rb, line 49 def target_files Set.new(files) end