Method: Puppet::ModuleTool::Applications::Application#parse_filename

Defined in:
lib/vendor/puppet/module_tool/applications/application.rb

#parse_filename(filename) ⇒ Object



62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/vendor/puppet/module_tool/applications/application.rb', line 62

def parse_filename(filename)
  if match = /^((.*?)-(.*?))-(\d+\.\d+\.\d+.*?)$/.match(File.basename(filename,'.tar.gz'))
    module_name, author, shortname, version = match.captures
  else
    raise ArgumentError, "Could not parse filename to obtain the username, module name and version.  (#{@release_name})"
  end

  unless SemVer.valid?(version)
    raise ArgumentError, "Invalid version format: #{version} (Semantic Versions are acceptable: http://semver.org)"
  end

  return {
    :module_name => module_name,
    :author      => author,
    :dir_name    => shortname,
    :version     => version
  }
end