Module: Purple::Matches

Defined in:
lib/purple/matches.rb

Constant Summary collapse

EXTENSIONS =
'(\.tar\.gz|\.tar\.bz2|\.tgz|\.zip)'
REGEXPS =
[
    /^(.+)-((\d+)(\.\d+)*(-?\w+)?)#{EXTENSIONS}$/,
    /^(.+)\.([^\.]+?)#{EXTENSIONS}$/,
]

Class Method Summary collapse

Class Method Details

.match_filename(filename) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/purple/matches.rb', line 11

def self.match_filename filename
    md = nil
    REGEXPS.find { |r| md = r.match filename }
    puts "DEBUG Matches#match_filename: filename=#{filename.inspect} md=#{md.to_a.inspect}" if $DEBUG
    raise 'filename does not match pattern' if not (md and not md.to_a[0..1].include? nil)

    { :name => md[1], :version => md[2] } 
end