class Maven::Tools::Artifact
Constants
- ATTRS
Public Class Methods
from( type, *args )
click to toggle source
# File lib/maven/tools/artifact.rb, line 48 def self.from( type, *args ) if args.last.is_a? Hash options = args.last.dup args = args[0..-2] end helper = Helper.new case args.size when 1 # jar "asd:Asd:123 # jar "asd:Asd:123:test" # jar "asd:Asd:123:[dsa:rew,fe:fer]" # jar "asd:Asd:123:test:[dsa:rew,fe:fer]" group_id, artifact_id, version, classifier, exclusions = args[0].split( /:/ ) self.new( group_id, artifact_id, type, version, classifier, exclusions, options ) when 2 # jar "asd:Asd", 123 # jar "asd:Asd:test", 123 # jar "asd:Asd:[dsa:rew,fe:fer]", 123 # jar "asd:Asd:test:[dsa:rew,fe:fer]", 123 group_id, artifact_id, classifier, exclusions = args[0].split( /:/ ) self.new( group_id, artifact_id, type, helper.to_version( args[ 1 ] ), classifier, exclusions, options ) when 3 # jar "asd:Asd",'>123', '<345' # jar "asd:Asd:test",'>123', '<345' # jar "asd:Asd:[dsa:rew,fe:fer]",'>123', '<345' # jar "asd:Asd:test:[dsa:rew,fe:fer]",'>123', '<345' # jar "asd:Asd:test:[dsa:rew,fe:fer]", '123', 'source' if args[ 0 ].match /:/ v = helper.to_version( *args[1..-1] ) case v when String group_id, artifact_id, classifier, exclusions = args[0].split( /:/ ) self.new( group_id, artifact_id, type, v, classifier, exclusions, options ) else group_id, artifact_id = args[0].split( /:/ ) self.new( group_id, artifact_id, type, args[1], args[2], nil, options ) end else self.new( args[ 0 ], args[ 1 ], type, args[ 2 ], nil, nil, options ) end else nil end end
from_coordinate( coord )
click to toggle source
# File lib/maven/tools/artifact.rb, line 104 def self.from_coordinate( coord ) exclusions = nil coord.sub!(/:\[([^:]+:[^:]+)+\]/) do |s| exclusions = s[1..-1] '' end args = coord.split( /:/ ) # maven coordinates differ :( if args.size == 5 classifier = args[ 4 ] args[ 4 ] = args[ 3 ] args[ 3 ] = classifier end if exclusions args[ 4 ] ||= nil args << exclusions end new( *args ) end
new( group_id, artifact_id, type, version = nil, classifier = nil, exclusions = nil, options = {} )
click to toggle source
# File lib/maven/tools/artifact.rb, line 124 def initialize( group_id, artifact_id, type, version = nil, classifier = nil, exclusions = nil, options = {} ) if exclusions.nil? if version.nil? and !classifier.nil? version = classifier classifier = nil elsif classifier.is_a?( Array ) exclusions = classifier#version #version = classifier classifier = nil end end self[ :type ] = type self[ :group_id ] = group_id self[ :artifact_id ] = artifact_id self[ :version ] = version self[ :classifier ] = classifier if classifier self[ :exclusions ] = exclusions if exclusions if options self[ :group_id ] ||= options[ :group_id ] self[ :artifact_id ] ||= options[ :artifact_id ] self[ :version ] ||= options[ :version ] self[ :classifier ] ||= options[ :classifier ] if options[ :classifier ] self[ :exclusions ] ||= prepare( options[ :exclusions ] ) if options[ :exclusions ] options.delete( :group_id ) options.delete( :artifact_id ) options.delete( :version ) options.delete( :classifier ) options.delete( :exclusions ) options.delete( :scope ) if options[ :scope ] == :compile self.merge!( options ) end end
new_local( path, type, options = {} )
click to toggle source
# File lib/maven/tools/artifact.rb, line 34 def self.new_local( path, type, options = {} ) name = ::File.basename( path ).sub( /.#{type}$/, '' ) if ind = name.rindex( '-' ) version = name[ind + 1..-1] name = name[0..ind - 1] else version = '0' end self.new( "ruby.maven-tools.#{type}", name, type, nil, version, nil, options.merge( { :system_path => path, :scope => :system } ) ) end
Public Instance Methods
exclusions()
click to toggle source
# File lib/maven/tools/artifact.rb, line 204 def exclusions if key?( :exclusions ) self[:exclusions].inspect.gsub( /[\[\]" ]/, '' ).split( /,/ ) end end
gav()
click to toggle source
# File lib/maven/tools/artifact.rb, line 196 def gav [ self[:group_id], self[:artifact_id], self[:version], self[:classifier] ].select { |o| o }.join( ':' ) end
key()
click to toggle source
# File lib/maven/tools/artifact.rb, line 200 def key @key ||= [ self[:group_id], self[:artifact_id], self[:classifier] ].select { |o| o }.join( ':' ) end
method_missing( m, arg = nil )
click to toggle source
Calls superclass method
# File lib/maven/tools/artifact.rb, line 176 def method_missing( m, arg = nil ) if ATTRS.member? m # setter self[ m.to_s[ 0..-2].to_sym ] = arg elsif ATTRS.member?( "#{m}=".to_sym ) if arg.nil? # getter self[ m ] else # setter self[ m ] = arg end else super end end
respond_to?( m )
click to toggle source
# File lib/maven/tools/artifact.rb, line 192 def respond_to?( m ) ATTRS.member? m end
to_coordinate()
click to toggle source
# File lib/maven/tools/artifact.rb, line 210 def to_coordinate [ self[:group_id], self[:artifact_id], self[:type], self[:classifier], self[:version] ].select { |o| o }.join( ':' ) end
to_s()
click to toggle source
# File lib/maven/tools/artifact.rb, line 214 def to_s [ self[:group_id], self[:artifact_id], self[:type], self[:classifier], self[:version], key?( :exclusions )? self[:exclusions].inspect.gsub( /[" ]/, '' ) : nil ].select { |o| o }.join( ':' ) end
Private Instance Methods
prepare( excl )
click to toggle source
# File lib/maven/tools/artifact.rb, line 159 def prepare( excl ) excl.collect do |e| case e when String e when Array e.join ':' else raise 'only String and Array allowed' end end end