knjrbfw 0.0.3

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 (208) hide show
  1. data/.document +5 -0
  2. data/.rspec +1 -0
  3. data/Gemfile +14 -0
  4. data/Gemfile.lock +32 -0
  5. data/LICENSE.txt +20 -0
  6. data/README.rdoc +19 -0
  7. data/Rakefile +49 -0
  8. data/VERSION +1 -0
  9. data/lib/knj/.gitignore +1 -0
  10. data/lib/knj/arrayext.rb +157 -0
  11. data/lib/knj/autoload/activesupport.rb +2 -0
  12. data/lib/knj/autoload/backups/facets_dictionary.rb +430 -0
  13. data/lib/knj/autoload/backups/parsedate.rb +53 -0
  14. data/lib/knj/autoload/backups/ping.rb +64 -0
  15. data/lib/knj/autoload/cinch.rb +2 -0
  16. data/lib/knj/autoload/erubis.rb +6 -0
  17. data/lib/knj/autoload/facebooker.rb +3 -0
  18. data/lib/knj/autoload/facets_dictionary.rb +7 -0
  19. data/lib/knj/autoload/gd2.rb +2 -0
  20. data/lib/knj/autoload/gettext.rb +9 -0
  21. data/lib/knj/autoload/gtk2.rb +5 -0
  22. data/lib/knj/autoload/json_autoload.rb +7 -0
  23. data/lib/knj/autoload/magick.rb +6 -0
  24. data/lib/knj/autoload/mysql.rb +6 -0
  25. data/lib/knj/autoload/parsedate.rb +1 -0
  26. data/lib/knj/autoload/ping.rb +64 -0
  27. data/lib/knj/autoload/rexml.rb +12 -0
  28. data/lib/knj/autoload/soap.rb +3 -0
  29. data/lib/knj/autoload/sqlite3.rb +6 -0
  30. data/lib/knj/autoload/tmail.rb +6 -0
  31. data/lib/knj/autoload/twitter.rb +2 -0
  32. data/lib/knj/autoload/xmlsimple.rb +6 -0
  33. data/lib/knj/autoload/zip.rb +6 -0
  34. data/lib/knj/autoload.rb +136 -0
  35. data/lib/knj/compiler.rb +53 -0
  36. data/lib/knj/cpufreq.rb +40 -0
  37. data/lib/knj/datarow.rb +256 -0
  38. data/lib/knj/datestamp.rb +91 -0
  39. data/lib/knj/datet.rb +448 -0
  40. data/lib/knj/degulesider.rb +46 -0
  41. data/lib/knj/erb/apache_knjerb.conf +8 -0
  42. data/lib/knj/erb/cache/README +1 -0
  43. data/lib/knj/erb/erb.rb +21 -0
  44. data/lib/knj/erb/erb_1.9.rb +13 -0
  45. data/lib/knj/erb/erb_cache_clean.rb +20 -0
  46. data/lib/knj/erb/erb_fcgi.rb +44 -0
  47. data/lib/knj/erb/erb_fcgi_1.9.rb +44 -0
  48. data/lib/knj/erb/erb_fcgi_jruby.rb +7 -0
  49. data/lib/knj/erb/erb_jruby.rb +22 -0
  50. data/lib/knj/erb/include.rb +248 -0
  51. data/lib/knj/errors.rb +19 -0
  52. data/lib/knj/eruby.rb +224 -0
  53. data/lib/knj/event_filemod.rb +53 -0
  54. data/lib/knj/event_handler.rb +69 -0
  55. data/lib/knj/exchangerates.rb +39 -0
  56. data/lib/knj/ext/webrick.rb +31 -0
  57. data/lib/knj/filesystem.rb +8 -0
  58. data/lib/knj/fs/drivers/filesystem.rb +14 -0
  59. data/lib/knj/fs/drivers/ftp.rb +33 -0
  60. data/lib/knj/fs/drivers/ssh.rb +28 -0
  61. data/lib/knj/fs/fs.rb +36 -0
  62. data/lib/knj/gettext_fallback.rb +17 -0
  63. data/lib/knj/gettext_threadded.rb +77 -0
  64. data/lib/knj/google_sitemap.rb +59 -0
  65. data/lib/knj/gtk2.rb +277 -0
  66. data/lib/knj/gtk2_cb.rb +85 -0
  67. data/lib/knj/gtk2_menu.rb +57 -0
  68. data/lib/knj/gtk2_statuswindow.rb +64 -0
  69. data/lib/knj/gtk2_tv.rb +63 -0
  70. data/lib/knj/hash_methods.rb +37 -0
  71. data/lib/knj/http.rb +190 -0
  72. data/lib/knj/includes/appserver_cli.rb +39 -0
  73. data/lib/knj/ip2location.rb +22 -0
  74. data/lib/knj/ironruby-gtk2/button.rb +19 -0
  75. data/lib/knj/ironruby-gtk2/dialog.rb +44 -0
  76. data/lib/knj/ironruby-gtk2/entry.rb +9 -0
  77. data/lib/knj/ironruby-gtk2/gdk_event.rb +3 -0
  78. data/lib/knj/ironruby-gtk2/gdk_eventbutton.rb +13 -0
  79. data/lib/knj/ironruby-gtk2/gdk_pixbuf.rb +11 -0
  80. data/lib/knj/ironruby-gtk2/gladexml.rb +104 -0
  81. data/lib/knj/ironruby-gtk2/glib.rb +15 -0
  82. data/lib/knj/ironruby-gtk2/gtk2.rb +148 -0
  83. data/lib/knj/ironruby-gtk2/gtk_builder.rb +31 -0
  84. data/lib/knj/ironruby-gtk2/gtk_cellrenderertext.rb +5 -0
  85. data/lib/knj/ironruby-gtk2/gtk_combobox.rb +19 -0
  86. data/lib/knj/ironruby-gtk2/gtk_filechooserbutton.rb +5 -0
  87. data/lib/knj/ironruby-gtk2/gtk_liststore.rb +18 -0
  88. data/lib/knj/ironruby-gtk2/gtk_menu.rb +5 -0
  89. data/lib/knj/ironruby-gtk2/gtk_menuitem.rb +7 -0
  90. data/lib/knj/ironruby-gtk2/gtk_statusicon.rb +8 -0
  91. data/lib/knj/ironruby-gtk2/gtk_treeiter.rb +24 -0
  92. data/lib/knj/ironruby-gtk2/gtk_treeselection.rb +16 -0
  93. data/lib/knj/ironruby-gtk2/gtk_treeview.rb +19 -0
  94. data/lib/knj/ironruby-gtk2/gtk_treeviewcolumn.rb +32 -0
  95. data/lib/knj/ironruby-gtk2/iconsize.rb +3 -0
  96. data/lib/knj/ironruby-gtk2/image.rb +15 -0
  97. data/lib/knj/ironruby-gtk2/label.rb +19 -0
  98. data/lib/knj/ironruby-gtk2/stock.rb +4 -0
  99. data/lib/knj/ironruby-gtk2/tests/test.glade +15 -0
  100. data/lib/knj/ironruby-gtk2/tests/test_2.rb +22 -0
  101. data/lib/knj/ironruby-gtk2/tests/test_ironruby_window.rb +47 -0
  102. data/lib/knj/ironruby-gtk2/vbox.rb +5 -0
  103. data/lib/knj/ironruby-gtk2/window.rb +23 -0
  104. data/lib/knj/jruby-gtk2/builder/test_builder.glade +43 -0
  105. data/lib/knj/jruby-gtk2/builder/test_builder.rb +19 -0
  106. data/lib/knj/jruby-gtk2/builder/test_builder.ui +43 -0
  107. data/lib/knj/jruby-gtk2/builder.rb +27 -0
  108. data/lib/knj/jruby-gtk2/cellrenderertext.rb +12 -0
  109. data/lib/knj/jruby-gtk2/checkbutton.rb +3 -0
  110. data/lib/knj/jruby-gtk2/combobox.rb +29 -0
  111. data/lib/knj/jruby-gtk2/dialog.rb +44 -0
  112. data/lib/knj/jruby-gtk2/eventbutton.rb +21 -0
  113. data/lib/knj/jruby-gtk2/gladexml.rb +99 -0
  114. data/lib/knj/jruby-gtk2/gtk-4.0.jar +0 -0
  115. data/lib/knj/jruby-gtk2/gtk2.rb +246 -0
  116. data/lib/knj/jruby-gtk2/hbox.rb +10 -0
  117. data/lib/knj/jruby-gtk2/iconsize.rb +5 -0
  118. data/lib/knj/jruby-gtk2/image.rb +10 -0
  119. data/lib/knj/jruby-gtk2/liststore.rb +56 -0
  120. data/lib/knj/jruby-gtk2/menu.rb +40 -0
  121. data/lib/knj/jruby-gtk2/progressbar.rb +12 -0
  122. data/lib/knj/jruby-gtk2/statusicon.rb +8 -0
  123. data/lib/knj/jruby-gtk2/stock.rb +8 -0
  124. data/lib/knj/jruby-gtk2/tests/test_glade_window.glade +163 -0
  125. data/lib/knj/jruby-gtk2/tests/test_glade_window.rb +47 -0
  126. data/lib/knj/jruby-gtk2/tests/test_normal_window.rb +17 -0
  127. data/lib/knj/jruby-gtk2/tests/test_trayicon.png +0 -0
  128. data/lib/knj/jruby-gtk2/tests/test_trayicon.rb +18 -0
  129. data/lib/knj/jruby-gtk2/treeview.rb +105 -0
  130. data/lib/knj/jruby-gtk2/vbox.rb +12 -0
  131. data/lib/knj/jruby-gtk2/window.rb +11 -0
  132. data/lib/knj/jruby_compiler.rb +14 -0
  133. data/lib/knj/knj.rb +19 -0
  134. data/lib/knj/knj_controller.rb +13 -0
  135. data/lib/knj/knjdb/dbtime.rb +30 -0
  136. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql.rb +327 -0
  137. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql_columns.rb +130 -0
  138. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql_indexes.rb +30 -0
  139. data/lib/knj/knjdb/drivers/mysql/knjdb_mysql_tables.rb +255 -0
  140. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3.rb +93 -0
  141. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_columns.rb +151 -0
  142. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_indexes.rb +29 -0
  143. data/lib/knj/knjdb/drivers/sqlite3/knjdb_sqlite3_tables.rb +300 -0
  144. data/lib/knj/knjdb/libknjdb.rb +438 -0
  145. data/lib/knj/knjdb/libknjdb_java_sqlite3.rb +83 -0
  146. data/lib/knj/knjdb/libknjdb_row.rb +149 -0
  147. data/lib/knj/knjdb/libknjdb_sqlite3_ironruby.rb +69 -0
  148. data/lib/knj/knjdb/mysql-connector-java-5.1.13-bin.jar +0 -0
  149. data/lib/knj/knjdb/sqlitejdbc-v056.jar +0 -0
  150. data/lib/knj/libqt.rb +75 -0
  151. data/lib/knj/libqt_window.rb +10 -0
  152. data/lib/knj/locale_strings.rb +3 -0
  153. data/lib/knj/locales.rb +54 -0
  154. data/lib/knj/maemo/fremantle-calendar/fremantle-calendar.rb +56 -0
  155. data/lib/knj/mail.rb +75 -0
  156. data/lib/knj/mailobj.rb +82 -0
  157. data/lib/knj/mount.rb +115 -0
  158. data/lib/knj/notify.rb +13 -0
  159. data/lib/knj/nvidia_settings.rb +45 -0
  160. data/lib/knj/objects.rb +731 -0
  161. data/lib/knj/opts.rb +38 -0
  162. data/lib/knj/os.rb +158 -0
  163. data/lib/knj/php.rb +717 -0
  164. data/lib/knj/php_parser/arguments.rb +5 -0
  165. data/lib/knj/php_parser/functions.rb +97 -0
  166. data/lib/knj/php_parser/php_parser.rb +99 -0
  167. data/lib/knj/php_parser/tests/test.rb +12 -0
  168. data/lib/knj/php_parser/tests/test_function.php +8 -0
  169. data/lib/knj/php_parser/tests/test_function_run.rb +19 -0
  170. data/lib/knj/power_manager.rb +31 -0
  171. data/lib/knj/rand.rb +10 -0
  172. data/lib/knj/retry.rb +71 -0
  173. data/lib/knj/rhodes/mutex.rb +11 -0
  174. data/lib/knj/rhodes/rhodes.js +3 -0
  175. data/lib/knj/rhodes/rhodes.rb +11 -0
  176. data/lib/knj/rsvgbin.rb +20 -0
  177. data/lib/knj/scripts/degulesider.rb +12 -0
  178. data/lib/knj/scripts/filesearch.rb +51 -0
  179. data/lib/knj/scripts/ip2location.rb +12 -0
  180. data/lib/knj/scripts/keepalive.rb +6 -0
  181. data/lib/knj/scripts/svn_merge.rb +29 -0
  182. data/lib/knj/scripts/upgrade_knjrbfw_checker.rb +41 -0
  183. data/lib/knj/sms.rb +54 -0
  184. data/lib/knj/sshrobot/sshrobot.rb +93 -0
  185. data/lib/knj/strings.rb +65 -0
  186. data/lib/knj/sysuser.rb +27 -0
  187. data/lib/knj/tests/compiler/compiler_test.rb +13 -0
  188. data/lib/knj/tests/compiler/compiler_test_file.rb +62 -0
  189. data/lib/knj/tests/test_degulesider.rb +11 -0
  190. data/lib/knj/tests/test_mount.rb +30 -0
  191. data/lib/knj/tests/test_retry.rb +30 -0
  192. data/lib/knj/thread.rb +32 -0
  193. data/lib/knj/thread2.rb +47 -0
  194. data/lib/knj/threadhandler.rb +130 -0
  195. data/lib/knj/threadpool.rb +177 -0
  196. data/lib/knj/translations.rb +139 -0
  197. data/lib/knj/unix_proc.rb +82 -0
  198. data/lib/knj/web.rb +932 -0
  199. data/lib/knj/webscripts/image.rhtml +82 -0
  200. data/lib/knj/win.rb +4 -0
  201. data/lib/knj/win_registry.rb +60 -0
  202. data/lib/knj/win_tightvnc.rb +127 -0
  203. data/lib/knj/x11vnc.rb +48 -0
  204. data/lib/knj/youtube.rb +38 -0
  205. data/lib/knjrbfw.rb +4 -0
  206. data/spec/knjrbfw_spec.rb +269 -0
  207. data/spec/spec_helper.rb +12 -0
  208. metadata +336 -0
@@ -0,0 +1,300 @@
1
+ class KnjDB_sqlite3::Tables
2
+ attr_reader :db, :driver
3
+
4
+ def initialize(args)
5
+ @args = args
6
+ @db = @args[:db]
7
+ @driver = @args[:driver]
8
+ end
9
+
10
+ def [](table_name)
11
+ list = self.list
12
+ return list[table_name.to_s] if list[table_name.to_s]
13
+ raise Knj::Errors::NotFound.new("Table was not found: #{table_name}.")
14
+ end
15
+
16
+ def list
17
+ list = {}
18
+ q_tables = @db.select("sqlite_master", {"type" => "table"}, {"orderby" => "name"})
19
+ while d_tables = q_tables.fetch
20
+ list[d_tables[:name]] = KnjDB_sqlite3::Tables::Table.new(
21
+ :db => @db,
22
+ :driver => @driver,
23
+ :data => d_tables
24
+ )
25
+ end
26
+
27
+ return list
28
+ end
29
+
30
+ def create(name, data)
31
+ sql = "CREATE TABLE `#{name}` ("
32
+
33
+ first = true
34
+ data["columns"].each do |col_data|
35
+ sql += ", " if !first
36
+ first = false if first
37
+ sql += @db.cols.data_sql(col_data)
38
+ end
39
+
40
+ sql += ")"
41
+
42
+ @db.query(sql)
43
+ @list = nil
44
+
45
+ if data["indexes"]
46
+ table_obj = self[name]
47
+ table_obj.create_indexes(data["indexes"])
48
+ end
49
+ end
50
+ end
51
+
52
+ class KnjDB_sqlite3::Tables::Table
53
+ def initialize(args)
54
+ @db = args[:db]
55
+ @driver = args[:driver]
56
+ @data = args[:data]
57
+ end
58
+
59
+ def name
60
+ return @data[:name]
61
+ end
62
+
63
+ def drop
64
+ sql = "DROP TABLE `#{self.name}`"
65
+ @db.query(sql)
66
+ end
67
+
68
+ def optimize
69
+ raise "stub!"
70
+ end
71
+
72
+ def column(name)
73
+ list = self.columns
74
+ return list[name] if list[name]
75
+ raise Knj::Errors::NotFound.new("Column not found: #{name}.")
76
+ end
77
+
78
+ def columns
79
+ if !@list
80
+ @db.cols
81
+ @list = {}
82
+
83
+ q_cols = @db.query("PRAGMA table_info(#{self.name})")
84
+ while d_cols = q_cols.fetch
85
+ @list[d_cols[:name]] = KnjDB_sqlite3::Columns::Column.new(
86
+ :table => self,
87
+ :db => @db,
88
+ :driver => @driver,
89
+ :data => d_cols
90
+ )
91
+ end
92
+ end
93
+
94
+ return @list
95
+ end
96
+
97
+ def create_columns(col_arr)
98
+ col_arr.each do |col_data|
99
+ #if col_data.has_key?("after")
100
+ # self.create_column_programmatic(col_data)
101
+ #else
102
+ @db.query("ALTER TABLE `#{self.name}` ADD COLUMN #{@db.cols.data_sql(col_data)};")
103
+ #end
104
+ end
105
+ end
106
+
107
+ def create_column_programmatic(col_data)
108
+ temp_name = "temptable_#{Knj::Php.md5(Knj::Datet.new.time.to_f)}"
109
+ cloned_tabled = self.clone(temp_name)
110
+ cols_cur = self.columns
111
+ @db.query("DROP TABLE `#{self.name}`")
112
+
113
+ sql = "CREATE TABLE `#{self.name}` ("
114
+ first = true
115
+ cols_cur.each do |name, col|
116
+ sql += ", " if !first
117
+ first = false if first
118
+ sql += @db.cols.data_sql(col.data)
119
+
120
+ if col_data["after"] and col_data["after"] == name
121
+ sql += ", #{@db.cols.data_sql(col_data)}"
122
+ end
123
+ end
124
+ sql += ");"
125
+ @db.query(sql)
126
+
127
+ sql = "INSERT INTO `#{self.name}` SELECT "
128
+ first = true
129
+ cols_cur.each do |name, col|
130
+ sql += ", " if !first
131
+ first = false if first
132
+
133
+ sql += "`#{name}`"
134
+
135
+ if col_data["after"] and col_data["after"] == name
136
+ sql += ", ''"
137
+ end
138
+ end
139
+ sql += " FROM `#{temp_name}`"
140
+ @db.query(sql)
141
+ @db.query("DROP TABLE `#{temp_name}`")
142
+ end
143
+
144
+ def clone(newname)
145
+ raise "Invalid name." if newname.to_s.strip.length <= 0
146
+ cols_cur = self.columns
147
+
148
+ sql = "CREATE TABLE `#{newname}` ("
149
+ first = true
150
+ cols_cur.each do |name, col|
151
+ sql += ", " if !first
152
+ first = false if first
153
+ sql += @db.cols.data_sql(col.data)
154
+ end
155
+
156
+ sql += ");"
157
+ @db.query(sql)
158
+
159
+ sql = "INSERT INTO `#{newname}` SELECT * FROM `#{self.name}`"
160
+ @db.query(sql)
161
+ return @db.tables[newname]
162
+ end
163
+
164
+ def copy(args = {})
165
+ temp_name = "temptable_#{Knj::Php.md5(Knj::Datet.new.time.to_f)}"
166
+ cloned_tabled = self.clone(temp_name)
167
+ cols_cur = self.columns
168
+ @db.query("DROP TABLE `#{self.name}`")
169
+
170
+ sql = "CREATE TABLE `#{self.name}` ("
171
+ first = true
172
+ cols_cur.each do |name, col|
173
+ next if args["drops"] and args["drops"].index(name) != nil
174
+
175
+ sql += ", " if !first
176
+ first = false if first
177
+
178
+ if args.has_key?("alter_columns") and args["alter_columns"][name.to_s]
179
+ sql += @db.cols.data_sql(args["alter_columns"][name.to_s])
180
+ else
181
+ sql += @db.cols.data_sql(col.data)
182
+ end
183
+
184
+ if args["new"]
185
+ args["new"].each do |col_data|
186
+ if col_data["after"] and col_data["after"] == name
187
+ sql += ", #{@db.cols.data_sql(col_data)}"
188
+ end
189
+ end
190
+ end
191
+ end
192
+ sql += ");"
193
+ @db.query(sql)
194
+
195
+ sql = "INSERT INTO `#{self.name}` SELECT "
196
+ first = true
197
+ cols_cur.each do |name, col|
198
+ next if args["drops"] and args["drops"].index(name) != nil
199
+
200
+ sql += ", " if !first
201
+ first = false if first
202
+
203
+ sql += "`#{name}`"
204
+
205
+ if args["news"]
206
+ args["news"].each do |col_data|
207
+ if col_data["after"] and col_data["after"] == name
208
+ sql += ", ''"
209
+ end
210
+ end
211
+ end
212
+ end
213
+
214
+ sql += " FROM `#{temp_name}`"
215
+ @db.query(sql)
216
+ @db.query("DROP TABLE `#{temp_name}`")
217
+ end
218
+
219
+ def index(name)
220
+ list = self.indexes
221
+ return list[name] if list[name]
222
+ raise Knj::Errors::NotFound.new("Index not found: #{name}.")
223
+ end
224
+
225
+ def indexes
226
+ if !@indexes_list
227
+ @db.indexes
228
+ @indexes_list = {}
229
+
230
+ q_indexes = @db.query("PRAGMA index_list(`#{self.name}`)")
231
+ while d_indexes = q_indexes.fetch
232
+ if @db.opts[:index_append_table_name]
233
+ match_name = d_indexes[:name].match(/__(.+)$/)
234
+
235
+ if match_name
236
+ name = match_name[1]
237
+ else
238
+ name = d_indexes[:name]
239
+ end
240
+ else
241
+ name = d_indexes[:name]
242
+ end
243
+
244
+ @indexes_list[name] = KnjDB_sqlite3::Indexes::Index.new(
245
+ :table => self,
246
+ :db => @db,
247
+ :driver => @driver,
248
+ :data => d_indexes
249
+ )
250
+
251
+ @indexes_list[name].columns << name
252
+ end
253
+ end
254
+
255
+ return @indexes_list
256
+ end
257
+
258
+ def create_indexes(index_arr)
259
+ index_arr.each do |index_data|
260
+ raise "No name was given." if !index_data.has_key?("name") or index_data["name"].strip.length <= 0
261
+ raise "No columns was given on index #{index_data["name"]}." if index_data["columns"].empty?
262
+
263
+ name = index_data["name"]
264
+ name = "#{self.name}__#{name}" if @db.opts[:index_append_table_name]
265
+
266
+ sql = "CREATE INDEX #{@db.escape_col}#{@db.esc_col(name)}#{@db.escape_col} ON #{@db.escape_table}#{@db.esc_table(self.name)}#{@db.escape_table} ("
267
+
268
+ first = true
269
+ index_data["columns"].each do |col_name|
270
+ sql += ", " if !first
271
+ first = false if first
272
+
273
+ sql += "#{@db.escape_col}#{@db.esc_col(col_name)}#{@db.escape_col}"
274
+ end
275
+
276
+ sql += ")"
277
+
278
+ @db.query(sql)
279
+ @indexes_list = nil
280
+ end
281
+ end
282
+
283
+ def data
284
+ ret = {
285
+ "name" => name,
286
+ "columns" => [],
287
+ "indexes" => []
288
+ }
289
+
290
+ columns.each do |name, column|
291
+ ret["columns"] << column.data
292
+ end
293
+
294
+ indexes.each do |name, index|
295
+ ret["indexes"] << index.data if name != "PRIMARY"
296
+ end
297
+
298
+ return ret
299
+ end
300
+ end