Module TkPackage
In: tk/lib/tk/package.rb

Methods

Included Modules

TkCore

Constants

TkCommandNames = ['package'.freeze].freeze

Public Instance methods

[Source]

# File tk/lib/tk/package.rb, line 12
  def add_path(path)
    Tk::AUTO_PATH.value = Tk::AUTO_PATH.to_a << path
  end

[Source]

# File tk/lib/tk/package.rb, line 16
  def forget(package)
    tk_call('package', 'forget', package)
    nil
  end

[Source]

# File tk/lib/tk/package.rb, line 21
  def if_needed(pkg, ver, *arg, &b)
    size = arg.size

    if size==0 && !b
      # proc info
      procedure(tk_call('package', 'ifneeded', pkg, ver))

    elsif size==0 && b
      # set proc
      cmd = proc(&b)
      tk_call('package', 'ifneeded', pkg, ver, cmd)
      cmd

    elsif size==1 && !b
      # set proc
      cmd = arg[0]
      if cmd
        tk_call('package', 'ifneeded', pkg, ver, cmd)
        cmd
      else
        # remove proc
        tk_call('package', 'ifneeded', pkg, ver, '')
        nil
      end

    else
      fail ArgumentError, 'too many arguments'
    end
  end

[Source]

# File tk/lib/tk/package.rb, line 51
  def names
    tk_split_simplelist(tk_call('package', 'names'))
  end

[Source]

# File tk/lib/tk/package.rb, line 66
  def present(package, version=None)
    begin
      tk_call('package', 'present', package, version)
    rescue => e
      fail e.class, 'TkPackage ' << e.message
    end
  end

[Source]

# File tk/lib/tk/package.rb, line 74
  def present_exact(package, version)
    begin
      tk_call('package', 'present', '-exact', package, version)
    rescue => e
      fail e.class, 'TkPackage ' << e.message
    end
  end

[Source]

# File tk/lib/tk/package.rb, line 55
  def provide(package, version=nil)
    if version
      tk_call('package', 'provide', package, version)
    end
    if (ret = tk_call('package', 'provide', package)) == ''
      nil
    else
      ret
    end
  end

[Source]

# File tk/lib/tk/package.rb, line 82
  def require(package, version=None)
    begin
      tk_call('package', 'require', package, version)
    rescue => e
      fail e.class, 'TkPackage ' << e.message
    end
  end

[Source]

# File tk/lib/tk/package.rb, line 90
  def require_exact(package, version)
    begin
      tk_call('package', 'require', '-exact', package, version)
    rescue => e
      fail e.class, 'TkPackage ' << e.message
    end
  end

[Source]

# File tk/lib/tk/package.rb, line 98
  def unknown_proc(*arg, &b)
    size = arg.size

    if size==0 && !b
      # proc info
      procedure(tk_call('package', 'unknown'))

    elsif size==0 && b
      # set proc
      cmd = proc(&b)
      tk_call('package', 'unknown', cmd)
      cmd

    elsif size==1 && !b
      # set proc
      cmd = arg[0]
      if cmd
        tk_call('package', 'unknown', cmd)
        cmd
      else
        # remove proc
        tk_call('package', 'unknown', '')
        nil
      end

    else
      fail ArgumentError, 'too many arguments'
    end
  end

[Source]

# File tk/lib/tk/package.rb, line 132
  def vcompare(version1, version2)
    number(tk_call('package', 'vcompare', version1, version2))
  end

[Source]

# File tk/lib/tk/package.rb, line 128
  def versions(package)
    tk_split_simplelist(tk_call('package', 'versions', package))
  end

[Source]

# File tk/lib/tk/package.rb, line 136
  def vsatisfies(version1, version2)
    bool(tk_call('package', 'vsatisfies', version1, version2))
  end

[Validate]