Class: SemverBump::SemVer
- Inherits:
-
Object
- Object
- SemverBump::SemVer
- Defined in:
- lib/semver_bump/semver.rb
Constant Summary collapse
- MATCHER =
/^(\d+)\.(\d+)\.(\d+)\.?([0-9A-Za-z]*)$/
- PARTS =
[:major, :minor, :patch, :pre]
Class Method Summary collapse
Instance Method Summary collapse
- #bump_patch ⇒ Object
- #bump_pre ⇒ Object
- #get_pre ⇒ Object
- #get_pre_s ⇒ Object
-
#initialize(ver) ⇒ SemVer
constructor
A new instance of SemVer.
- #pre ⇒ Object
- #pre_s ⇒ Object
- #primary ⇒ Object
- #to_s ⇒ Object
Constructor Details
Class Method Details
.valid?(ver) ⇒ Boolean
8 9 10 |
# File 'lib/semver_bump/semver.rb', line 8 def self.valid?(ver) MATCHER =~ ver end |
Instance Method Details
#bump_patch ⇒ Object
53 54 55 56 57 58 59 |
# File 'lib/semver_bump/semver.rb', line 53 def bump_patch if pre && pre > 0 send(:pre=,0) else send(:patch=,(send(:patch)+1)) end end |
#bump_pre ⇒ Object
61 62 63 64 65 66 67 68 69 |
# File 'lib/semver_bump/semver.rb', line 61 def bump_pre if !pre || pre == 0 bump_patch send(:pre=,1) else send(:pre=,(send(:pre)+1)) end self end |
#get_pre ⇒ Object
26 27 28 29 30 31 |
# File 'lib/semver_bump/semver.rb', line 26 def get_pre return 0 unless pre_raw matches = (/(\d)/.match(pre_raw.to_s)) return 0 unless matches.respond_to?(:captures) matches.captures.first.to_i end |
#get_pre_s ⇒ Object
37 38 39 40 41 |
# File 'lib/semver_bump/semver.rb', line 37 def get_pre_s @pre_s = pre_raw.to_s.gsub(/\d/,'') @pre_s = 'pre' if !@pre_s || @pre_s == '' @pre_s end |
#pre ⇒ Object
22 23 24 |
# File 'lib/semver_bump/semver.rb', line 22 def pre @pre ||= get_pre end |
#pre_s ⇒ Object
33 34 35 |
# File 'lib/semver_bump/semver.rb', line 33 def pre_s "#{get_pre_s}#{pre}" end |
#primary ⇒ Object
71 72 73 |
# File 'lib/semver_bump/semver.rb', line 71 def primary "#{@major}.#{@minor}.#{@patch}" end |
#to_s ⇒ Object
75 76 77 78 |
# File 'lib/semver_bump/semver.rb', line 75 def to_s return [primary,pre_s].compact.join('.') if pre && pre > 0 primary end |