Module: Semmy::VersionString

Extended by:
VersionString
Included in:
VersionString
Defined in:
lib/semmy/version_string.rb

Defined Under Namespace

Classes: NoPreviousMinor, SuffixNotFound, UnexpectedSuffix

Instance Method Summary collapse

Instance Method Details

#bump_major(version, suffix) ⇒ Object



21
22
23
# File 'lib/semmy/version_string.rb', line 21

def bump_major(version, suffix)
  [bump(0, version), suffix].join('.')
end

#bump_minor(version, suffix) ⇒ Object



25
26
27
# File 'lib/semmy/version_string.rb', line 25

def bump_minor(version, suffix)
  [bump(1, version), suffix].join('.')
end

#bump_patch_level(version) ⇒ Object



29
30
31
# File 'lib/semmy/version_string.rb', line 29

def bump_patch_level(version)
  bump(2, version)
end

#components(version) ⇒ Object



41
42
43
44
45
46
47
48
49
# File 'lib/semmy/version_string.rb', line 41

def components(version)
  components = version.split('.')

  {
    major: components[0],
    minor: components[1],
    patch: components[2]
  }
end

#minor_only(version) ⇒ Object



33
34
35
# File 'lib/semmy/version_string.rb', line 33

def minor_only(version)
  version.split('.')[0..1].join('.')
end

#patch_level?(version) ⇒ Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/semmy/version_string.rb', line 37

def patch_level?(version)
  components(version)[:patch].to_i > 0
end

#previous_stable_branch_name(version, stable_branch_name_pattern) ⇒ Object



69
70
71
# File 'lib/semmy/version_string.rb', line 69

def previous_stable_branch_name(version, stable_branch_name_pattern)
  stable_branch_name_pattern % previous_minor_version_components(version)
end

#previous_version(version) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/semmy/version_string.rb', line 51

def previous_version(version)
  components = version.split('.').map(&:to_i)

  if components[2] > 0
    components[2] -= 1
  elsif components[1] > 0
    components[1] -= 1
  else
    fail(NoPreviousMinor, "Cannot get previous version of #{version}.")
  end

  components.join('.')
end

#remove_suffix(version, suffix) ⇒ Object



11
12
13
14
15
16
17
18
19
# File 'lib/semmy/version_string.rb', line 11

def remove_suffix(version, suffix)
  new_version = version.dup

  unless new_version.gsub!(/.#{suffix}$/, '')
    fail(SuffixNotFound, "Suffix #{suffix} not found in #{version}")
  end

  new_version
end

#stable_branch_name(version, stable_branch_name_pattern) ⇒ Object



65
66
67
# File 'lib/semmy/version_string.rb', line 65

def stable_branch_name(version, stable_branch_name_pattern)
  stable_branch_name_pattern % VersionString.components(version)
end