Sha256: a24f98272d75d118d7c95b499bd899757bacfc41a0a4646941343360defdbc03

Contents?: true

Size: 1.21 KB

Versions: 11

Compression:

Stored size: 1.21 KB

Contents

module ReleaseNotes
  module Versioning
    module Semantic
      class << self
        
        def increment(version, type)
          if version.nil?
            ReleaseNotes.starting_version
          else
            parts = parse_version(version.gsub('.md', ''))

            if type.downcase == 'major' or type == 'M'
              parts = increment_major(parts)
            elsif type.downcase == 'minor' or type == 'm'
              parts = increment_minor(parts)
            else
              parts = increment_patch(parts)
            end
              
            new_version = parts.join('.')
            new_version
          end
        end
      
        protected
          def parse_version(version)
            version.split('-').first.split('.')
          end

          def increment_major(parts)
            parts[0] = (parts[0].to_i + 1).to_s
            parts[1] = '0'
            parts[2] = '0'
            parts
          end

          def increment_minor(parts)
            parts[1] = (parts[1].to_i + 1).to_s
            parts[2] = '0'
            parts
          end

          def increment_patch(parts)
            parts[2] = (parts[2].to_i + 1).to_s
            parts
          end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
release_notes-1.0.4 lib/release_notes/versioning/semantic.rb
release_notes-1.0.3 lib/release_notes/versioning/semantic.rb
release_notes-1.0.1 lib/release_notes/versioning/semantic.rb
release_notes-1.0.0 lib/release_notes/versioning/semantic.rb
release_notes-0.5.1 lib/release_notes/versioning/semantic.rb
release_notes-0.4.0 lib/release_notes/versioning/semantic.rb
release_notes-0.3.4 lib/release_notes/versioning/semantic.rb
release_notes-0.3.3 lib/release_notes/versioning/semantic.rb
release_notes-0.2.1 lib/release_notes/versioning/semantic.rb
release_notes-0.2.0 lib/release_notes/versioning/semantic.rb
release_notes-0.1.3 lib/release_notes/versioning/semantic.rb