knjrbfw 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. data/Gemfile +3 -1
  2. data/VERSION +1 -1
  3. data/knjrbfw.gemspec +14 -4
  4. data/lib/knj/amixer.rb +148 -0
  5. data/lib/knj/arrayext.rb +14 -5
  6. data/lib/knj/autoload.rb +63 -57
  7. data/lib/knj/autoload/backups/facets_dictionary.rb +2 -2
  8. data/lib/knj/autoload/erubis.rb +2 -0
  9. data/lib/knj/cmd_gen.rb +71 -0
  10. data/lib/knj/compiler.rb +2 -2
  11. data/lib/knj/datarow.rb +138 -38
  12. data/lib/knj/datestamp.rb +2 -2
  13. data/lib/knj/datet.rb +72 -17
  14. data/lib/knj/erb/include.rb +5 -5
  15. data/lib/knj/errors.rb +4 -1
  16. data/lib/knj/eruby.rb +25 -11
  17. data/lib/knj/event_filemod.rb +27 -26
  18. data/lib/knj/event_handler.rb +8 -8
  19. data/lib/knj/exchangerates.rb +1 -1
  20. data/lib/knj/facebook_connect.rb +37 -0
  21. data/lib/knj/gettext_threadded.rb +4 -3
  22. data/lib/knj/google_sitemap.rb +1 -1
  23. data/lib/knj/hash_methods.rb +1 -1
  24. data/lib/knj/http.rb +35 -19
  25. data/lib/knj/http2.rb +249 -0
  26. data/lib/knj/image.rb +128 -0
  27. data/lib/knj/jruby-gtk2/gtk2.rb +1 -1
  28. data/lib/knj/knj.rb +1 -1
  29. data/lib/knj/knj_controller.rb +0 -2
  30. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql.rb +3 -3
  31. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql_columns.rb +11 -11
  32. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql_tables.rb +2 -2
  33. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3.rb +71 -14
  34. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_columns.rb +17 -14
  35. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_tables.rb +5 -5
  36. data/lib/knj/knjdb/libknjdb.rb +33 -16
  37. data/lib/knj/knjdb/libknjdb_row.rb +8 -8
  38. data/lib/knj/maemo/fremantle-calendar/fremantle-calendar.rb +1 -1
  39. data/lib/knj/mount.rb +6 -6
  40. data/lib/knj/mutexcl.rb +2 -2
  41. data/lib/knj/objects.rb +286 -73
  42. data/lib/knj/opts.rb +11 -4
  43. data/lib/knj/os.rb +16 -3
  44. data/lib/knj/php.rb +73 -26
  45. data/lib/knj/php_parser/php_parser.rb +1 -77
  46. data/lib/knj/retry.rb +4 -4
  47. data/lib/knj/rhodes/rhodes.rb +106 -0
  48. data/lib/knj/sshrobot/sshrobot.rb +1 -1
  49. data/lib/knj/strings.rb +72 -0
  50. data/lib/knj/sysuser.rb +1 -1
  51. data/lib/knj/tests/test_http2.rb +18 -0
  52. data/lib/knj/thread.rb +1 -5
  53. data/lib/knj/thread2.rb +3 -3
  54. data/lib/knj/threadhandler.rb +2 -2
  55. data/lib/knj/threadpool.rb +4 -4
  56. data/lib/knj/translations.rb +2 -17
  57. data/lib/knj/unix_proc.rb +3 -3
  58. data/lib/knj/web.rb +156 -77
  59. data/lib/knj/webscripts/image.rhtml +22 -3
  60. data/lib/knj/x11vnc.rb +3 -3
  61. data/spec/amixer_spec.rb +27 -0
  62. data/spec/knjrbfw_spec.rb +70 -12
  63. data/testfiles/image.jpg +0 -0
  64. metadata +32 -14
  65. data/Gemfile.lock +0 -32
data/Gemfile CHANGED
@@ -10,5 +10,7 @@ group :development do
10
10
  gem "bundler", "~> 1.0.0"
11
11
  gem "jeweler", "~> 1.6.3"
12
12
  gem "rcov", ">= 0"
13
- gem "sqlite3"
13
+ gem "sqlite3" if RUBY_ENGINE != "jruby"
14
+ gem "rmagick" if RUBY_ENGINE != "jruby"
15
+ gem "rmagick4j" if RUBY_ENGINE == "jruby"
14
16
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.7
1
+ 0.0.8
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{knjrbfw}
8
- s.version = "0.0.7"
8
+ s.version = "0.0.8"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Kasper Johansen"]
12
- s.date = %q{2011-08-03}
12
+ s.date = %q{2011-11-15}
13
13
  s.description = %q{Including stuff for HTTP, SSH and much more.}
14
14
  s.email = %q{k@spernj.org}
15
15
  s.extra_rdoc_files = [
@@ -20,13 +20,13 @@ Gem::Specification.new do |s|
20
20
  ".document",
21
21
  ".rspec",
22
22
  "Gemfile",
23
- "Gemfile.lock",
24
23
  "LICENSE.txt",
25
24
  "README.rdoc",
26
25
  "Rakefile",
27
26
  "VERSION",
28
27
  "knjrbfw.gemspec",
29
28
  "lib/knj/.gitignore",
29
+ "lib/knj/amixer.rb",
30
30
  "lib/knj/arrayext.rb",
31
31
  "lib/knj/autoload.rb",
32
32
  "lib/knj/autoload/activesupport.rb",
@@ -52,6 +52,7 @@ Gem::Specification.new do |s|
52
52
  "lib/knj/autoload/twitter.rb",
53
53
  "lib/knj/autoload/xmlsimple.rb",
54
54
  "lib/knj/autoload/zip.rb",
55
+ "lib/knj/cmd_gen.rb",
55
56
  "lib/knj/compiler.rb",
56
57
  "lib/knj/cpufreq.rb",
57
58
  "lib/knj/datarow.rb",
@@ -74,6 +75,7 @@ Gem::Specification.new do |s|
74
75
  "lib/knj/event_handler.rb",
75
76
  "lib/knj/exchangerates.rb",
76
77
  "lib/knj/ext/webrick.rb",
78
+ "lib/knj/facebook_connect.rb",
77
79
  "lib/knj/filesystem.rb",
78
80
  "lib/knj/fs/drivers/filesystem.rb",
79
81
  "lib/knj/fs/drivers/ftp.rb",
@@ -89,6 +91,8 @@ Gem::Specification.new do |s|
89
91
  "lib/knj/gtk2_tv.rb",
90
92
  "lib/knj/hash_methods.rb",
91
93
  "lib/knj/http.rb",
94
+ "lib/knj/http2.rb",
95
+ "lib/knj/image.rb",
92
96
  "lib/knj/includes/appserver_cli.rb",
93
97
  "lib/knj/ip2location.rb",
94
98
  "lib/knj/ironruby-gtk2/button.rb",
@@ -208,6 +212,7 @@ Gem::Specification.new do |s|
208
212
  "lib/knj/tests/compiler/compiler_test.rb",
209
213
  "lib/knj/tests/compiler/compiler_test_file.rb",
210
214
  "lib/knj/tests/test_degulesider.rb",
215
+ "lib/knj/tests/test_http2.rb",
211
216
  "lib/knj/tests/test_mount.rb",
212
217
  "lib/knj/tests/test_retry.rb",
213
218
  "lib/knj/thread.rb",
@@ -224,8 +229,10 @@ Gem::Specification.new do |s|
224
229
  "lib/knj/x11vnc.rb",
225
230
  "lib/knj/youtube.rb",
226
231
  "lib/knjrbfw.rb",
232
+ "spec/amixer_spec.rb",
227
233
  "spec/knjrbfw_spec.rb",
228
- "spec/spec_helper.rb"
234
+ "spec/spec_helper.rb",
235
+ "testfiles/image.jpg"
229
236
  ]
230
237
  s.homepage = %q{http://github.com/kaspernj/knjrbfw}
231
238
  s.licenses = ["MIT"]
@@ -242,12 +249,14 @@ Gem::Specification.new do |s|
242
249
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.3"])
243
250
  s.add_development_dependency(%q<rcov>, [">= 0"])
244
251
  s.add_development_dependency(%q<sqlite3>, [">= 0"])
252
+ s.add_development_dependency(%q<rmagick>, [">= 0"])
245
253
  else
246
254
  s.add_dependency(%q<rspec>, ["~> 2.3.0"])
247
255
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
248
256
  s.add_dependency(%q<jeweler>, ["~> 1.6.3"])
249
257
  s.add_dependency(%q<rcov>, [">= 0"])
250
258
  s.add_dependency(%q<sqlite3>, [">= 0"])
259
+ s.add_dependency(%q<rmagick>, [">= 0"])
251
260
  end
252
261
  else
253
262
  s.add_dependency(%q<rspec>, ["~> 2.3.0"])
@@ -255,6 +264,7 @@ Gem::Specification.new do |s|
255
264
  s.add_dependency(%q<jeweler>, ["~> 1.6.3"])
256
265
  s.add_dependency(%q<rcov>, [">= 0"])
257
266
  s.add_dependency(%q<sqlite3>, [">= 0"])
267
+ s.add_dependency(%q<rmagick>, [">= 0"])
258
268
  end
259
269
  end
260
270
 
@@ -0,0 +1,148 @@
1
+ #This class is a Ruby-interface to the amixer-binary. It can read and set the volume.
2
+ class Knj::Amixer
3
+ attr_reader :args
4
+
5
+ def initialize(args = {})
6
+ @args = {
7
+ :amixer_bin => "/usr/bin/amixer",
8
+ :aplay_bin => "/usr/bin/aplay"
9
+ }.merge(args)
10
+
11
+ @devices = {}
12
+ end
13
+
14
+ #Returns a hash with devices.
15
+ def devices
16
+ ret = %x[#{@args[:aplay_bin]} -l]
17
+
18
+ ret.scan(/card (\d+): (.+?) \[(.+?)\],/) do |match|
19
+ id = match[0]
20
+
21
+ if !@devices.key?(id)
22
+ @devices[id] = Knj::Amixer::Device.new(
23
+ :amixer => self,
24
+ :id => id,
25
+ :name => match[2],
26
+ :code => match[1]
27
+ )
28
+ end
29
+ end
30
+
31
+ return @devices
32
+ end
33
+
34
+ class Device
35
+ def initialize(args)
36
+ @args = args
37
+ @mixers = {}
38
+ end
39
+
40
+ def id
41
+ return @args[:id]
42
+ end
43
+
44
+ def name
45
+ return @args[:name]
46
+ end
47
+
48
+ def code
49
+ return @args[:code]
50
+ end
51
+
52
+ def amixer
53
+ return @args[:amixer]
54
+ end
55
+
56
+ #Returns true if the device is active by looking in '/proc/asounc/card*/pcm*/sub*/status'.
57
+ def active?(args = {})
58
+ proc_path = "/proc/asound/#{@args[:code]}"
59
+
60
+ Dir.foreach(proc_path) do |file|
61
+ next if file == "." or file == ".." or !file.match(/^pcm(\d+)[a-z]+$/)
62
+ sub_path = "#{proc_path}/#{file}"
63
+ info_path = "#{sub_path}/info"
64
+ info_cont = File.read(info_path)
65
+
66
+ if stream_match = info_cont.match(/stream: (.+?)\s+/)
67
+ next if args.key?(:stream) and stream_match[1] != args[:stream]
68
+ end
69
+
70
+ Dir.foreach(sub_path) do |file_sub|
71
+ next if file_sub == "." or file_sub == ".." or !file_sub.match(/^sub(\d+)$/)
72
+ status_path = "#{sub_path}/#{file_sub}/status"
73
+ cont = File.read(status_path)
74
+ return true if cont.strip != "closed"
75
+ end
76
+ end
77
+
78
+ return false
79
+ end
80
+
81
+ #Returns a hash of the various mixers.
82
+ def mixers
83
+ ret = %x[#{@args[:amixer].args[:amixer_bin]} -c #{@args[:id]} scontrols]
84
+
85
+ ret.scan(/Simple mixer control '(.+)',0/) do |match|
86
+ name = match[0]
87
+
88
+ if !@mixers.key?(name)
89
+ @mixers[name] = Knj::Amixer::Mixer.new(
90
+ :amixer => @args[:amixer],
91
+ :device => self,
92
+ :name => name
93
+ )
94
+ end
95
+ end
96
+
97
+ return @mixers
98
+ end
99
+ end
100
+
101
+ #This class controls each mixer.
102
+ class Mixer
103
+ def initialize(args)
104
+ @args = args
105
+ end
106
+
107
+ #Returns the name of the mixer (example: Master).
108
+ def name
109
+ return @args[:name]
110
+ end
111
+
112
+ #Returns a bool. If the mixer supports volume-operations (some mixers are just switches and doenst support volume).
113
+ def volume?
114
+ ret = %x[#{@args[:amixer].args[:amixer_bin]} -c #{@args[:device].id} sget "#{@args[:name]}"]
115
+ raise "No content for mixer: '#{@args[:name]}'." if !ret
116
+
117
+ match = ret.match(/(Capture|Playback) (\d+) \[(\d+%)\]/)
118
+ return false if !match
119
+ return true
120
+ end
121
+
122
+ #Returns the volume-value as an integer (or as the percent if {:percent => true} if given in arguments).
123
+ def vol(args = {})
124
+ ret = %x[#{@args[:amixer].args[:amixer_bin]} -c #{@args[:device].id} sget "#{@args[:name]}"]
125
+ raise "No content for mixer: '#{@args[:name]}'." if !ret
126
+
127
+ match = ret.match(/(Capture|Playback) (\d+) \[(\d+%)\]/)
128
+ raise "Couldnt figure out volume for '#{@args[:name]}' from:\n'#{ret}'\n" if !match
129
+
130
+ return match[3].to_i if args[:percent]
131
+ return match[2].to_i
132
+ end
133
+
134
+ #Sets a new value for the volume.
135
+ def vol=(newvol)
136
+ ret = %x[#{@args[:amixer].args[:amixer_bin]} -c #{@args[:device].id} sset "#{@args[:name]}" "#{newvol}"]
137
+ #NOTE: Do some error handeling here?
138
+ end
139
+
140
+ #Adds a number to the volume.
141
+ def vol_add(add_vol)
142
+ vol = self.vol
143
+ newvol = vol + add_vol.to_i
144
+ newvol = 0 if newvol < 0
145
+ self.vol=(newvol)
146
+ end
147
+ end
148
+ end
@@ -24,7 +24,7 @@ module Knj::ArrayExt
24
24
  value = value if !args[:key]
25
25
 
26
26
  if args[:callback]
27
- if args[:callback].is_a?(Proc)
27
+ if args[:callback].is_a?(Proc) or args[:callback].is_a?(Method)
28
28
  value = args[:callback].call(value)
29
29
  else
30
30
  value = Knj::Php.call_user_func(args[:callback], value) if args[:callback]
@@ -94,9 +94,9 @@ module Knj::ArrayExt
94
94
 
95
95
  #Compares the keys and values of two hashes and returns true if they are different.
96
96
  def self.hash_diff?(h1, h2, args = {})
97
- if !args.has_key?("h1_to_h2") or args["h1_to_h2"]
97
+ if !args.key?("h1_to_h2") or args["h1_to_h2"]
98
98
  h1.each do |key, val|
99
- return true if !h2.has_key?(key)
99
+ return true if !h2.key?(key)
100
100
 
101
101
  hash_val = h2[key].to_s
102
102
  hash_val = hash_val.force_encoding("UTF-8") if hash_val.respond_to?(:force_encoding)
@@ -108,9 +108,9 @@ module Knj::ArrayExt
108
108
  end
109
109
  end
110
110
 
111
- if !args.has_key?("h2_to_h1") or args["h2_to_h1"]
111
+ if !args.key?("h2_to_h1") or args["h2_to_h1"]
112
112
  h2.each do |key, val|
113
- return true if !h1.has_key?(key)
113
+ return true if !h1.key?(key)
114
114
 
115
115
  hash_val = h1[key].to_s
116
116
  hash_val = hash_val.force_encoding("UTF-8") if hash_val.respond_to?(:force_encoding)
@@ -154,4 +154,13 @@ module Knj::ArrayExt
154
154
 
155
155
  return Digest::MD5.hexdigest(hashes.join("_"))
156
156
  end
157
+
158
+ #Validates a hash of data.
159
+ def self.validate_hash(h, args)
160
+ h.each do |key, val|
161
+ if args.key?(:not_empty) and args[:not_empty].index(key) != nil and val.to_s.strip.length <= 0
162
+ raise Knj::Errors::InvalidData, sprintf(args[:not_empty_error], key)
163
+ end
164
+ end
165
+ end
157
166
  end
@@ -1,61 +1,66 @@
1
1
  $knjpath = File.dirname(__FILE__) + "/" if !$knjpath
2
- require "#{$knjpath}/knj.rb"
2
+ require "#{$knjpath}/knj"
3
3
 
4
4
  module Knj
5
- autoload :ArrayExt, $knjpath + "arrayext.rb"
6
- autoload :Datestamp, $knjpath + "datestamp.rb"
7
- autoload :Datet, $knjpath + "datet.rb"
8
- autoload :Compiler, $knjpath + "compiler.rb"
9
- autoload :Cpufreq, $knjpath + "cpufreq.rb"
10
- autoload :Datarow, $knjpath + "datarow.rb"
11
- autoload :Db, $knjpath + "knjdb/libknjdb.rb"
12
- autoload :Db_row, $knjpath + "knjdb/libknjdb_row.rb"
13
- autoload :Degulesider, $knjpath + "degulesider.rb"
14
- autoload :Errors, $knjpath + "errors.rb"
15
- autoload :Eruby, $knjpath + "eruby.rb"
16
- autoload :Event_filemod, $knjpath + "event_filemod.rb"
17
- autoload :Event_handler, $knjpath + "event_handler.rb"
18
- autoload :Exchangerates, $knjpath + "exchangerates.rb"
19
- autoload :Fs, $knjpath + "fs/fs.rb"
20
- autoload :Filesystem, $knjpath + "filesystem.rb"
21
- autoload :Gettext_threadded, $knjpath + "gettext_threadded.rb"
22
- autoload :Hash_methods, $knjpath + "hash_methods.rb"
23
- autoload :Ip2location, $knjpath + "ip2location.rb"
24
- autoload :Jruby_compiler, $knjpath + "jruby_compiler.rb"
25
- autoload :Locales, $knjpath + "locales.rb"
26
- autoload :Objects, $knjpath + "objects.rb"
27
- autoload :Opts, $knjpath + "opts.rb"
28
- autoload :Mail, $knjpath + "mail.rb"
29
- autoload :Mailobj, $knjpath + "mailobj.rb"
30
- autoload :Mutexcl, $knjpath + "mutexcl.rb"
31
- autoload :Mount, $knjpath + "mount.rb"
32
- autoload :Mplayer, $knjpath + "mplayer.rb"
33
- autoload :Notify, $knjpath + "notify.rb"
34
- autoload :Nvidia_settings, $knjpath + "nvidia_settings.rb"
35
- autoload :Web, $knjpath + "web.rb"
36
- autoload :Google_sitemap, $knjpath + "google_sitemap.rb"
37
- autoload :Http, $knjpath + "http.rb"
38
- autoload :Sms, $knjpath + "sms.rb"
39
- autoload :Os, $knjpath + "os.rb"
40
- autoload :Gtk2, $knjpath + "gtk2.rb"
41
- autoload :Php, $knjpath + "php.rb"
42
- autoload :Php_parser, $knjpath + "php_parser/php_parser.rb"
43
- autoload :Power_manager, $knjpath + "power_manager.rb"
44
- autoload :Rand, $knjpath + "rand.rb"
45
- autoload :Retry, $knjpath + "retry.rb"
46
- autoload :RSVGBIN, $knjpath + "rsvgbin.rb"
47
- autoload :Strings, $knjpath + "strings.rb"
48
- autoload :SSHRobot, $knjpath + "sshrobot/sshrobot.rb"
49
- autoload :Sysuser, $knjpath + "sysuser.rb"
50
- autoload :Thread, $knjpath + "thread.rb"
51
- autoload :Thread2, $knjpath + "thread2.rb"
52
- autoload :Threadpool, $knjpath + "threadpool.rb"
53
- autoload :Threadhandler, $knjpath + "threadhandler.rb"
54
- autoload :Translations, $knjpath + "translations.rb"
55
- autoload :X11VNC, $knjpath + "x11vnc.rb"
56
- autoload :Unix_proc, $knjpath + "unix_proc.rb"
57
- autoload :YouTube, $knjpath + "youtube.rb"
58
- autoload :Win, $knjpath + "win.rb"
5
+ autoload :Amixer, $knjpath + "amixer"
6
+ autoload :ArrayExt, $knjpath + "arrayext"
7
+ autoload :Datestamp, $knjpath + "datestamp"
8
+ autoload :Datet, $knjpath + "datet"
9
+ autoload :Cmd_gen, $knjpath + "cmd_gen"
10
+ autoload :Compiler, $knjpath + "compiler"
11
+ autoload :Cpufreq, $knjpath + "cpufreq"
12
+ autoload :Datarow, $knjpath + "datarow"
13
+ autoload :Db, $knjpath + "knjdb/libknjdb"
14
+ autoload :Db_row, $knjpath + "knjdb/libknjdb_row"
15
+ autoload :Degulesider, $knjpath + "degulesider"
16
+ autoload :Errors, $knjpath + "errors"
17
+ autoload :Eruby, $knjpath + "eruby"
18
+ autoload :Event_filemod, $knjpath + "event_filemod"
19
+ autoload :Event_handler, $knjpath + "event_handler"
20
+ autoload :Exchangerates, $knjpath + "exchangerates"
21
+ autoload :Facebook_connect, $knjpath + "facebook_connect"
22
+ autoload :Fs, $knjpath + "fs/fs"
23
+ autoload :Filesystem, $knjpath + "filesystem"
24
+ autoload :Gettext_threadded, $knjpath + "gettext_threadded"
25
+ autoload :Hash_methods, $knjpath + "hash_methods"
26
+ autoload :Http, $knjpath + "http"
27
+ autoload :Http2, $knjpath + "http2"
28
+ autoload :Image, $knjpath + "image"
29
+ autoload :Ip2location, $knjpath + "ip2location"
30
+ autoload :Jruby_compiler, $knjpath + "jruby_compiler"
31
+ autoload :Locales, $knjpath + "locales"
32
+ autoload :Objects, $knjpath + "objects"
33
+ autoload :Opts, $knjpath + "opts"
34
+ autoload :Mail, $knjpath + "mail"
35
+ autoload :Mailobj, $knjpath + "mailobj"
36
+ autoload :Mutexcl, $knjpath + "mutexcl"
37
+ autoload :Mount, $knjpath + "mount"
38
+ autoload :Mplayer, $knjpath + "mplayer"
39
+ autoload :Notify, $knjpath + "notify"
40
+ autoload :Nvidia_settings, $knjpath + "nvidia_settings"
41
+ autoload :Web, $knjpath + "web"
42
+ autoload :Google_sitemap, $knjpath + "google_sitemap"
43
+ autoload :Sms, $knjpath + "sms"
44
+ autoload :Os, $knjpath + "os"
45
+ autoload :Gtk2, $knjpath + "gtk2"
46
+ autoload :Php, $knjpath + "php"
47
+ autoload :Php_parser, $knjpath + "php_parser/php_parser"
48
+ autoload :Power_manager, $knjpath + "power_manager"
49
+ autoload :Rand, $knjpath + "rand"
50
+ autoload :Retry, $knjpath + "retry"
51
+ autoload :RSVGBIN, $knjpath + "rsvgbin"
52
+ autoload :Strings, $knjpath + "strings"
53
+ autoload :SSHRobot, $knjpath + "sshrobot/sshrobot"
54
+ autoload :Sysuser, $knjpath + "sysuser"
55
+ autoload :Thread, $knjpath + "thread"
56
+ autoload :Thread2, $knjpath + "thread2"
57
+ autoload :Threadpool, $knjpath + "threadpool"
58
+ autoload :Threadhandler, $knjpath + "threadhandler"
59
+ autoload :Translations, $knjpath + "translations"
60
+ autoload :X11VNC, $knjpath + "x11vnc"
61
+ autoload :Unix_proc, $knjpath + "unix_proc"
62
+ autoload :YouTube, $knjpath + "youtube"
63
+ autoload :Win, $knjpath + "win"
59
64
  end
60
65
 
61
66
  #ruby objects.
@@ -77,7 +82,7 @@ autoload :Mysql, $knjpath + "autoload/mysql"
77
82
  autoload :Open3, "open3"
78
83
  autoload :OpenSSL, "openssl"
79
84
  autoload :OptionParser, "optparse"
80
- autoload :ParseDate, $knjpath + "autoload/backups/parsedate.rb"
85
+ autoload :ParseDate, $knjpath + "autoload/backups/parsedate"
81
86
  autoload :Pathname, "pathname"
82
87
  autoload :Ping, $knjpath + "autoload/ping"
83
88
  autoload :REXML, $knjpath + "autoload/rexml"
@@ -90,9 +95,10 @@ autoload :TCPServer, "socket"
90
95
  autoload :URI, "uri"
91
96
  autoload :Win32, "win32/registry"
92
97
  autoload :WIN32OLE, "win32ole"
98
+ autoload :WeakRef, "weakref"
93
99
  autoload :WEBrick, "webrick"
94
100
  autoload :XmlSimple, $knjpath + "autoload/xmlsimple"
95
- autoload :Zip, $knjpath + "autoload/zip.rb"
101
+ autoload :Zip, $knjpath + "autoload/zip"
96
102
  autoload :Zlib, "zlib"
97
103
 
98
104
  if RUBY_PLATFORM == "java"
@@ -237,7 +237,7 @@ class Dictionary
237
237
  end
238
238
 
239
239
  def store( a,b )
240
- @order.push( a ) unless @hash.has_key?( a )
240
+ @order.push( a ) unless @hash.key?( a )
241
241
  @hash.store( a,b )
242
242
  end
243
243
 
@@ -403,7 +403,7 @@ class Dictionary
403
403
  end
404
404
 
405
405
  def has_key?(key)
406
- @hash.has_key?(key)
406
+ @hash.key?(key)
407
407
  end
408
408
 
409
409
  def key?(key)