module Pione::Util::PackageID

Public Class Methods

generate(env, package_name) click to toggle source

Generate package id from the package name in the environment.

# File lib/pione/util/id.rb, line 25
def generate(env, package_name)
  begin
    env.package_get(Lang::PackageExpr.new(name: package_name, package_id: package_name))
    i = 0
    loop do
      i += 1
      name = "%s-%s" % [package_name, i]
      unless env.package_ids.include?(name)
        env.package_ids << name
        return name
      end
    end
  rescue Lang::UnboundError
    return package_name
  end
end

Private Instance Methods

generate(env, package_name) click to toggle source

Generate package id from the package name in the environment.

# File lib/pione/util/id.rb, line 25
def generate(env, package_name)
  begin
    env.package_get(Lang::PackageExpr.new(name: package_name, package_id: package_name))
    i = 0
    loop do
      i += 1
      name = "%s-%s" % [package_name, i]
      unless env.package_ids.include?(name)
        env.package_ids << name
        return name
      end
    end
  rescue Lang::UnboundError
    return package_name
  end
end