Module: Vump

Defined in:
lib/cli.rb,
lib/vump.rb,
lib/vump/meta.rb,
lib/vump/version.rb,
lib/vump/semver/semver.rb,
lib/vump/semver/module/npm.rb,
lib/vump/semver/module/npm_lock.rb,
lib/vump/semver/module/version_file.rb,
lib/vump/semver/module/keepachangelog.rb,
lib/vump/semver/read_write_version_module.rb

Overview

Root package module

Defined Under Namespace

Modules: CLI, VersionModule Classes: ReadWriteVersionModule, Semver

Constant Summary collapse

SUMMARY =

Brief summary of the package

'Raise version version in root of semver project.'.freeze
VERSION =

Package version

File.read(File.expand_path('../../VERSION', __dir__)).strip.freeze
@@logger =
Logger.new(STDOUT)

Class Method Summary collapse

Class Method Details

.bump(what, version) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/vump.rb', line 17

def self.bump(what, version)
  case what
  when /^ma/i
    version.bump_major
  when /^mi/i
    version.bump_minor
  when /^p/i
    version.bump_patch
  end
  version
end

.git(modules, release_version) ⇒ Object



56
57
58
59
60
61
# File 'lib/vump.rb', line 56

def self.git(modules, release_version)
  return unless File.exist?(Dir.pwd + '/.git')
  modules.each { |m| `git add #{m.path}` }
  `git commit -m "Release #{release_version}"` unless modules.empty?
  `git tag "v#{release_version}"`
end

.loggerObject



13
14
15
# File 'lib/vump.rb', line 13

def self.logger
  @@logger
end

.modules(base = Dir.pwd) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
# File 'lib/vump.rb', line 29

def self.modules(base = Dir.pwd)
  modules_versions = Vump::VersionModule
                     .constants
                     .map { |m| Vump::VersionModule.const_get(m) }
                     .select { |m| m.is_a? Class }
                     .map { |m| m.new(base) }
                     .map { |m| [m, m.read] }
                     .select { |_m, v| v }
  # "unzip"
  modules_versions.empty? ? [[], []] : modules_versions.transpose
end

.orchestrate(args) ⇒ String

Format CLI output

Parameters:

  • args (Array[String])

    CLI args

Returns:

  • (String)

    output



45
46
47
48
49
50
51
52
53
54
# File 'lib/vump.rb', line 45

def self.orchestrate(args)
  v_modules, current_versions = modules
  if current_versions.uniq.length > 1
    Vump.logger.error 'Different versions detected. Quitting.'
  else
    new_version = bump(args.first, Vump::Semver.new(current_versions.first))
    v_modules.each { |m| m.write(new_version.to_s) }
    git(v_modules, new_version)
  end
end