lib/jeweler/commands/version/base.rb
require 'pathname' class Jeweler module Commands module Version class Base attr_accessor :repo, :version_helper, :gemspec, :commit, :base_dir def run update_version version_helper.write gemspec.version = version_helper.to_s commit_version if repo && commit end def update_version raise 'Subclasses should implement this' end def commit_version if repo repo.add(working_subdir.join(version_helper.path).to_s) repo.commit("Version bump to #{version_helper}") end end def working_subdir @working_subdir ||= base_dir_path.relative_path_from(Pathname.new(repo.dir.path)) end def base_dir_path Pathname.new(base_dir).realpath end def self.build_for(jeweler) command = new command.repo = jeweler.repo command.version_helper = jeweler.version_helper command.gemspec = jeweler.gemspec command.commit = jeweler.commit command.base_dir = jeweler.base_dir command end end end end end