knjrbfw 0.0.8 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. data/VERSION +1 -1
  2. data/knjrbfw.gemspec +29 -8
  3. data/lib/knj/arrayext.rb +206 -153
  4. data/lib/knj/autoload/backups/ping.rb +2 -2
  5. data/lib/knj/autoload/erubis.rb +3 -3
  6. data/lib/knj/autoload/facets_dictionary.rb +2 -2
  7. data/lib/knj/autoload/gettext.rb +3 -3
  8. data/lib/knj/autoload/gtk2.rb +1 -1
  9. data/lib/knj/autoload/json.rb +14 -0
  10. data/lib/knj/autoload/magick.rb +3 -3
  11. data/lib/knj/autoload/mysql.rb +3 -3
  12. data/lib/knj/autoload/parsedate.rb +1 -1
  13. data/lib/knj/autoload/ping.rb +2 -2
  14. data/lib/knj/autoload/rexml.rb +5 -5
  15. data/lib/knj/autoload/soap.rb +1 -1
  16. data/lib/knj/autoload/sqlite3.rb +3 -3
  17. data/lib/knj/autoload/tmail.rb +3 -3
  18. data/lib/knj/autoload/xmlsimple.rb +3 -3
  19. data/lib/knj/autoload/zip.rb +3 -3
  20. data/lib/knj/autoload.rb +87 -81
  21. data/lib/knj/cmd_gen.rb +19 -19
  22. data/lib/knj/cmd_parser.rb +59 -0
  23. data/lib/knj/compiler.rb +34 -34
  24. data/lib/knj/cpufreq.rb +37 -37
  25. data/lib/knj/csv.rb +20 -0
  26. data/lib/knj/datarow.rb +406 -239
  27. data/lib/knj/datarow_custom.rb +124 -0
  28. data/lib/knj/datestamp.rb +89 -89
  29. data/lib/knj/datet.rb +550 -454
  30. data/lib/knj/db.rb +1 -0
  31. data/lib/knj/degulesider.rb +42 -44
  32. data/lib/knj/erb/erb.rb +5 -5
  33. data/lib/knj/erb/erb_cache_clean.rb +10 -10
  34. data/lib/knj/erb/erb_fcgi.rb +32 -32
  35. data/lib/knj/erb/erb_fcgi_1.9.rb +32 -32
  36. data/lib/knj/erb/erb_fcgi_jruby.rb +2 -2
  37. data/lib/knj/erb/erb_jruby.rb +5 -5
  38. data/lib/knj/erb/include.rb +243 -243
  39. data/lib/knj/errors.rb +19 -18
  40. data/lib/knj/eruby.rb +12 -10
  41. data/lib/knj/event_filemod.rb +31 -31
  42. data/lib/knj/event_handler.rb +73 -67
  43. data/lib/knj/exchangerates.rb +37 -37
  44. data/lib/knj/facebook_connect.rb +95 -18
  45. data/lib/knj/filesystem.rb +6 -6
  46. data/lib/knj/fs/drivers/filesystem.rb +12 -12
  47. data/lib/knj/fs/drivers/ftp.rb +31 -31
  48. data/lib/knj/fs/drivers/ssh.rb +26 -26
  49. data/lib/knj/fs/fs.rb +31 -31
  50. data/lib/knj/gettext_fallback.rb +15 -15
  51. data/lib/knj/gettext_threadded.rb +75 -75
  52. data/lib/knj/google_sitemap.rb +53 -53
  53. data/lib/knj/gtk2.rb +272 -272
  54. data/lib/knj/gtk2_cb.rb +80 -80
  55. data/lib/knj/gtk2_menu.rb +55 -55
  56. data/lib/knj/gtk2_statuswindow.rb +62 -62
  57. data/lib/knj/gtk2_tv.rb +58 -58
  58. data/lib/knj/hash_methods.rb +27 -36
  59. data/lib/knj/http.rb +189 -167
  60. data/lib/knj/http2.rb +259 -53
  61. data/lib/knj/image.rb +2 -2
  62. data/lib/knj/includes/appserver_cli.rb +18 -18
  63. data/lib/knj/includes/require_info.rb +15 -0
  64. data/lib/knj/ip2location.rb +20 -20
  65. data/lib/knj/ironruby-gtk2/button.rb +14 -14
  66. data/lib/knj/ironruby-gtk2/dialog.rb +42 -42
  67. data/lib/knj/ironruby-gtk2/entry.rb +4 -4
  68. data/lib/knj/ironruby-gtk2/gdk_event.rb +1 -1
  69. data/lib/knj/ironruby-gtk2/gdk_eventbutton.rb +11 -11
  70. data/lib/knj/ironruby-gtk2/gdk_pixbuf.rb +9 -9
  71. data/lib/knj/ironruby-gtk2/gladexml.rb +102 -102
  72. data/lib/knj/ironruby-gtk2/glib.rb +13 -13
  73. data/lib/knj/ironruby-gtk2/gtk2.rb +121 -121
  74. data/lib/knj/ironruby-gtk2/gtk_builder.rb +29 -29
  75. data/lib/knj/ironruby-gtk2/gtk_cellrenderertext.rb +3 -3
  76. data/lib/knj/ironruby-gtk2/gtk_combobox.rb +17 -17
  77. data/lib/knj/ironruby-gtk2/gtk_filechooserbutton.rb +3 -3
  78. data/lib/knj/ironruby-gtk2/gtk_liststore.rb +16 -16
  79. data/lib/knj/ironruby-gtk2/gtk_menu.rb +3 -3
  80. data/lib/knj/ironruby-gtk2/gtk_menuitem.rb +2 -2
  81. data/lib/knj/ironruby-gtk2/gtk_statusicon.rb +3 -3
  82. data/lib/knj/ironruby-gtk2/gtk_treeiter.rb +22 -22
  83. data/lib/knj/ironruby-gtk2/gtk_treeselection.rb +11 -11
  84. data/lib/knj/ironruby-gtk2/gtk_treeview.rb +17 -17
  85. data/lib/knj/ironruby-gtk2/gtk_treeviewcolumn.rb +30 -30
  86. data/lib/knj/ironruby-gtk2/iconsize.rb +1 -1
  87. data/lib/knj/ironruby-gtk2/image.rb +13 -13
  88. data/lib/knj/ironruby-gtk2/label.rb +17 -17
  89. data/lib/knj/ironruby-gtk2/stock.rb +2 -2
  90. data/lib/knj/ironruby-gtk2/tests/test_2.rb +14 -14
  91. data/lib/knj/ironruby-gtk2/tests/test_ironruby_window.rb +37 -37
  92. data/lib/knj/ironruby-gtk2/vbox.rb +3 -3
  93. data/lib/knj/ironruby-gtk2/window.rb +18 -18
  94. data/lib/knj/jruby-gtk2/builder/test_builder.rb +11 -11
  95. data/lib/knj/jruby-gtk2/builder.rb +25 -25
  96. data/lib/knj/jruby-gtk2/cellrenderertext.rb +10 -10
  97. data/lib/knj/jruby-gtk2/checkbutton.rb +1 -1
  98. data/lib/knj/jruby-gtk2/combobox.rb +27 -27
  99. data/lib/knj/jruby-gtk2/dialog.rb +40 -40
  100. data/lib/knj/jruby-gtk2/eventbutton.rb +19 -19
  101. data/lib/knj/jruby-gtk2/gladexml.rb +97 -97
  102. data/lib/knj/jruby-gtk2/gtk2.rb +203 -203
  103. data/lib/knj/jruby-gtk2/hbox.rb +8 -8
  104. data/lib/knj/jruby-gtk2/iconsize.rb +3 -3
  105. data/lib/knj/jruby-gtk2/image.rb +8 -8
  106. data/lib/knj/jruby-gtk2/liststore.rb +54 -54
  107. data/lib/knj/jruby-gtk2/menu.rb +35 -35
  108. data/lib/knj/jruby-gtk2/progressbar.rb +10 -10
  109. data/lib/knj/jruby-gtk2/statusicon.rb +3 -3
  110. data/lib/knj/jruby-gtk2/stock.rb +6 -6
  111. data/lib/knj/jruby-gtk2/tests/test_glade_window.rb +36 -36
  112. data/lib/knj/jruby-gtk2/tests/test_normal_window.rb +3 -3
  113. data/lib/knj/jruby-gtk2/tests/test_trayicon.rb +2 -2
  114. data/lib/knj/jruby-gtk2/treeview.rb +88 -88
  115. data/lib/knj/jruby-gtk2/vbox.rb +10 -10
  116. data/lib/knj/jruby-gtk2/window.rb +7 -7
  117. data/lib/knj/jruby_compiler.rb +12 -12
  118. data/lib/knj/knj.rb +12 -11
  119. data/lib/knj/knj_controller.rb +13 -8
  120. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql.rb +499 -316
  121. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql_columns.rb +127 -125
  122. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql_indexes.rb +43 -25
  123. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql_tables.rb +316 -241
  124. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3.rb +12 -0
  125. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_columns.rb +146 -146
  126. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_indexes.rb +24 -24
  127. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_tables.rb +283 -283
  128. data/lib/knj/knjdb/libknjdb.rb +96 -52
  129. data/lib/knj/knjdb/libknjdb_java_sqlite3.rb +78 -78
  130. data/lib/knj/knjdb/libknjdb_row.rb +147 -147
  131. data/lib/knj/knjdb/libknjdb_sqlite3_ironruby.rb +61 -61
  132. data/lib/knj/knjdb/revision.rb +262 -0
  133. data/lib/knj/libqt.rb +69 -69
  134. data/lib/knj/libqt_window.rb +8 -8
  135. data/lib/knj/locales.rb +62 -52
  136. data/lib/knj/maemo/fremantle-calendar/fremantle-calendar.rb +54 -54
  137. data/lib/knj/mail.rb +73 -73
  138. data/lib/knj/mailobj.rb +82 -80
  139. data/lib/knj/mount.rb +113 -113
  140. data/lib/knj/notify.rb +11 -11
  141. data/lib/knj/nvidia_settings.rb +43 -43
  142. data/lib/knj/objects/objects_sqlhelper.rb +474 -0
  143. data/lib/knj/objects.rb +569 -793
  144. data/lib/knj/opts.rb +38 -38
  145. data/lib/knj/os.rb +176 -158
  146. data/lib/knj/php.rb +853 -683
  147. data/lib/knj/php_parser/arguments.rb +3 -3
  148. data/lib/knj/php_parser/functions.rb +95 -95
  149. data/lib/knj/php_parser/php_parser.rb +16 -16
  150. data/lib/knj/php_parser/tests/test.rb +6 -6
  151. data/lib/knj/php_parser/tests/test_function_run.rb +6 -6
  152. data/lib/knj/power_manager.rb +29 -29
  153. data/lib/knj/process.rb +457 -0
  154. data/lib/knj/process_meta.rb +400 -0
  155. data/lib/knj/rand.rb +8 -8
  156. data/lib/knj/retry.rb +69 -69
  157. data/lib/knj/rhodes/delegate.rb +414 -0
  158. data/lib/knj/rhodes/rhodes.rb +114 -40
  159. data/lib/knj/rhodes/weakref.rb +80 -0
  160. data/lib/knj/rsvgbin.rb +18 -18
  161. data/lib/knj/scripts/degulesider.rb +2 -2
  162. data/lib/knj/scripts/filesearch.rb +35 -35
  163. data/lib/knj/scripts/ip2location.rb +2 -2
  164. data/lib/knj/scripts/keepalive.rb +2 -2
  165. data/lib/knj/scripts/php_to_rb_helper.rb +376 -0
  166. data/lib/knj/scripts/process_meta_exec.rb +104 -0
  167. data/lib/knj/scripts/svn_merge.rb +21 -21
  168. data/lib/knj/scripts/upgrade_knjrbfw_checker.rb +26 -26
  169. data/lib/knj/sms.rb +52 -52
  170. data/lib/knj/sshrobot/sshrobot.rb +90 -88
  171. data/lib/knj/sshrobot.rb +1 -0
  172. data/lib/knj/strings.rb +186 -74
  173. data/lib/knj/sysuser.rb +25 -25
  174. data/lib/knj/table_writer.rb +97 -0
  175. data/lib/knj/tests/compiler/compiler_test.rb +2 -2
  176. data/lib/knj/tests/test_degulesider.rb +1 -1
  177. data/lib/knj/tests/test_http2_proxy.rb +26 -0
  178. data/lib/knj/tests/test_mount.rb +9 -9
  179. data/lib/knj/tests/test_retry.rb +17 -17
  180. data/lib/knj/thread.rb +23 -24
  181. data/lib/knj/thread2.rb +45 -45
  182. data/lib/knj/threadhandler.rb +135 -102
  183. data/lib/knj/threadpool.rb +195 -145
  184. data/lib/knj/translations.rb +128 -119
  185. data/lib/knj/unix_proc.rb +80 -80
  186. data/lib/knj/web.rb +947 -881
  187. data/lib/knj/webscripts/image.rhtml +142 -67
  188. data/lib/knj/win.rb +2 -2
  189. data/lib/knj/win_registry.rb +58 -58
  190. data/lib/knj/win_tightvnc.rb +125 -125
  191. data/lib/knj/wref.rb +104 -0
  192. data/lib/knj/x11vnc.rb +46 -46
  193. data/lib/knj/youtube.rb +33 -36
  194. data/lib/knjrbfw.rb +1 -0
  195. data/spec/cmd_parser_spec.rb +25 -0
  196. data/spec/db_spec.rb +40 -0
  197. data/spec/db_spec_encoding_test_file.txt +1 -0
  198. data/spec/http2_spec.rb +37 -0
  199. data/spec/knjrbfw_spec.rb +17 -15
  200. data/spec/php_spec.rb +69 -0
  201. data/spec/process_meta_spec.rb +150 -0
  202. data/spec/process_spec.rb +107 -0
  203. data/spec/strings_spec.rb +21 -0
  204. data/spec/web_spec.rb +16 -0
  205. metadata +42 -21
  206. data/lib/knj/autoload/json_autoload.rb +0 -7
  207. data/lib/knj/autoload/twitter.rb +0 -2
  208. data/lib/knj/ext/webrick.rb +0 -31
  209. data/lib/knj/jruby-gtk2/gtk-4.0.jar +0 -0
  210. data/lib/knj/knjdb/mysql-connector-java-5.1.13-bin.jar +0 -0
  211. data/lib/knj/knjdb/sqlitejdbc-v056.jar +0 -0
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.8
1
+ 0.0.9
data/knjrbfw.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{knjrbfw}
8
- s.version = "0.0.8"
8
+ s.version = "0.0.9"
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-11-15}
12
+ s.date = %q{2012-02-21}
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 = [
@@ -40,7 +40,7 @@ Gem::Specification.new do |s|
40
40
  "lib/knj/autoload/gd2.rb",
41
41
  "lib/knj/autoload/gettext.rb",
42
42
  "lib/knj/autoload/gtk2.rb",
43
- "lib/knj/autoload/json_autoload.rb",
43
+ "lib/knj/autoload/json.rb",
44
44
  "lib/knj/autoload/magick.rb",
45
45
  "lib/knj/autoload/mysql.rb",
46
46
  "lib/knj/autoload/parsedate.rb",
@@ -49,15 +49,18 @@ Gem::Specification.new do |s|
49
49
  "lib/knj/autoload/soap.rb",
50
50
  "lib/knj/autoload/sqlite3.rb",
51
51
  "lib/knj/autoload/tmail.rb",
52
- "lib/knj/autoload/twitter.rb",
53
52
  "lib/knj/autoload/xmlsimple.rb",
54
53
  "lib/knj/autoload/zip.rb",
55
54
  "lib/knj/cmd_gen.rb",
55
+ "lib/knj/cmd_parser.rb",
56
56
  "lib/knj/compiler.rb",
57
57
  "lib/knj/cpufreq.rb",
58
+ "lib/knj/csv.rb",
58
59
  "lib/knj/datarow.rb",
60
+ "lib/knj/datarow_custom.rb",
59
61
  "lib/knj/datestamp.rb",
60
62
  "lib/knj/datet.rb",
63
+ "lib/knj/db.rb",
61
64
  "lib/knj/degulesider.rb",
62
65
  "lib/knj/erb/apache_knjerb.conf",
63
66
  "lib/knj/erb/cache/README",
@@ -74,7 +77,6 @@ Gem::Specification.new do |s|
74
77
  "lib/knj/event_filemod.rb",
75
78
  "lib/knj/event_handler.rb",
76
79
  "lib/knj/exchangerates.rb",
77
- "lib/knj/ext/webrick.rb",
78
80
  "lib/knj/facebook_connect.rb",
79
81
  "lib/knj/filesystem.rb",
80
82
  "lib/knj/fs/drivers/filesystem.rb",
@@ -94,6 +96,7 @@ Gem::Specification.new do |s|
94
96
  "lib/knj/http2.rb",
95
97
  "lib/knj/image.rb",
96
98
  "lib/knj/includes/appserver_cli.rb",
99
+ "lib/knj/includes/require_info.rb",
97
100
  "lib/knj/ip2location.rb",
98
101
  "lib/knj/ironruby-gtk2/button.rb",
99
102
  "lib/knj/ironruby-gtk2/dialog.rb",
@@ -135,7 +138,6 @@ Gem::Specification.new do |s|
135
138
  "lib/knj/jruby-gtk2/dialog.rb",
136
139
  "lib/knj/jruby-gtk2/eventbutton.rb",
137
140
  "lib/knj/jruby-gtk2/gladexml.rb",
138
- "lib/knj/jruby-gtk2/gtk-4.0.jar",
139
141
  "lib/knj/jruby-gtk2/gtk2.rb",
140
142
  "lib/knj/jruby-gtk2/hbox.rb",
141
143
  "lib/knj/jruby-gtk2/iconsize.rb",
@@ -169,8 +171,7 @@ Gem::Specification.new do |s|
169
171
  "lib/knj/knjdb/libknjdb_java_sqlite3.rb",
170
172
  "lib/knj/knjdb/libknjdb_row.rb",
171
173
  "lib/knj/knjdb/libknjdb_sqlite3_ironruby.rb",
172
- "lib/knj/knjdb/mysql-connector-java-5.1.13-bin.jar",
173
- "lib/knj/knjdb/sqlitejdbc-v056.jar",
174
+ "lib/knj/knjdb/revision.rb",
174
175
  "lib/knj/libqt.rb",
175
176
  "lib/knj/libqt_window.rb",
176
177
  "lib/knj/locale_strings.rb",
@@ -183,6 +184,7 @@ Gem::Specification.new do |s|
183
184
  "lib/knj/notify.rb",
184
185
  "lib/knj/nvidia_settings.rb",
185
186
  "lib/knj/objects.rb",
187
+ "lib/knj/objects/objects_sqlhelper.rb",
186
188
  "lib/knj/opts.rb",
187
189
  "lib/knj/os.rb",
188
190
  "lib/knj/php.rb",
@@ -193,26 +195,35 @@ Gem::Specification.new do |s|
193
195
  "lib/knj/php_parser/tests/test_function.php",
194
196
  "lib/knj/php_parser/tests/test_function_run.rb",
195
197
  "lib/knj/power_manager.rb",
198
+ "lib/knj/process.rb",
199
+ "lib/knj/process_meta.rb",
196
200
  "lib/knj/rand.rb",
197
201
  "lib/knj/retry.rb",
202
+ "lib/knj/rhodes/delegate.rb",
198
203
  "lib/knj/rhodes/mutex.rb",
199
204
  "lib/knj/rhodes/rhodes.js",
200
205
  "lib/knj/rhodes/rhodes.rb",
206
+ "lib/knj/rhodes/weakref.rb",
201
207
  "lib/knj/rsvgbin.rb",
202
208
  "lib/knj/scripts/degulesider.rb",
203
209
  "lib/knj/scripts/filesearch.rb",
204
210
  "lib/knj/scripts/ip2location.rb",
205
211
  "lib/knj/scripts/keepalive.rb",
212
+ "lib/knj/scripts/php_to_rb_helper.rb",
213
+ "lib/knj/scripts/process_meta_exec.rb",
206
214
  "lib/knj/scripts/svn_merge.rb",
207
215
  "lib/knj/scripts/upgrade_knjrbfw_checker.rb",
208
216
  "lib/knj/sms.rb",
217
+ "lib/knj/sshrobot.rb",
209
218
  "lib/knj/sshrobot/sshrobot.rb",
210
219
  "lib/knj/strings.rb",
211
220
  "lib/knj/sysuser.rb",
221
+ "lib/knj/table_writer.rb",
212
222
  "lib/knj/tests/compiler/compiler_test.rb",
213
223
  "lib/knj/tests/compiler/compiler_test_file.rb",
214
224
  "lib/knj/tests/test_degulesider.rb",
215
225
  "lib/knj/tests/test_http2.rb",
226
+ "lib/knj/tests/test_http2_proxy.rb",
216
227
  "lib/knj/tests/test_mount.rb",
217
228
  "lib/knj/tests/test_retry.rb",
218
229
  "lib/knj/thread.rb",
@@ -226,12 +237,22 @@ Gem::Specification.new do |s|
226
237
  "lib/knj/win.rb",
227
238
  "lib/knj/win_registry.rb",
228
239
  "lib/knj/win_tightvnc.rb",
240
+ "lib/knj/wref.rb",
229
241
  "lib/knj/x11vnc.rb",
230
242
  "lib/knj/youtube.rb",
231
243
  "lib/knjrbfw.rb",
232
244
  "spec/amixer_spec.rb",
245
+ "spec/cmd_parser_spec.rb",
246
+ "spec/db_spec.rb",
247
+ "spec/db_spec_encoding_test_file.txt",
248
+ "spec/http2_spec.rb",
233
249
  "spec/knjrbfw_spec.rb",
250
+ "spec/php_spec.rb",
251
+ "spec/process_meta_spec.rb",
252
+ "spec/process_spec.rb",
234
253
  "spec/spec_helper.rb",
254
+ "spec/strings_spec.rb",
255
+ "spec/web_spec.rb",
235
256
  "testfiles/image.jpg"
236
257
  ]
237
258
  s.homepage = %q{http://github.com/kaspernj/knjrbfw}
data/lib/knj/arrayext.rb CHANGED
@@ -1,166 +1,219 @@
1
1
  module Knj::ArrayExt
2
- def self.join(args = {}, key = nil, sep = nil)
3
- if args.is_a?(Array) and sep
4
- args = {
5
- :arr => args,
6
- :sep => sep,
7
- :key => key
8
- }
9
- end
10
-
11
- raise "No seperator given." if !args[:sep]
12
-
13
- str = ""
14
- first = true
15
-
16
- args[:arr].each do |value|
17
- if first
18
- first = false
19
- else
20
- str += args[:sep]
21
- end
22
-
23
- value = value[key] if args[:key]
24
- value = value if !args[:key]
25
-
26
- if args[:callback]
2
+ def self.join(args = {}, key = nil, sep = nil)
3
+ if args.is_a?(Array) and sep
4
+ args = {
5
+ :arr => args,
6
+ :sep => sep,
7
+ :key => key
8
+ }
9
+ end
10
+
11
+ raise "No seperator given." if !args[:sep]
12
+
13
+ str = ""
14
+ first = true
15
+
16
+ Knj::Php.foreach(args[:arr]) do |key, value|
17
+ if first
18
+ first = false
19
+ else
20
+ str << args[:sep]
21
+ end
22
+
23
+ if args[:key]
24
+ value = key
25
+ else
26
+ value = value
27
+ end
28
+
29
+ if args[:callback]
27
30
  if args[:callback].is_a?(Proc) or args[:callback].is_a?(Method)
28
31
  value = args[:callback].call(value)
29
32
  else
30
33
  value = Knj::Php.call_user_func(args[:callback], value) if args[:callback]
31
34
  end
32
35
  end
33
-
34
- raise "Callback returned nothing." if args[:callback] and !value
35
-
36
- str += args[:surr] if args[:surr]
37
- str += value.to_s
38
- str += args[:surr] if args[:surr]
39
- end
40
-
41
- return str
42
- end
43
-
44
- def self.hash(arr)
45
- ret = {}
46
- arr.each do |item|
47
- ret[ret.length.to_s] = item
48
- end
49
-
50
- return ret
51
- end
52
-
53
- #Converts all keys in the given hash to symbols.
54
- def self.hash_sym(hash)
55
- raise "Invalid argument: #{hash.class.name}" if !hash or !hash.respond_to?(:each)
56
-
57
- adds = {}
58
- hash.each do |key, value|
59
- if !key.is_a?(Symbol)
60
- adds[key.to_sym] = value
61
- hash.delete(key)
62
- end
63
- end
64
-
65
- adds.each do |key, value|
66
- hash[key] = value
67
- end
68
-
69
- return hash
70
- end
71
-
72
- def self.dict(arr)
73
- ret = Dictionary.new
74
- arr.each do |item|
75
- ret[ret.length.to_s] = item
76
- end
77
-
78
- return ret
79
- end
80
-
81
- #Returns a hash based on the keys and values of a hash.
82
- def self.hash_md5(hash)
83
- combined_val = ""
84
- hash.each do |key, val|
85
- if combined_val.length > 0
86
- combined_val += ";"
87
- end
88
-
89
- combined_val += "#{key}:#{val}"
90
- end
91
-
92
- return Digest::MD5.hexdigest(combined_val)
93
- end
94
-
95
- #Compares the keys and values of two hashes and returns true if they are different.
96
- def self.hash_diff?(h1, h2, args = {})
97
- if !args.key?("h1_to_h2") or args["h1_to_h2"]
98
- h1.each do |key, val|
99
- return true if !h2.key?(key)
100
-
101
- hash_val = h2[key].to_s
102
- hash_val = hash_val.force_encoding("UTF-8") if hash_val.respond_to?(:force_encoding)
103
-
104
- val = val.to_s
105
- val = val.force_encoding("UTF-8") if val.respond_to?(:force_encoding)
106
-
107
- return true if hash_val != val
108
- end
109
- end
110
-
111
- if !args.key?("h2_to_h1") or args["h2_to_h1"]
112
- h2.each do |key, val|
113
- return true if !h1.key?(key)
114
-
115
- hash_val = h1[key].to_s
116
- hash_val = hash_val.force_encoding("UTF-8") if hash_val.respond_to?(:force_encoding)
117
-
118
- val = val.to_s
119
- val = val.force_encoding("UTF-8") if val.respond_to?(:force_encoding)
120
-
121
- return true if hash_val != val
122
- end
123
- end
124
-
125
- return false
126
- end
127
-
128
- #Returns a hash based on the string-keys in a hash.
129
- def self.hash_keys_hash(hash)
130
- hashes = []
131
- hash.keys.sort.each do |key|
132
- hashes << Digest::MD5.hexdigest(key.to_s)
133
- end
134
-
135
- return Digest::MD5.hexdigest(hashes.join("_"))
136
- end
137
-
138
- #Returns hash based on the string-values in a hash.
139
- def self.hash_values_hash(hash)
140
- hashes = []
141
- hash.keys.sort.each do |key|
142
- hashes << Digest::MD5.hexdigest(hash[key].to_s)
143
- end
144
-
145
- return Digest::MD5.hexdigest(hashes.join("_"))
146
- end
147
-
148
- #Returns a hash based on the string-values of an array.
149
- def self.array_hash(arr)
150
- hashes = []
151
- arr.each do |ele|
152
- hashes << Digest::MD5.hexdigest(ele.to_s)
153
- end
154
-
155
- return Digest::MD5.hexdigest(hashes.join("_"))
156
- end
157
-
158
- #Validates a hash of data.
159
- def self.validate_hash(h, args)
36
+
37
+ raise "Callback returned nothing." if args[:callback] and !value
38
+
39
+ str << args[:surr] if args[:surr]
40
+ str << value.to_s
41
+ str << args[:surr] if args[:surr]
42
+ end
43
+
44
+ return str
45
+ end
46
+
47
+ #Converts an array to a hash with the index a string-numbers.
48
+ def self.array_to_hash(arr)
49
+ ret = {}
50
+ arr.each do |item|
51
+ ret[ret.length.to_s] = item
52
+ end
53
+
54
+ return ret
55
+ end
56
+
57
+ #Returns true if all keys in a hash are numeric objects.
58
+ def self.hash_numeric_keys?(hash)
59
+ all_num = true
60
+ hash.each do |key, val|
61
+ if !Knj::Php.is_numeric(key)
62
+ all_num = false
63
+ break
64
+ end
65
+ end
66
+
67
+ return all_num
68
+ end
69
+
70
+ #Converts all keys in the given hash to symbols.
71
+ def self.hash_sym(hash_given)
72
+ raise "Invalid argument-class: '#{hash_given.class.name}'." if !hash_given or !hash_given.respond_to?(:each)
73
+
74
+ adds = {}
75
+ hash_given.each do |key, value|
76
+ if !key.is_a?(Symbol)
77
+ adds[key.to_sym] = value
78
+ hash_given.delete(key)
79
+ end
80
+ end
81
+
82
+ adds.each do |key, value|
83
+ hash_given[key] = value
84
+ end
85
+
86
+ return hash_given
87
+ end
88
+
89
+ def self.dict(arr)
90
+ ret = Dictionary.new
91
+ arr.each do |item|
92
+ ret[ret.length.to_s] = item
93
+ end
94
+
95
+ return ret
96
+ end
97
+
98
+ #Returns a hash based on the keys and values of a hash.
99
+ def self.hash_md5(hash)
100
+ combined_val = ""
101
+ hash.each do |key, val|
102
+ if combined_val.length > 0
103
+ combined_val << ";"
104
+ end
105
+
106
+ combined_val << "#{key}:#{val}"
107
+ end
108
+
109
+ return Digest::MD5.hexdigest(combined_val)
110
+ end
111
+
112
+ #Compares the keys and values of two hashes and returns true if they are different.
113
+ def self.hash_diff?(h1, h2, args = {})
114
+ if !args.key?("h1_to_h2") or args["h1_to_h2"]
115
+ h1.each do |key, val|
116
+ return true if !h2.key?(key)
117
+
118
+ hash_val = h2[key].to_s
119
+ hash_val = hash_val.force_encoding("UTF-8") if hash_val.respond_to?(:force_encoding)
120
+
121
+ val = val.to_s
122
+ val = val.force_encoding("UTF-8") if val.respond_to?(:force_encoding)
123
+
124
+ return true if hash_val != val
125
+ end
126
+ end
127
+
128
+ if !args.key?("h2_to_h1") or args["h2_to_h1"]
129
+ h2.each do |key, val|
130
+ return true if !h1.key?(key)
131
+
132
+ hash_val = h1[key].to_s
133
+ hash_val = hash_val.force_encoding("UTF-8") if hash_val.respond_to?(:force_encoding)
134
+
135
+ val = val.to_s
136
+ val = val.force_encoding("UTF-8") if val.respond_to?(:force_encoding)
137
+
138
+ return true if hash_val != val
139
+ end
140
+ end
141
+
142
+ return false
143
+ end
144
+
145
+ #Returns a hash based on the string-keys in a hash.
146
+ def self.hash_keys_hash(hash)
147
+ hashes = []
148
+ hash.keys.sort.each do |key|
149
+ hashes << Digest::MD5.hexdigest(key.to_s)
150
+ end
151
+
152
+ return Digest::MD5.hexdigest(hashes.join("_"))
153
+ end
154
+
155
+ #Returns hash based on the string-values in a hash.
156
+ def self.hash_values_hash(hash)
157
+ hashes = []
158
+ hash.keys.sort.each do |key|
159
+ hashes << Digest::MD5.hexdigest(hash[key].to_s)
160
+ end
161
+
162
+ return Digest::MD5.hexdigest(hashes.join("_"))
163
+ end
164
+
165
+ #Returns a hash based on the string-values of an array.
166
+ def self.array_hash(arr)
167
+ hashes = []
168
+ arr.each do |ele|
169
+ hashes << Digest::MD5.hexdigest(ele.to_s)
170
+ end
171
+
172
+ return Digest::MD5.hexdigest(hashes.join("_"))
173
+ end
174
+
175
+ #Validates a hash of data.
176
+ def self.validate_hash(h, args)
160
177
  h.each do |key, val|
161
178
  if args.key?(:not_empty) and args[:not_empty].index(key) != nil and val.to_s.strip.length <= 0
162
179
  raise Knj::Errors::InvalidData, sprintf(args[:not_empty_error], key)
163
180
  end
164
181
  end
165
- end
182
+ end
183
+
184
+ #Sorts the hash without being a retard...
185
+ def self.hash_sort(hash, &block)
186
+ sorted = hash.sort(&block)
187
+
188
+ ret = {}
189
+ sorted.each do |ele|
190
+ ret[ele[0]] = ele[1]
191
+ end
192
+
193
+ return ret
194
+ end
195
+
196
+ #Forces all strings in an array or a hash to be encoded to a specific encoding recursively.
197
+ def self.clone_encode(hash, encoding, args = {})
198
+ return hash if !hash
199
+
200
+ hash = hash.clone
201
+ Knj::Php.foreach(hash) do |key, val|
202
+ if val.is_a?(String)
203
+ begin
204
+ hash[key] = Knj::Php.utf8_encode(encoding)
205
+ rescue Encoding::UndefinedConversionError => e
206
+ if args["ignore_encoding_errors"]
207
+ next
208
+ else
209
+ raise e
210
+ end
211
+ end
212
+ elsif val.is_a?(Array) or val.is_a?(Hash)
213
+ hash[key] = Knj::ArrayExt.clone_encode(val, encoding, args)
214
+ end
215
+ end
216
+
217
+ return hash
218
+ end
166
219
  end
@@ -44,8 +44,8 @@ module Ping
44
44
  def pingecho(host, timeout=5, service="echo")
45
45
  begin
46
46
  timeout(timeout) do
47
- s = TCPSocket.new(host, service)
48
- s.close
47
+ s = TCPSocket.new(host, service)
48
+ s.close
49
49
  end
50
50
  rescue Errno::ECONNREFUSED
51
51
  return true
@@ -1,8 +1,8 @@
1
1
  module Erubis; end #bugfix
2
2
 
3
3
  begin
4
- require "erubis"
4
+ require "erubis"
5
5
  rescue LoadError
6
- require "rubygems"
7
- require "erubis"
6
+ require "rubygems"
7
+ require "erubis"
8
8
  end
@@ -1,7 +1,7 @@
1
1
  require "rubygems"
2
2
 
3
3
  begin
4
- require "facets/dictionary"
4
+ require "facets/dictionary"
5
5
  rescue LoadError
6
- require File.dirname(__FILE__) + "/backups/facets_dictionary"
6
+ require File.dirname(__FILE__) + "/backups/facets_dictionary"
7
7
  end
@@ -2,8 +2,8 @@
2
2
  module GetText; end
3
3
 
4
4
  begin
5
- require "gettext"
5
+ require "gettext"
6
6
  rescue LoadError
7
- require "rubygems"
8
- require "gettext"
7
+ require "rubygems"
8
+ require "gettext"
9
9
  end
@@ -1,5 +1,5 @@
1
1
  require "gtk2"
2
2
 
3
3
  module Gtk
4
- autoload :MozEmbed, "gtkmozembed"
4
+ autoload :MozEmbed, "gtkmozembed"
5
5
  end
@@ -0,0 +1,14 @@
1
+ require "rubygems"
2
+
3
+ begin
4
+ if RUBY_ENGINE == "jruby"
5
+ require "json/pure" #normal json has utf-8 encoding problems - knj.
6
+ else
7
+ require "json/pure"
8
+
9
+ #deactivated because of problems with utf-8 encoding.
10
+ #require "json/ext"
11
+ end
12
+ rescue LoadError
13
+ require "json/pure"
14
+ end
@@ -1,6 +1,6 @@
1
1
  begin
2
- require "RMagick"
2
+ require "RMagick"
3
3
  rescue LoadError
4
- require "rubygems"
5
- require "RMagick"
4
+ require "rubygems"
5
+ require "RMagick"
6
6
  end
@@ -1,6 +1,6 @@
1
1
  begin
2
- require "mysql"
2
+ require "mysql"
3
3
  rescue LoadError
4
- require "rubygems"
5
- require "mysql"
4
+ require "rubygems"
5
+ require "mysql"
6
6
  end
@@ -1 +1 @@
1
- require File.dirname(__FILE__) + "/backups/parsedate.rb"
1
+ require "#{$knjpath}autoload/backups/parsedate.rb"
@@ -44,8 +44,8 @@ module Ping
44
44
  def pingecho(host, timeout=5, service="echo")
45
45
  begin
46
46
  timeout(timeout) do
47
- s = TCPSocket.new(host, service)
48
- s.close
47
+ s = TCPSocket.new(host, service)
48
+ s.close
49
49
  end
50
50
  rescue Errno::ECONNREFUSED
51
51
  return true
@@ -1,12 +1,12 @@
1
1
  require "rexml/rexml"
2
2
 
3
3
  module REXML
4
- autoload :Document, "rexml/document"
5
- autoload :ParseException, "rexml/parseexception"
4
+ autoload :Document, "rexml/document"
5
+ autoload :ParseException, "rexml/parseexception"
6
6
  end
7
7
 
8
8
  module REXML::Formatters
9
- autoload :Default, "rexml/formatters/default"
10
- autoload :Pretty, "rexml/formatters/pretty"
11
- autoload :Transitive, "rexml/formatters/transitive"
9
+ autoload :Default, "rexml/formatters/default"
10
+ autoload :Pretty, "rexml/formatters/pretty"
11
+ autoload :Transitive, "rexml/formatters/transitive"
12
12
  end
@@ -1,3 +1,3 @@
1
1
  module SOAP
2
- autoload :WSDLDriverFactory, "soap/wsdlDriver"
2
+ autoload :WSDLDriverFactory, "soap/wsdlDriver"
3
3
  end
@@ -1,6 +1,6 @@
1
1
  begin
2
- require "sqlite3"
2
+ require "sqlite3"
3
3
  rescue LoadError
4
- require "rubygems"
5
- require "sqlite3"
4
+ require "rubygems"
5
+ require "sqlite3"
6
6
  end