Sha256: 9e7d9440873d513ffd917550cf3c84c8e578daa029cc8e7a3b88366c9047957f

Contents?: true

Size: 648 Bytes

Versions: 4

Compression:

Stored size: 648 Bytes

Contents

module Jim
  class VersionParser

    NOT_EXTENSIONS = %w{.min .pre .beta}

    def self.parse_filename(filename)
      f = Pathname.new(filename).basename.to_s
      extension = f.scan(/\.[^\.\d\s\-\_][^\.]*$/)[0]
      if NOT_EXTENSIONS.include?(extension)
        extension = nil
      else 
        f.gsub!(/#{extension}$/, '')
      end 

      name, after_name, delimiter, version = f.scan(/^([a-z\.\-\_]+)(([\.\-\_\s])v?(([\w\d]{6,7})|(\d[\d\w\.]*)))?$/i)[0]
      [name || f, version || "0"]
    end

    def self.parse_package_json(package)
      json = Yajl::Parser.parse(package)
      [json["name"], json["version"]]
    end


  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
jim-0.2.3 lib/jim/version_parser.rb
jim-0.2.2 lib/jim/version_parser.rb
jim-0.2.1 lib/jim/version_parser.rb
jim-0.2.0 lib/jim/version_parser.rb