Sha256: e75e13594a3bf63037160513b7fc4604c7f09c8f3ced001efe4796371d822db5

Contents?: true

Size: 1.15 KB

Versions: 18

Compression:

Stored size: 1.15 KB

Contents

module Naether
  
  #
  # Helper for handling Maven notations, supports notations:
  #  * artifactId:groupId:version
  #  * artifactId:groupId:type:version 
  #  * artifactId:groupId:type:classifier:version 
  #
  class Notation
    attr_reader :group, :artifact, :version, :classifier, :type
    
    PATTERN = Regexp.compile( '^(.+?):(.+?):(.+?)(:(.+?)(:(.+))?)?$' )
    
    def initialize(notation)
      if notation =~ PATTERN
        @group = Regexp.last_match(1) 
        @artifact = Regexp.last_match(2)
        
        # artifactId:groupId:type:classifier:version 
        if Regexp.last_match(7)
          @type = Regexp.last_match(3)
          @classifier = Regexp.last_match(5)
          @version = Regexp.last_match(7)
          
        # artifactId:groupId:type:version 
        elsif Regexp.last_match(5)
          @type = Regexp.last_match(3)
          @version = Regexp.last_match(5)
        # artifactId:groupId:version -
        else
          @type = 'jar'
          @version = Regexp.last_match(3)
        end
          
      end
    end

    def to_notation
      "#{group}:#{artifact}:#{type}#{":#{classifier}" if classifier}:#{version}"
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
naether-0.15.10-java lib/naether/notation.rb
naether-0.15.10 lib/naether/notation.rb
naether-0.15.9 lib/naether/notation.rb
naether-0.15.8 lib/naether/notation.rb
naether-0.15.8-java lib/naether/notation.rb
naether-0.15.7 lib/naether/notation.rb
naether-0.15.7-java lib/naether/notation.rb
naether-0.15.6-java lib/naether/notation.rb
naether-0.15.6 lib/naether/notation.rb
naether-0.15.5-java lib/naether/notation.rb
naether-0.15.5 lib/naether/notation.rb
naether-0.15.1-java lib/naether/notation.rb
naether-0.15.0-java lib/naether/notation.rb
naether-0.15.0 lib/naether/notation.rb
naether-0.14.3-java lib/naether/notation.rb
naether-0.14.3 lib/naether/notation.rb
naether-0.14.2 lib/naether/notation.rb
naether-0.14.2-java lib/naether/notation.rb