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

### Methods

add_path forget if_needed names present present_exact provide require require_exact unknown_proc vcompare versions vsatisfies

### Included Modules

TkCore

### Constants

TkCommandNames | = | ['package'.freeze].freeze

### Public Instance methods

add_path(path)

[Source]

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

forget(package)

[Source]

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

if_needed(pkg, ver, *arg, &b)

[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

names()

[Source]

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

present(package, version=None)

[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

present_exact(package, version)

[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

provide(package, version=nil)

[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

require(package, version=None)

[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

require_exact(package, version)

[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

unknown_proc(*arg, &b)

[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

vcompare(version1, version2)

[Source]

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

versions(package)

[Source]

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

vsatisfies(version1, version2)

[Source]

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

[Validate]