~ubuntu-branches/ubuntu/intrepid/ruby1.8/intrepid-updates

« back to all changes in this revision

Viewing changes to ext/tk/lib/tk/package.rb

  • Committer: Bazaar Package Importer
  • Author(s): akira yamada
  • Date: 2007-03-13 22:11:58 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20070313221158-h3oql37brlaf2go2
Tags: 1.8.6-1
* new upstream version, 1.8.6.
* libruby1.8 conflicts with libopenssl-ruby1.8 (< 1.8.6) (closes: #410018)
* changed packaging style to cdbs from dbs.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#
 
2
# tk/package.rb : package command
 
3
#
 
4
require 'tk'
 
5
 
 
6
module TkPackage
 
7
  include TkCore
 
8
  extend TkPackage
 
9
 
 
10
  TkCommandNames = ['package'.freeze].freeze
 
11
 
 
12
  def add_path(path)
 
13
    Tk::AUTO_PATH.value = Tk::AUTO_PATH.to_a << path
 
14
  end
 
15
 
 
16
  def forget(package)
 
17
    tk_call('package', 'forget', package)
 
18
    nil
 
19
  end
 
20
 
 
21
  def if_needed(pkg, ver, *arg, &b)
 
22
    size = arg.size
 
23
 
 
24
    if size==0 && !b
 
25
      # proc info
 
26
      procedure(tk_call('package', 'ifneeded', pkg, ver))
 
27
 
 
28
    elsif size==0 && b
 
29
      # set proc
 
30
      cmd = proc(&b)
 
31
      tk_call('package', 'ifneeded', pkg, ver, cmd)
 
32
      cmd
 
33
 
 
34
    elsif size==1 && !b
 
35
      # set proc
 
36
      cmd = arg[0]
 
37
      if cmd
 
38
        tk_call('package', 'ifneeded', pkg, ver, cmd)
 
39
        cmd
 
40
      else
 
41
        # remove proc
 
42
        tk_call('package', 'ifneeded', pkg, ver, '')
 
43
        nil
 
44
      end
 
45
 
 
46
    else
 
47
      fail ArgumentError, 'too many arguments'
 
48
    end
 
49
  end
 
50
 
 
51
  def names
 
52
    tk_split_simplelist(tk_call('package', 'names'))
 
53
  end
 
54
 
 
55
  def provide(package, version=nil)
 
56
    if version
 
57
      tk_call('package', 'provide', package, version)
 
58
    end
 
59
    if (ret = tk_call('package', 'provide', package)) == ''
 
60
      nil
 
61
    else
 
62
      ret
 
63
    end
 
64
  end
 
65
 
 
66
  def present(package, version=None)
 
67
    begin
 
68
      tk_call('package', 'present', package, version)
 
69
    rescue => e
 
70
      fail e.class, 'TkPackage ' << e.message
 
71
    end
 
72
  end
 
73
 
 
74
  def present_exact(package, version)
 
75
    begin
 
76
      tk_call('package', 'present', '-exact', package, version)
 
77
    rescue => e
 
78
      fail e.class, 'TkPackage ' << e.message
 
79
    end
 
80
  end
 
81
 
 
82
  def require(package, version=None)
 
83
    begin
 
84
      tk_call('package', 'require', package, version)
 
85
    rescue => e
 
86
      fail e.class, 'TkPackage ' << e.message
 
87
    end
 
88
  end
 
89
 
 
90
  def require_exact(package, version)
 
91
    begin
 
92
      tk_call('package', 'require', '-exact', package, version)
 
93
    rescue => e
 
94
      fail e.class, 'TkPackage ' << e.message
 
95
    end
 
96
  end
 
97
 
 
98
  def unknown_proc(*arg, &b)
 
99
    size = arg.size
 
100
 
 
101
    if size==0 && !b
 
102
      # proc info
 
103
      procedure(tk_call('package', 'unknown'))
 
104
 
 
105
    elsif size==0 && b
 
106
      # set proc
 
107
      cmd = proc(&b)
 
108
      tk_call('package', 'unknown', cmd)
 
109
      cmd
 
110
 
 
111
    elsif size==1 && !b
 
112
      # set proc
 
113
      cmd = arg[0]
 
114
      if cmd
 
115
        tk_call('package', 'unknown', cmd)
 
116
        cmd
 
117
      else
 
118
        # remove proc
 
119
        tk_call('package', 'unknown', '')
 
120
        nil
 
121
      end
 
122
 
 
123
    else
 
124
      fail ArgumentError, 'too many arguments'
 
125
    end
 
126
  end
 
127
 
 
128
  def versions(package)
 
129
    tk_split_simplelist(tk_call('package', 'versions', package))
 
130
  end
 
131
 
 
132
  def vcompare(version1, version2)
 
133
    number(tk_call('package', 'vcompare', version1, version2))
 
134
  end
 
135
 
 
136
  def vsatisfies(version1, version2)
 
137
    bool(tk_call('package', 'vsatisfies', version1, version2))
 
138
  end
 
139
end