Class: Bump::Bump

Inherits:
Object
  • Object
show all
Defined in:
lib/bump.rb

Constant Summary collapse

BUMPS =
["major", "minor", "patch", "pre"].freeze
PRERELEASE =
["alpha", "beta", "rc", nil].freeze
OPTIONS =
BUMPS | ["set", "current", "file"]
VERSION_REGEX =
/(\d+\.\d+\.\d+(?:-(?:#{PRERELEASE.compact.join('|')}))?)/.freeze

Class Method Summary collapse

Class Method Details

.currentObject



59
60
61
# File 'lib/bump.rb', line 59

def current
  current_info.first
end

.defaultsObject



20
21
22
23
24
25
26
27
# File 'lib/bump.rb', line 20

def defaults
  {
    tag: ::Bump.tag_by_default,
    commit: true,
    bundle: File.exist?("Gemfile"),
    replace_in: ::Bump.replace_in_default || []
  }
end

.fileObject



63
64
65
# File 'lib/bump.rb', line 63

def file
  current_info.last
end

.parse_cli_options!(options) ⇒ Object



67
68
69
70
71
72
# File 'lib/bump.rb', line 67

def parse_cli_options!(options)
  options.each do |key, value|
    options[key] = parse_cli_options_value(value)
  end
  options.delete_if { |_key, value| value.nil? }
end

.run(bump, options = {}) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/bump.rb', line 29

def run(bump, options = {})
  options = defaults.merge(options)
  options[:commit] = false unless File.directory?(".git")

  case bump
  when *BUMPS
    bump_part(bump, options)
  when "set"
    raise InvalidVersionError unless options[:version]

    bump_set(options[:version], options)
  when "current"
    ["Current version: #{current}", 0]
  when "file"
    ["Version file path: #{file}", 0]
  else
    raise InvalidOptionError
  end
rescue InvalidOptionError
  ["Invalid option. Choose between #{OPTIONS.join(',')}.", 1]
rescue InvalidVersionError
  ["Invalid version number given.", 1]
rescue UnfoundVersionError
  ["Unable to find your gem version", 1]
rescue UnfoundVersionFileError
  ["Unable to find a file with the gem version", 1]
rescue TooManyVersionFilesError
  ["More than one version file found (#{$!.message})", 1]
end