# module TkPackage

### Constants

TkCommandNames

### Public Instance Methods

add_path(path) click to toggle source

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

forget(package) click to toggle source

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

if_needed(pkg, ver, *arg, &b) click to toggle source

    # File lib/tk/package.rb, line 22
    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

names() click to toggle source

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

prefer(setting = None) click to toggle source

    # File lib/tk/package.rb, line 141
    def prefer(setting = None)
      tk_call('package', 'prefer', setting)
    end

present(package, version=None) click to toggle source

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

present_exact(package, version) click to toggle source

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

provide(package, version=nil) click to toggle source

    # File lib/tk/package.rb, line 56
    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

require(package, version=None) click to toggle source

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

require_exact(package, version) click to toggle source

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

unknown_proc(*arg, &b) click to toggle source

    # File lib/tk/package.rb, line 99
    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

vcompare(version1, version2) click to toggle source

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

versions(package) click to toggle source

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

vsatisfies(version1, version2) click to toggle source

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