roebe 0.5.123

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of roebe might be problematic. Click here for more details.

Files changed (2734) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +2628 -0
  3. data/bin/blinking_cursor +7 -0
  4. data/bin/browser +7 -0
  5. data/bin/colourized_tokenitor1 +7 -0
  6. data/bin/colourized_tokenitor2 +7 -0
  7. data/bin/colourized_tokenitor3 +7 -0
  8. data/bin/colourized_tokenitor4 +7 -0
  9. data/bin/colourized_tokenitor5 +7 -0
  10. data/bin/compare_these_two_directories +7 -0
  11. data/bin/create_file_skeleton +7 -0
  12. data/bin/create_my_directories +7 -0
  13. data/bin/create_zip +7 -0
  14. data/bin/display_gcc_version +7 -0
  15. data/bin/do_a_google_search +7 -0
  16. data/bin/extract_gem_file +7 -0
  17. data/bin/fragment_maker +7 -0
  18. data/bin/generate_fstab_file +7 -0
  19. data/bin/hello_world +7 -0
  20. data/bin/in +7 -0
  21. data/bin/increment_application_version +7 -0
  22. data/bin/increment_application_version_then_push_the_gem +13 -0
  23. data/bin/install_all_registered_fonts +7 -0
  24. data/bin/install_my_addons +115 -0
  25. data/bin/interactive_file_creator +7 -0
  26. data/bin/kill_firefox +7 -0
  27. data/bin/kill_palemoon +7 -0
  28. data/bin/konsole_title +7 -0
  29. data/bin/larrow +7 -0
  30. data/bin/log10 +7 -0
  31. data/bin/menugenerator +7 -0
  32. data/bin/openpdf1 +7 -0
  33. data/bin/openpdf2 +7 -0
  34. data/bin/openpdf3 +7 -0
  35. data/bin/openpdf4 +7 -0
  36. data/bin/openpdf5 +7 -0
  37. data/bin/openpdf6 +7 -0
  38. data/bin/openpdf7 +7 -0
  39. data/bin/openpdf8 +7 -0
  40. data/bin/openpdf9 +7 -0
  41. data/bin/passwords +7 -0
  42. data/bin/path_generator +7 -0
  43. data/bin/print_this_unicode_symbol +7 -0
  44. data/bin/quick_colour_test +13 -0
  45. data/bin/rarrow +7 -0
  46. data/bin/rdate +7 -0
  47. data/bin/remove_this_substring_from_all_files +7 -0
  48. data/bin/replace_space_with_underscore +7 -0
  49. data/bin/rfirefox +7 -0
  50. data/bin/rinstall2 +7 -0
  51. data/bin/roebe +7 -0
  52. data/bin/roebe_documentation +7 -0
  53. data/bin/roebeshell +11 -0
  54. data/bin/ruby_cat +7 -0
  55. data/bin/ruby_dhcpcd +7 -0
  56. data/bin/run +7 -0
  57. data/bin/rxinitrc +7 -0
  58. data/bin/set_alias_1 +7 -0
  59. data/bin/set_alias_10 +7 -0
  60. data/bin/set_alias_2 +7 -0
  61. data/bin/set_alias_3 +7 -0
  62. data/bin/set_alias_4 +7 -0
  63. data/bin/set_alias_5 +7 -0
  64. data/bin/set_alias_6 +7 -0
  65. data/bin/set_alias_7 +7 -0
  66. data/bin/set_alias_8 +7 -0
  67. data/bin/set_alias_9 +7 -0
  68. data/bin/set_browser +7 -0
  69. data/bin/setpdf1 +7 -0
  70. data/bin/setpdf2 +7 -0
  71. data/bin/setpdf3 +7 -0
  72. data/bin/setpdf4 +7 -0
  73. data/bin/setpdf5 +7 -0
  74. data/bin/setpdf6 +7 -0
  75. data/bin/setpdf7 +7 -0
  76. data/bin/setpdf8 +7 -0
  77. data/bin/setpdf9 +7 -0
  78. data/bin/show_available_users +7 -0
  79. data/bin/show_ten_aliases +7 -0
  80. data/bin/simple_extractor +9 -0
  81. data/bin/symlink_directories_from_that_directory_to_the_current_directory +7 -0
  82. data/bin/symlink_everything_from_that_directory_to_this_directory +7 -0
  83. data/bin/symlink_files_from_that_directory_to_the_current_directory +7 -0
  84. data/bin/take_screenshot +7 -0
  85. data/bin/to_binary +7 -0
  86. data/bin/tokenitor +7 -0
  87. data/bin/trad +7 -0
  88. data/bin/vim_paradise +7 -0
  89. data/bin/wlan +7 -0
  90. data/doc/CONFIGURATION_FOR_THE_ROEBE_SHELL.md +381 -0
  91. data/doc/MANIFESTO_FOR_THE_ROEBE_SHELL_COMPONENT.md +391 -0
  92. data/doc/PHILOSOPHY_OF_THE_ROEBE_SHELL.md +64 -0
  93. data/doc/README.gen +2585 -0
  94. data/doc/add_ons_for_ruby/README.md +3 -0
  95. data/doc/add_ons_for_ruby/axlsx.md +60 -0
  96. data/doc/add_ons_for_ruby/fxruby.md +14 -0
  97. data/doc/add_ons_for_ruby/glimmer-libui.md +44 -0
  98. data/doc/add_ons_for_ruby/gosu.md +3 -0
  99. data/doc/add_ons_for_ruby/jruby.md +132 -0
  100. data/doc/add_ons_for_ruby/opal.md +34 -0
  101. data/doc/add_ons_for_ruby/prawn.md +12 -0
  102. data/doc/add_ons_for_ruby/sequel.md +51 -0
  103. data/doc/core/array.md +11 -0
  104. data/doc/deprecations.md +10 -0
  105. data/doc/diamond_shell_tutorial.cgi +802 -0
  106. data/doc/linux_may_have_issues.md +92 -0
  107. data/doc/misc/how_to_publish.md +49 -0
  108. data/doc/misc/the_perfect_book.md +14 -0
  109. data/doc/old_tutorial/README.md +7 -0
  110. data/doc/old_tutorial/old_diashell_tutorial.cgi +2105 -0
  111. data/doc/ruby_on_rails_tutorial/data_types_for_rails_migrations.md +11 -0
  112. data/doc/ruby_on_rails_tutorial/ruby_on_rails_tutorial.cgi +404 -0
  113. data/doc/sinatra_tutorial/sinatra_tutorial.cgi +7 -0
  114. data/doc/sinatra_tutorial/sinatra_tutorial.rb +930 -0
  115. data/doc/sinatra_tutorial/sinatra_tutorial.sinatra +56 -0
  116. data/doc/statistics/statistics.md +94 -0
  117. data/doc/todo/todo_for_the_roebe_project.md +1 -0
  118. data/doc/todo/todo_for_the_roebe_project_on_windows.md +8 -0
  119. data/doc/todo/todo_for_the_roebe_shell.md +1178 -0
  120. data/examples/rmagick/001_axes.rb +68 -0
  121. data/examples/rmagick/002_basic_2D_canvas.rb +29 -0
  122. data/examples/rmagick/003_a_walking_duck.rb +42 -0
  123. data/examples/rmagick/004_black_rectangle_with_red_border.rb +37 -0
  124. data/examples/rmagick/A_WALKING_DUCK.gif +0 -0
  125. data/examples/rmagick/foobar.png +0 -0
  126. data/lib/roebe/autoinclude.rb +4 -0
  127. data/lib/roebe/autoinclude_encoding.rb +11 -0
  128. data/lib/roebe/autoinclude_open.rb +3 -0
  129. data/lib/roebe/base/base.rb +25 -0
  130. data/lib/roebe/base/chdir.rb +43 -0
  131. data/lib/roebe/base/colours.rb +539 -0
  132. data/lib/roebe/base/commandline_arguments.rb +86 -0
  133. data/lib/roebe/base/constants.rb +25 -0
  134. data/lib/roebe/base/copy.rb +70 -0
  135. data/lib/roebe/base/editor.rb +18 -0
  136. data/lib/roebe/base/encoding.rb +54 -0
  137. data/lib/roebe/base/env.rb +22 -0
  138. data/lib/roebe/base/esystem.rb +84 -0
  139. data/lib/roebe/base/home_directory_of_user_x.rb +27 -0
  140. data/lib/roebe/base/is_on_roebe.rb +22 -0
  141. data/lib/roebe/base/misc.rb +357 -0
  142. data/lib/roebe/base/next.rb +29 -0
  143. data/lib/roebe/base/opnn.rb +46 -0
  144. data/lib/roebe/base/prototype.rb +409 -0
  145. data/lib/roebe/base/reset.rb +37 -0
  146. data/lib/roebe/base/run.rb +17 -0
  147. data/lib/roebe/base/simp.rb +25 -0
  148. data/lib/roebe/base/support_for_beautiful_url.rb +28 -0
  149. data/lib/roebe/base/symlink.rb +51 -0
  150. data/lib/roebe/base/time.rb +165 -0
  151. data/lib/roebe/base/verbose_truth.rb +21 -0
  152. data/lib/roebe/base/write_what_into.rb +33 -0
  153. data/lib/roebe/browser/README.md +5 -0
  154. data/lib/roebe/browser/browser.rb +26 -0
  155. data/lib/roebe/browser/constants.rb +43 -0
  156. data/lib/roebe/browser/firefox.rb +51 -0
  157. data/lib/roebe/browser/menu.rb +103 -0
  158. data/lib/roebe/browser/misc.rb +367 -0
  159. data/lib/roebe/browser/output_url_then_open_in_browser.rb +168 -0
  160. data/lib/roebe/browser/palemoon.rb +59 -0
  161. data/lib/roebe/browser/reset.rb +50 -0
  162. data/lib/roebe/cat/cat.rb +137 -0
  163. data/lib/roebe/cat/method.rb +14 -0
  164. data/lib/roebe/classes/add_irc_quote.rb +132 -0
  165. data/lib/roebe/classes/add_newline_after.rb +124 -0
  166. data/lib/roebe/classes/add_this_user_to_the_sudoers_file.rb +67 -0
  167. data/lib/roebe/classes/add_user_lighty.rb +104 -0
  168. data/lib/roebe/classes/aggregate_all_files_together_from_this_directory.rb +86 -0
  169. data/lib/roebe/classes/aliases.rb +683 -0
  170. data/lib/roebe/classes/all_games.rb +61 -0
  171. data/lib/roebe/classes/all_my_gems.rb +101 -0
  172. data/lib/roebe/classes/alphabetical_sorter.rb +117 -0
  173. data/lib/roebe/classes/apache_configuration_maker.rb +234 -0
  174. data/lib/roebe/classes/append_this.rb +156 -0
  175. data/lib/roebe/classes/append_to_line.rb +141 -0
  176. data/lib/roebe/classes/ascii/README.md +2 -0
  177. data/lib/roebe/classes/ascii/fix_missing_numbers_for_ascii_paradise.rb +96 -0
  178. data/lib/roebe/classes/at.rb +300 -0
  179. data/lib/roebe/classes/automounter.rb +181 -0
  180. data/lib/roebe/classes/available_classes.rb +219 -0
  181. data/lib/roebe/classes/backup_core_system.rb +223 -0
  182. data/lib/roebe/classes/basic_configure.rb +110 -0
  183. data/lib/roebe/classes/batch_generate_all_my_gems.rb +132 -0
  184. data/lib/roebe/classes/become_another_user.rb +86 -0
  185. data/lib/roebe/classes/bezirk.rb +91 -0
  186. data/lib/roebe/classes/birthday_notifications.rb +291 -0
  187. data/lib/roebe/classes/burn_iso/burn_iso.rb +274 -0
  188. data/lib/roebe/classes/burn_iso/constants.rb +43 -0
  189. data/lib/roebe/classes/burn_iso/initialize.rb +33 -0
  190. data/lib/roebe/classes/caesar_cipher.rb +88 -0
  191. data/lib/roebe/classes/calendar.rb +360 -0
  192. data/lib/roebe/classes/calendar_maker.rb +61 -0
  193. data/lib/roebe/classes/celsius_to_fahrenheit.rb +195 -0
  194. data/lib/roebe/classes/check_for_bad_blocks.rb +67 -0
  195. data/lib/roebe/classes/check_yaml.rb +71 -0
  196. data/lib/roebe/classes/chmod_current_time.rb +71 -0
  197. data/lib/roebe/classes/clipboard.rb +221 -0
  198. data/lib/roebe/classes/clock.rb +118 -0
  199. data/lib/roebe/classes/compare_these_two_directories.rb +95 -0
  200. data/lib/roebe/classes/compare_these_two_files.rb +167 -0
  201. data/lib/roebe/classes/compile_kernel.rb +114 -0
  202. data/lib/roebe/classes/config_generator.rb +204 -0
  203. data/lib/roebe/classes/conky.rb +121 -0
  204. data/lib/roebe/classes/conky_rcfile_generator.rb +61 -0
  205. data/lib/roebe/classes/convert_encoding_of_this_file.rb +215 -0
  206. data/lib/roebe/classes/convert_file_into_utf_encoding.rb +89 -0
  207. data/lib/roebe/classes/convert_this_cgi_file_into_a_sinatrafied_application.rb +145 -0
  208. data/lib/roebe/classes/copy_from_glibc.rb +134 -0
  209. data/lib/roebe/classes/copy_here.rb +76 -0
  210. data/lib/roebe/classes/copy_kernel_config.rb +59 -0
  211. data/lib/roebe/classes/copy_these_directories_to.rb +121 -0
  212. data/lib/roebe/classes/covid_lethality.rb +243 -0
  213. data/lib/roebe/classes/create_asoundrc_file.rb +66 -0
  214. data/lib/roebe/classes/create_benchmark_file.rb +77 -0
  215. data/lib/roebe/classes/create_desktop_file.rb +236 -0
  216. data/lib/roebe/classes/create_docbook_sgml_dtd_catalog.rb +113 -0
  217. data/lib/roebe/classes/create_file_skeleton/constants.rb +70 -0
  218. data/lib/roebe/classes/create_file_skeleton/create_file_skeleton.rb +470 -0
  219. data/lib/roebe/classes/create_file_skeleton/generate_c_string.rb +31 -0
  220. data/lib/roebe/classes/create_file_skeleton/generate_cpp_string.rb +33 -0
  221. data/lib/roebe/classes/create_file_skeleton/generate_ruby_string.rb +124 -0
  222. data/lib/roebe/classes/create_file_skeleton/reset.rb +56 -0
  223. data/lib/roebe/classes/create_file_skeleton/run.rb +23 -0
  224. data/lib/roebe/classes/create_firefox_extension.rb +186 -0
  225. data/lib/roebe/classes/create_iso.rb +203 -0
  226. data/lib/roebe/classes/create_iso_for_games.rb +308 -0
  227. data/lib/roebe/classes/create_jar_archive.rb +58 -0
  228. data/lib/roebe/classes/create_my_directories.rb +216 -0
  229. data/lib/roebe/classes/create_ruby_directory_layout.rb +125 -0
  230. data/lib/roebe/classes/create_zip.rb +112 -0
  231. data/lib/roebe/classes/css_analyzer.rb +125 -0
  232. data/lib/roebe/classes/current_monitor_resolution.rb +107 -0
  233. data/lib/roebe/classes/custom_table/custom_table.rb +198 -0
  234. data/lib/roebe/classes/daemonize.rb +131 -0
  235. data/lib/roebe/classes/date_sort.rb +149 -0
  236. data/lib/roebe/classes/day_calendar.rb +153 -0
  237. data/lib/roebe/classes/dbus.rb +132 -0
  238. data/lib/roebe/classes/delete_all_directories.rb +100 -0
  239. data/lib/roebe/classes/delete_empty_directories.rb +96 -0
  240. data/lib/roebe/classes/delete_empty_files.rb +142 -0
  241. data/lib/roebe/classes/dhcpcd.rb +125 -0
  242. data/lib/roebe/classes/differences_between_two_directories.rb +140 -0
  243. data/lib/roebe/classes/disable.rb +138 -0
  244. data/lib/roebe/classes/display_gcc_version.rb +135 -0
  245. data/lib/roebe/classes/do_a_google_search.rb +67 -0
  246. data/lib/roebe/classes/do_install.rb +233 -0
  247. data/lib/roebe/classes/done.rb +158 -0
  248. data/lib/roebe/classes/done_and_open.rb +183 -0
  249. data/lib/roebe/classes/doskey_generator.rb +198 -0
  250. data/lib/roebe/classes/downcase_directories.rb +83 -0
  251. data/lib/roebe/classes/downcase_extension.rb +136 -0
  252. data/lib/roebe/classes/download_from_this_url.rb +266 -0
  253. data/lib/roebe/classes/email.rb +635 -0
  254. data/lib/roebe/classes/enable.rb +59 -0
  255. data/lib/roebe/classes/enable_autologin.rb +378 -0
  256. data/lib/roebe/classes/english_to_german.rb +128 -0
  257. data/lib/roebe/classes/ethernet.rb +171 -0
  258. data/lib/roebe/classes/euclidian_distance.rb +148 -0
  259. data/lib/roebe/classes/extract_gem_file.rb +208 -0
  260. data/lib/roebe/classes/feet_to_centimetres.rb +106 -0
  261. data/lib/roebe/classes/fetch_random_line.rb +66 -0
  262. data/lib/roebe/classes/fetch_url.rb +77 -0
  263. data/lib/roebe/classes/file_parser.rb +126 -0
  264. data/lib/roebe/classes/file_renamer.rb +229 -0
  265. data/lib/roebe/classes/files_that_could_become_apps.rb +95 -0
  266. data/lib/roebe/classes/filter_apache_log.rb +90 -0
  267. data/lib/roebe/classes/find_all_files_encoded_in_iso.rb +99 -0
  268. data/lib/roebe/classes/find_all_files_with_a_question_mark.rb +148 -0
  269. data/lib/roebe/classes/find_duplicate_entries_in_alias_file.rb +168 -0
  270. data/lib/roebe/classes/find_empty_files.rb +88 -0
  271. data/lib/roebe/classes/find_expanded_alias.rb +267 -0
  272. data/lib/roebe/classes/find_out_version_of.rb +193 -0
  273. data/lib/roebe/classes/find_static_libraries.rb +220 -0
  274. data/lib/roebe/classes/fix_mcookie.rb +84 -0
  275. data/lib/roebe/classes/fix_timezone.rb +95 -0
  276. data/lib/roebe/classes/fluxbox/README.md +3 -0
  277. data/lib/roebe/classes/fluxbox/autogenerate_fluxbox_files.rb +20 -0
  278. data/lib/roebe/classes/fluxbox/generate_fluxbox_apps_file.rb +155 -0
  279. data/lib/roebe/classes/fluxbox/generate_fluxbox_keys_file.rb +110 -0
  280. data/lib/roebe/classes/fluxbox/install_fluxbox_style.rb +85 -0
  281. data/lib/roebe/classes/font_installer.rb +119 -0
  282. data/lib/roebe/classes/fotos_f/303/274r_ingrid.rb +50 -0
  283. data/lib/roebe/classes/fragment_maker.rb +141 -0
  284. data/lib/roebe/classes/general_overviewer.rb +258 -0
  285. data/lib/roebe/classes/generate_alsa_conf.rb +108 -0
  286. data/lib/roebe/classes/generate_etc_resolv_conf_file.rb +106 -0
  287. data/lib/roebe/classes/generate_fstab_file/generate_fstab_file.rb +255 -0
  288. data/lib/roebe/classes/generate_gemspec/constants.rb +58 -0
  289. data/lib/roebe/classes/generate_gemspec/generate_gemspec.rb +195 -0
  290. data/lib/roebe/classes/generate_locales.rb +114 -0
  291. data/lib/roebe/classes/generate_ls_colors.rb +92 -0
  292. data/lib/roebe/classes/generate_master_shell_script.rb +254 -0
  293. data/lib/roebe/classes/generate_nsswitch_conf.rb +110 -0
  294. data/lib/roebe/classes/generate_overview_of_the_locally_available_books.rb +178 -0
  295. data/lib/roebe/classes/generate_protocols.rb +253 -0
  296. data/lib/roebe/classes/generate_rewrite_rules.rb +266 -0
  297. data/lib/roebe/classes/generate_robots_txt_file.rb +104 -0
  298. data/lib/roebe/classes/generate_rtf_file.rb +132 -0
  299. data/lib/roebe/classes/generate_system_values.rb +164 -0
  300. data/lib/roebe/classes/generate_unit_files/README.md +9 -0
  301. data/lib/roebe/classes/generate_unit_files/generate_unit_files.rb +192 -0
  302. data/lib/roebe/classes/generate_xauthority_file.rb +119 -0
  303. data/lib/roebe/classes/generate_xorg_conf/constants.rb +145 -0
  304. data/lib/roebe/classes/generate_xorg_conf/generate_xorg_conf.rb +767 -0
  305. data/lib/roebe/classes/get_dependencies.rb +175 -0
  306. data/lib/roebe/classes/good_night.rb +72 -0
  307. data/lib/roebe/classes/google_url_cleaner.rb +147 -0
  308. data/lib/roebe/classes/grant_superuser_rights.rb +146 -0
  309. data/lib/roebe/classes/grub/grub_config_generator.rb +184 -0
  310. data/lib/roebe/classes/grub_appender.rb +246 -0
  311. data/lib/roebe/classes/gzip_this_file.rb +86 -0
  312. data/lib/roebe/classes/hello_world.rb +60 -0
  313. data/lib/roebe/classes/hex_to_rgb.rb +89 -0
  314. data/lib/roebe/classes/holiday.rb +99 -0
  315. data/lib/roebe/classes/hosts_appender.rb +171 -0
  316. data/lib/roebe/classes/html_form_fetcher.rb +101 -0
  317. data/lib/roebe/classes/icewm/README.md +3 -0
  318. data/lib/roebe/classes/icewm/icewm_keys_generator.rb +162 -0
  319. data/lib/roebe/classes/identical.rb +174 -0
  320. data/lib/roebe/classes/imdb.rb +86 -0
  321. data/lib/roebe/classes/in.rb +156 -0
  322. data/lib/roebe/classes/increment_application_version.rb +291 -0
  323. data/lib/roebe/classes/inhalt.rb +166 -0
  324. data/lib/roebe/classes/inputrc/constants.rb +37 -0
  325. data/lib/roebe/classes/inputrc/inputrc.rb +567 -0
  326. data/lib/roebe/classes/inputrc/misc.rb +11 -0
  327. data/lib/roebe/classes/install_debian_file.rb +172 -0
  328. data/lib/roebe/classes/install_flash/install_flash.rb +179 -0
  329. data/lib/roebe/classes/install_libreoffice/constants.rb +39 -0
  330. data/lib/roebe/classes/install_libreoffice/install_libreoffice.rb +232 -0
  331. data/lib/roebe/classes/install_my_gems.rb +100 -0
  332. data/lib/roebe/classes/install_openssl_certificates.rb +238 -0
  333. data/lib/roebe/classes/install_ruby_project.rb +180 -0
  334. data/lib/roebe/classes/interactive_file_creator.rb +229 -0
  335. data/lib/roebe/classes/into.rb +95 -0
  336. data/lib/roebe/classes/ipaste.rb +88 -0
  337. data/lib/roebe/classes/iso_to_usb.rb +239 -0
  338. data/lib/roebe/classes/java_header.rb +112 -0
  339. data/lib/roebe/classes/kde/install_this_konsole_theme.rb +87 -0
  340. data/lib/roebe/classes/kde/kde_konsole/constants.rb +54 -0
  341. data/lib/roebe/classes/kde/kde_konsole/help.rb +33 -0
  342. data/lib/roebe/classes/kde/kde_konsole/initialize.rb +40 -0
  343. data/lib/roebe/classes/kde/kde_konsole/kde_konsole.rb +37 -0
  344. data/lib/roebe/classes/kde/kde_konsole/menu.rb +200 -0
  345. data/lib/roebe/classes/kde/kde_konsole/misc.rb +333 -0
  346. data/lib/roebe/classes/kde/kde_konsole/reset.rb +42 -0
  347. data/lib/roebe/classes/kde/kde_konsole/run.rb +22 -0
  348. data/lib/roebe/classes/kde/kde_konsole_send_command.rb +95 -0
  349. data/lib/roebe/classes/kde/kde_servicemenus.rb +83 -0
  350. data/lib/roebe/classes/kde/konsole_new_tab.rb +124 -0
  351. data/lib/roebe/classes/kde/restore_kde.rb +103 -0
  352. data/lib/roebe/classes/kde/return_pid_of_kde_konsole.rb +30 -0
  353. data/lib/roebe/classes/kde/split_kde_konsole_tab_vertically.rb +28 -0
  354. data/lib/roebe/classes/key_value_parser.rb +145 -0
  355. data/lib/roebe/classes/keys_generator/constants.rb +72 -0
  356. data/lib/roebe/classes/keys_generator/keys_generator.rb +328 -0
  357. data/lib/roebe/classes/kill_firefox.rb +126 -0
  358. data/lib/roebe/classes/kill_palemoon.rb +132 -0
  359. data/lib/roebe/classes/last_called_logger/last_called_logger.rb +67 -0
  360. data/lib/roebe/classes/last_line.rb +69 -0
  361. data/lib/roebe/classes/left_hyphen_in_this_file.rb +74 -0
  362. data/lib/roebe/classes/level_subdirectories.rb +122 -0
  363. data/lib/roebe/classes/lighttpd_config_generator.rb +105 -0
  364. data/lib/roebe/classes/lilo_config_generator.rb +403 -0
  365. data/lib/roebe/classes/lotto/handle_quicktipps.rb +96 -0
  366. data/lib/roebe/classes/lotto/lotto_quicktip.rb +214 -0
  367. data/lib/roebe/classes/make_cookbooks_gem.rb +109 -0
  368. data/lib/roebe/classes/make_gem.rb +277 -0
  369. data/lib/roebe/classes/mark_this_directory.rb +76 -0
  370. data/lib/roebe/classes/married_with_children.rb +110 -0
  371. data/lib/roebe/classes/mate_terminal/rename_mate_terminal.rb +56 -0
  372. data/lib/roebe/classes/mbl.rb +228 -0
  373. data/lib/roebe/classes/meal_maker.rb +88 -0
  374. data/lib/roebe/classes/menu_generator/append_to.rb +35 -0
  375. data/lib/roebe/classes/menu_generator/constants.rb +80 -0
  376. data/lib/roebe/classes/menu_generator/menu_generator.rb +623 -0
  377. data/lib/roebe/classes/misc/README.md +2 -0
  378. data/lib/roebe/classes/misc/anteile.rb +91 -0
  379. data/lib/roebe/classes/modify_shebang_header/constants.rb +77 -0
  380. data/lib/roebe/classes/modify_shebang_header/menu.rb +36 -0
  381. data/lib/roebe/classes/modify_shebang_header/misc.rb +11 -0
  382. data/lib/roebe/classes/modify_shebang_header/modify_shebang_header.rb +313 -0
  383. data/lib/roebe/classes/modright.rb +110 -0
  384. data/lib/roebe/classes/monthly_activity_on_rubygems.rb +220 -0
  385. data/lib/roebe/classes/moodle.rb +182 -0
  386. data/lib/roebe/classes/mount_dvd.rb +92 -0
  387. data/lib/roebe/classes/mount_iso_file.rb +108 -0
  388. data/lib/roebe/classes/move_content_of_this_directory_to_that_directory_unless_target_already_exists.rb +119 -0
  389. data/lib/roebe/classes/move_file.rb +234 -0
  390. data/lib/roebe/classes/move_mouse.rb +75 -0
  391. data/lib/roebe/classes/mrxvt.rb +140 -0
  392. data/lib/roebe/classes/mrxvt_options.rb +295 -0
  393. data/lib/roebe/classes/my_default_webrick_server.rb +125 -0
  394. data/lib/roebe/classes/my_ip.rb +69 -0
  395. data/lib/roebe/classes/n_directories.rb +98 -0
  396. data/lib/roebe/classes/n_downloads_on_rubygems_org.rb +246 -0
  397. data/lib/roebe/classes/n_gems_exist_in_total.rb +136 -0
  398. data/lib/roebe/classes/n_symlinks.rb +137 -0
  399. data/lib/roebe/classes/nano_config.rb +176 -0
  400. data/lib/roebe/classes/nibble_converter.rb +172 -0
  401. data/lib/roebe/classes/non_symlinks.rb +115 -0
  402. data/lib/roebe/classes/number_to_english.rb +167 -0
  403. data/lib/roebe/classes/nutrition.rb +69 -0
  404. data/lib/roebe/classes/nvidia.rb +83 -0
  405. data/lib/roebe/classes/obtain_audio_recordings_from_voice_recorder/constants.rb +38 -0
  406. data/lib/roebe/classes/obtain_audio_recordings_from_voice_recorder/help.rb +27 -0
  407. data/lib/roebe/classes/obtain_audio_recordings_from_voice_recorder/obtain_audio_recordings_from_voice_recorder.rb +610 -0
  408. data/lib/roebe/classes/obtain_audio_recordings_from_voice_recorder/run.rb +22 -0
  409. data/lib/roebe/classes/on_screen_display.rb +317 -0
  410. data/lib/roebe/classes/one_line_passwords.rb +199 -0
  411. data/lib/roebe/classes/open_pdf.rb +293 -0
  412. data/lib/roebe/classes/open_random_book.rb +124 -0
  413. data/lib/roebe/classes/output_random_line.rb +93 -0
  414. data/lib/roebe/classes/output_text_then_assign_to_the_xorg_buffer.rb +114 -0
  415. data/lib/roebe/classes/pad_via_quotes.rb +63 -0
  416. data/lib/roebe/classes/parse_apache_log/constants.rb +55 -0
  417. data/lib/roebe/classes/parse_apache_log/parse_apache_log.rb +329 -0
  418. data/lib/roebe/classes/pascalsches_dreieck.rb +108 -0
  419. data/lib/roebe/classes/passwords.rb +489 -0
  420. data/lib/roebe/classes/path_generator/constants.rb +68 -0
  421. data/lib/roebe/classes/path_generator/misc.rb +332 -0
  422. data/lib/roebe/classes/path_generator/path_generator.rb +31 -0
  423. data/lib/roebe/classes/path_generator/reset.rb +33 -0
  424. data/lib/roebe/classes/percentage_counter.rb +84 -0
  425. data/lib/roebe/classes/permission_ascii_format.rb +228 -0
  426. data/lib/roebe/classes/php_to_ruby.rb +184 -0
  427. data/lib/roebe/classes/pound_to_kg_converter.rb +86 -0
  428. data/lib/roebe/classes/prepend_this.rb +256 -0
  429. data/lib/roebe/classes/prepend_this_string_to_every_line_of_this_file.rb +195 -0
  430. data/lib/roebe/classes/pristine_gems.rb +71 -0
  431. data/lib/roebe/classes/proper_english.rb +115 -0
  432. data/lib/roebe/classes/publish_gem.rb +245 -0
  433. data/lib/roebe/classes/pull_together.rb +126 -0
  434. data/lib/roebe/classes/purge_files_or_directories.rb +66 -0
  435. data/lib/roebe/classes/purge_gmon_out_files.rb +102 -0
  436. data/lib/roebe/classes/purge_ordoc_directories.rb +66 -0
  437. data/lib/roebe/classes/put_all_gems_into_this_project.rb +319 -0
  438. data/lib/roebe/classes/qemu/README.md +2 -0
  439. data/lib/roebe/classes/qemu/qemu.rb +72 -0
  440. data/lib/roebe/classes/quiz.rb +300 -0
  441. data/lib/roebe/classes/ram.rb +160 -0
  442. data/lib/roebe/classes/random_background.rb +208 -0
  443. data/lib/roebe/classes/random_open.rb +110 -0
  444. data/lib/roebe/classes/rbashrc.rb +160 -0
  445. data/lib/roebe/classes/rdate.rb +259 -0
  446. data/lib/roebe/classes/readme_generator/constants.rb +21 -0
  447. data/lib/roebe/classes/readme_generator/initialize.rb +38 -0
  448. data/lib/roebe/classes/readme_generator/misc.rb +515 -0
  449. data/lib/roebe/classes/readme_generator/readme_generator.rb +11 -0
  450. data/lib/roebe/classes/readme_generator/reset.rb +28 -0
  451. data/lib/roebe/classes/readme_generator/run.rb +20 -0
  452. data/lib/roebe/classes/remote_gems.rb +154 -0
  453. data/lib/roebe/classes/remove_bad_fluxbox_styles.rb +108 -0
  454. data/lib/roebe/classes/remove_comments/autoinclude.rb +3 -0
  455. data/lib/roebe/classes/remove_comments/constants.rb +22 -0
  456. data/lib/roebe/classes/remove_comments/remove_comments.rb +214 -0
  457. data/lib/roebe/classes/remove_directory.rb +210 -0
  458. data/lib/roebe/classes/remove_extension.rb +95 -0
  459. data/lib/roebe/classes/remove_file_extension.rb +111 -0
  460. data/lib/roebe/classes/remove_gems.rb +182 -0
  461. data/lib/roebe/classes/remove_lighty_logs.rb +61 -0
  462. data/lib/roebe/classes/remove_line.rb +172 -0
  463. data/lib/roebe/classes/remove_localhost.rb +312 -0
  464. data/lib/roebe/classes/remove_missing.rb +114 -0
  465. data/lib/roebe/classes/remove_newlines.rb +116 -0
  466. data/lib/roebe/classes/remove_this_substring_from_all_files.rb +70 -0
  467. data/lib/roebe/classes/replace_global_variables_in_this_file.rb +164 -0
  468. data/lib/roebe/classes/replace_space_with_underscore/constants.rb +38 -0
  469. data/lib/roebe/classes/replace_space_with_underscore/help.rb +37 -0
  470. data/lib/roebe/classes/replace_space_with_underscore/initialize.rb +30 -0
  471. data/lib/roebe/classes/replace_space_with_underscore/menu.rb +136 -0
  472. data/lib/roebe/classes/replace_space_with_underscore/replace_space_with_underscore.rb +402 -0
  473. data/lib/roebe/classes/replace_space_with_underscore/reset.rb +75 -0
  474. data/lib/roebe/classes/replace_what_with.rb +118 -0
  475. data/lib/roebe/classes/report_same_named_files.rb +82 -0
  476. data/lib/roebe/classes/require_everything.rb +155 -0
  477. data/lib/roebe/classes/return_aliases/return_n_aliases.rb +161 -0
  478. data/lib/roebe/classes/return_aliases/return_ten_aliases.rb +78 -0
  479. data/lib/roebe/classes/return_aliases/return_twenty_aliases.rb +79 -0
  480. data/lib/roebe/classes/return_random_image.rb +83 -0
  481. data/lib/roebe/classes/ruby_cat.rb +139 -0
  482. data/lib/roebe/classes/ruby_header.rb +122 -0
  483. data/lib/roebe/classes/ruby_main.rb +133 -0
  484. data/lib/roebe/classes/ruby_seq.rb +67 -0
  485. data/lib/roebe/classes/ruby_use_config_file.rb +104 -0
  486. data/lib/roebe/classes/ruby_version_switcher.rb +106 -0
  487. data/lib/roebe/classes/run/menu.rb +60 -0
  488. data/lib/roebe/classes/run/run.rb +679 -0
  489. data/lib/roebe/classes/rxinitrc/constants.rb +101 -0
  490. data/lib/roebe/classes/rxinitrc/help.rb +40 -0
  491. data/lib/roebe/classes/rxinitrc/run.rb +25 -0
  492. data/lib/roebe/classes/rxinitrc/rxinitrc.rb +534 -0
  493. data/lib/roebe/classes/scan_for_http_links.rb +110 -0
  494. data/lib/roebe/classes/schlafe.rb +101 -0
  495. data/lib/roebe/classes/serve_local_page.rb +280 -0
  496. data/lib/roebe/classes/set_aliases.rb +364 -0
  497. data/lib/roebe/classes/set_background.rb +113 -0
  498. data/lib/roebe/classes/set_chained.rb +79 -0
  499. data/lib/roebe/classes/set_normal_alias_to.rb +414 -0
  500. data/lib/roebe/classes/setup_chrooted_environment.rb +402 -0
  501. data/lib/roebe/classes/shells/generate_etc_shell_file.rb +115 -0
  502. data/lib/roebe/classes/show_appointments.rb +195 -0
  503. data/lib/roebe/classes/show_available_fonts.rb +141 -0
  504. data/lib/roebe/classes/show_available_users.rb +319 -0
  505. data/lib/roebe/classes/show_kernel_modules.rb +88 -0
  506. data/lib/roebe/classes/show_non_symlinks.rb +98 -0
  507. data/lib/roebe/classes/show_only_files.rb +90 -0
  508. data/lib/roebe/classes/show_prime_numbers.rb +72 -0
  509. data/lib/roebe/classes/show_sigint.rb +50 -0
  510. data/lib/roebe/classes/show_ten_aliases.rb +367 -0
  511. data/lib/roebe/classes/show_twenty_aliases.rb +243 -0
  512. data/lib/roebe/classes/simple_extractor.rb +118 -0
  513. data/lib/roebe/classes/size_of.rb +234 -0
  514. data/lib/roebe/classes/size_of_states.rb +170 -0
  515. data/lib/roebe/classes/skel_maker/constants.rb +65 -0
  516. data/lib/roebe/classes/skel_maker/skel_maker.rb +230 -0
  517. data/lib/roebe/classes/slogans.rb +290 -0
  518. data/lib/roebe/classes/slow_load.rb +65 -0
  519. data/lib/roebe/classes/sorted_output.rb +84 -0
  520. data/lib/roebe/classes/sourcerank.rb +76 -0
  521. data/lib/roebe/classes/std_renamer.rb +285 -0
  522. data/lib/roebe/classes/string_colour_parser.rb +165 -0
  523. data/lib/roebe/classes/sum_of_all_numbers.rb +153 -0
  524. data/lib/roebe/classes/supermerger.rb +121 -0
  525. data/lib/roebe/classes/symlink_all_directories_in_this_directory.rb +101 -0
  526. data/lib/roebe/classes/symlink_directories_from_that_directory_to_the_current_directory.rb +178 -0
  527. data/lib/roebe/classes/symlink_directory.rb +104 -0
  528. data/lib/roebe/classes/symlink_everything_from_that_directory_to_this_directory.rb +196 -0
  529. data/lib/roebe/classes/symlink_files_from_that_directory_to_the_current_directory/symlink_files_from_that_directory_to_the_current_directory.rb +256 -0
  530. data/lib/roebe/classes/syntax_checker.rb +191 -0
  531. data/lib/roebe/classes/system_checker.rb +646 -0
  532. data/lib/roebe/classes/take_screenshot.rb +396 -0
  533. data/lib/roebe/classes/tales_from_the_crypt.rb +519 -0
  534. data/lib/roebe/classes/terminal.rb +62 -0
  535. data/lib/roebe/classes/terminal_ps1.rb +128 -0
  536. data/lib/roebe/classes/test_for_psych.rb +73 -0
  537. data/lib/roebe/classes/test_openssl.rb +125 -0
  538. data/lib/roebe/classes/test_yaml.rb +70 -0
  539. data/lib/roebe/classes/threshold_splitter.rb +96 -0
  540. data/lib/roebe/classes/tic_tac_toe.rb +326 -0
  541. data/lib/roebe/classes/time/current_time_in_singapore.rb +121 -0
  542. data/lib/roebe/classes/time/display_weekdays.rb +82 -0
  543. data/lib/roebe/classes/time/query_world_time.rb +149 -0
  544. data/lib/roebe/classes/time/set_hardware_clock.rb +158 -0
  545. data/lib/roebe/classes/time/trivial_time_parser.rb +162 -0
  546. data/lib/roebe/classes/to_binary.rb +78 -0
  547. data/lib/roebe/classes/to_buy.rb +223 -0
  548. data/lib/roebe/classes/to_next.rb +139 -0
  549. data/lib/roebe/classes/to_squashfs.rb +73 -0
  550. data/lib/roebe/classes/to_tar_bz2.rb +62 -0
  551. data/lib/roebe/classes/to_utf.rb +87 -0
  552. data/lib/roebe/classes/today.rb +67 -0
  553. data/lib/roebe/classes/todo_overview.rb +87 -0
  554. data/lib/roebe/classes/top_ten_aliases.rb +104 -0
  555. data/lib/roebe/classes/total_pages_in_finished_books.rb +76 -0
  556. data/lib/roebe/classes/translate.rb +295 -0
  557. data/lib/roebe/classes/traverse_install.rb +242 -0
  558. data/lib/roebe/classes/treeview.rb +180 -0
  559. data/lib/roebe/classes/turn_ruby_file_into_gem.rb +195 -0
  560. data/lib/roebe/classes/twentyfour_hours_notation.rb +172 -0
  561. data/lib/roebe/classes/umlaut_converter.rb +137 -0
  562. data/lib/roebe/classes/undone.rb +126 -0
  563. data/lib/roebe/classes/unicode_snowman.rb +120 -0
  564. data/lib/roebe/classes/unified_padding.rb +144 -0
  565. data/lib/roebe/classes/unrar.rb +95 -0
  566. data/lib/roebe/classes/upcaser.rb +145 -0
  567. data/lib/roebe/classes/update.rb +333 -0
  568. data/lib/roebe/classes/update_static_html_pages_in_the_directory_containing_my_fotos.rb +73 -0
  569. data/lib/roebe/classes/upload_to_imgur.rb +137 -0
  570. data/lib/roebe/classes/usage.rb +158 -0
  571. data/lib/roebe/classes/usb/automount_usb.rb +82 -0
  572. data/lib/roebe/classes/usb/create_bootable_usb.rb +111 -0
  573. data/lib/roebe/classes/usb/usb_devices.rb +188 -0
  574. data/lib/roebe/classes/use_jruby.rb +68 -0
  575. data/lib/roebe/classes/vte.rb +110 -0
  576. data/lib/roebe/classes/wallpaper.rb +177 -0
  577. data/lib/roebe/classes/wikipedia.rb +99 -0
  578. data/lib/roebe/classes/wlan/constants.rb +72 -0
  579. data/lib/roebe/classes/wlan/eduroam/eduroam.rb +130 -0
  580. data/lib/roebe/classes/wlan/essid.rb +204 -0
  581. data/lib/roebe/classes/wlan/help.rb +101 -0
  582. data/lib/roebe/classes/wlan/initialize.rb +48 -0
  583. data/lib/roebe/classes/wlan/interactive.rb +52 -0
  584. data/lib/roebe/classes/wlan/menu.rb +336 -0
  585. data/lib/roebe/classes/wlan/misc.rb +330 -0
  586. data/lib/roebe/classes/wlan/reset.rb +38 -0
  587. data/lib/roebe/classes/wlan/run.rb +25 -0
  588. data/lib/roebe/classes/wlan/scan.rb +61 -0
  589. data/lib/roebe/classes/wlan/show_and_report.rb +73 -0
  590. data/lib/roebe/classes/wlan/wlan.rb +37 -0
  591. data/lib/roebe/classes/wochentag_anzeiger.rb +219 -0
  592. data/lib/roebe/classes/word_wrap.rb +45 -0
  593. data/lib/roebe/classes/xfce/README.md +2 -0
  594. data/lib/roebe/classes/xfce/set_xfce_wallpaper.rb +91 -0
  595. data/lib/roebe/classes/youtube_downloader.rb +157 -0
  596. data/lib/roebe/classes/zenity.rb +319 -0
  597. data/lib/roebe/classes/zoll.rb +88 -0
  598. data/lib/roebe/colours/colours.rb +44 -0
  599. data/lib/roebe/colours/determine_whether_colours_will_be_used.rb +71 -0
  600. data/lib/roebe/colours/ecomment.rb +36 -0
  601. data/lib/roebe/colours/html_colours.rb +176 -0
  602. data/lib/roebe/colours/permanently_disable_colours.rb +23 -0
  603. data/lib/roebe/colours/sdir.rb +34 -0
  604. data/lib/roebe/colours/sfancy.rb +26 -0
  605. data/lib/roebe/colours/sfile.rb +24 -0
  606. data/lib/roebe/colours/simp.rb +24 -0
  607. data/lib/roebe/colours/swarn.rb +24 -0
  608. data/lib/roebe/colours/use_colours.rb +17 -0
  609. data/lib/roebe/commandline/help.rb +122 -0
  610. data/lib/roebe/commandline/menu.rb +722 -0
  611. data/lib/roebe/commandline/misc.rb +278 -0
  612. data/lib/roebe/commandline/parse_commandline.rb +55 -0
  613. data/lib/roebe/configuration/autoinclude.rb +7 -0
  614. data/lib/roebe/configuration/class/configuration.rb +967 -0
  615. data/lib/roebe/configuration/module.rb +35 -0
  616. data/lib/roebe/constants/archive_types.rb +26 -0
  617. data/lib/roebe/constants/array_install_these_gem_projects.rb +114 -0
  618. data/lib/roebe/constants/constants.rb +97 -0
  619. data/lib/roebe/constants/directory_constants.rb +51 -0
  620. data/lib/roebe/constants/file_constants.rb +105 -0
  621. data/lib/roebe/constants/home_of_the_user_called_x.rb +14 -0
  622. data/lib/roebe/constants/misc.rb +124 -0
  623. data/lib/roebe/constants/newline.rb +16 -0
  624. data/lib/roebe/constants/roebe.rb +72 -0
  625. data/lib/roebe/constants/www.rb +32 -0
  626. data/lib/roebe/core/README.md +6 -0
  627. data/lib/roebe/core/array.rb +347 -0
  628. data/lib/roebe/core/dir.rb +124 -0
  629. data/lib/roebe/core/enumerable.rb +25 -0
  630. data/lib/roebe/core/file.rb +140 -0
  631. data/lib/roebe/core/fixnum.rb +150 -0
  632. data/lib/roebe/core/float.rb +86 -0
  633. data/lib/roebe/core/hash.rb +48 -0
  634. data/lib/roebe/core/integer.rb +41 -0
  635. data/lib/roebe/core/kernel.rb +82 -0
  636. data/lib/roebe/core/math.rb +61 -0
  637. data/lib/roebe/core/module.rb +91 -0
  638. data/lib/roebe/core/numeric.rb +64 -0
  639. data/lib/roebe/core/object.rb +53 -0
  640. data/lib/roebe/core/proc.rb +10 -0
  641. data/lib/roebe/core/process.rb +27 -0
  642. data/lib/roebe/core/range.rb +18 -0
  643. data/lib/roebe/core/string.rb +651 -0
  644. data/lib/roebe/core/struct.rb +22 -0
  645. data/lib/roebe/core/windows.rb +758 -0
  646. data/lib/roebe/css/project.css +38 -0
  647. data/lib/roebe/custom_methods/README.md +8 -0
  648. data/lib/roebe/custom_methods/constants.rb +53 -0
  649. data/lib/roebe/custom_methods/custom_methods.rb +5296 -0
  650. data/lib/roebe/documentation/README.md +2 -0
  651. data/lib/roebe/documentation/abbreviation.rb +48 -0
  652. data/lib/roebe/documentation/activerecord.rb +97 -0
  653. data/lib/roebe/documentation/ansi.rb +32 -0
  654. data/lib/roebe/documentation/app.rb +273 -0
  655. data/lib/roebe/documentation/argf.rb +50 -0
  656. data/lib/roebe/documentation/argv.rb +101 -0
  657. data/lib/roebe/documentation/array.rb +1089 -0
  658. data/lib/roebe/documentation/audio.rb +181 -0
  659. data/lib/roebe/documentation/base64.rb +27 -0
  660. data/lib/roebe/documentation/basic_object.rb +37 -0
  661. data/lib/roebe/documentation/benchmark.rb +39 -0
  662. data/lib/roebe/documentation/bigdecimal.rb +30 -0
  663. data/lib/roebe/documentation/binding.rb +51 -0
  664. data/lib/roebe/documentation/blocks.rb +43 -0
  665. data/lib/roebe/documentation/bundler.rb +40 -0
  666. data/lib/roebe/documentation/byebug.rb +34 -0
  667. data/lib/roebe/documentation/camping.rb +36 -0
  668. data/lib/roebe/documentation/case.rb +38 -0
  669. data/lib/roebe/documentation/caxlsx.rb +56 -0
  670. data/lib/roebe/documentation/cgi.rb +117 -0
  671. data/lib/roebe/documentation/chunkypng.rb +32 -0
  672. data/lib/roebe/documentation/class.rb +60 -0
  673. data/lib/roebe/documentation/classifier.rb +26 -0
  674. data/lib/roebe/documentation/closure.rb +216 -0
  675. data/lib/roebe/documentation/coderay.rb +96 -0
  676. data/lib/roebe/documentation/colours.rb +70 -0
  677. data/lib/roebe/documentation/comparable.rb +24 -0
  678. data/lib/roebe/documentation/conditionals.rb +69 -0
  679. data/lib/roebe/documentation/constants.rb +92 -0
  680. data/lib/roebe/documentation/conversions.rb +128 -0
  681. data/lib/roebe/documentation/css/default.css +181 -0
  682. data/lib/roebe/documentation/csv.rb +63 -0
  683. data/lib/roebe/documentation/daemons.rb +109 -0
  684. data/lib/roebe/documentation/dir.rb +95 -0
  685. data/lib/roebe/documentation/dl.rb +124 -0
  686. data/lib/roebe/documentation/documentation.rb +745 -0
  687. data/lib/roebe/documentation/drb.rb +123 -0
  688. data/lib/roebe/documentation/dsl.rb +45 -0
  689. data/lib/roebe/documentation/encoding.rb +157 -0
  690. data/lib/roebe/documentation/english.rb +28 -0
  691. data/lib/roebe/documentation/enumerable.rb +165 -0
  692. data/lib/roebe/documentation/enumerator.rb +33 -0
  693. data/lib/roebe/documentation/env.rb +30 -0
  694. data/lib/roebe/documentation/erb.rb +44 -0
  695. data/lib/roebe/documentation/errno.rb +41 -0
  696. data/lib/roebe/documentation/errorcodes.rb +42 -0
  697. data/lib/roebe/documentation/erubis.rb +134 -0
  698. data/lib/roebe/documentation/etc.rb +95 -0
  699. data/lib/roebe/documentation/eval.rb +37 -0
  700. data/lib/roebe/documentation/exception.rb +212 -0
  701. data/lib/roebe/documentation/falseclass.rb +22 -0
  702. data/lib/roebe/documentation/ferret.rb +41 -0
  703. data/lib/roebe/documentation/ffi.rb +43 -0
  704. data/lib/roebe/documentation/fiber.rb +44 -0
  705. data/lib/roebe/documentation/fiddle.rb +40 -0
  706. data/lib/roebe/documentation/file.rb +366 -0
  707. data/lib/roebe/documentation/fileutils.rb +78 -0
  708. data/lib/roebe/documentation/fixnum.rb +70 -0
  709. data/lib/roebe/documentation/float.rb +34 -0
  710. data/lib/roebe/documentation/for.rb +29 -0
  711. data/lib/roebe/documentation/fork.rb +43 -0
  712. data/lib/roebe/documentation/fpm.rb +54 -0
  713. data/lib/roebe/documentation/ftp.rb +83 -0
  714. data/lib/roebe/documentation/gc.rb +79 -0
  715. data/lib/roebe/documentation/gems.rb +435 -0
  716. data/lib/roebe/documentation/getoptlong.rb +36 -0
  717. data/lib/roebe/documentation/gist.rb +45 -0
  718. data/lib/roebe/documentation/global_variables.rb +44 -0
  719. data/lib/roebe/documentation/gmail.rb +39 -0
  720. data/lib/roebe/documentation/gosu.rb +36 -0
  721. data/lib/roebe/documentation/graphviz.rb +231 -0
  722. data/lib/roebe/documentation/gruff.rb +88 -0
  723. data/lib/roebe/documentation/gtk.rb +7929 -0
  724. data/lib/roebe/documentation/hash.rb +437 -0
  725. data/lib/roebe/documentation/hexapdf.md +56 -0
  726. data/lib/roebe/documentation/highline.rb +36 -0
  727. data/lib/roebe/documentation/hooks.rb +74 -0
  728. data/lib/roebe/documentation/iconv.rb +34 -0
  729. data/lib/roebe/documentation/imap.rb +25 -0
  730. data/lib/roebe/documentation/include_in_ruby.rb +30 -0
  731. data/lib/roebe/documentation/inline.rb +51 -0
  732. data/lib/roebe/documentation/inotify.rb +123 -0
  733. data/lib/roebe/documentation/install.rb +124 -0
  734. data/lib/roebe/documentation/instiki.rb +80 -0
  735. data/lib/roebe/documentation/integer.rb +55 -0
  736. data/lib/roebe/documentation/io.rb +116 -0
  737. data/lib/roebe/documentation/io_console.rb +52 -0
  738. data/lib/roebe/documentation/irb.rb +184 -0
  739. data/lib/roebe/documentation/iterators.rb +178 -0
  740. data/lib/roebe/documentation/jruby.md +34 -0
  741. data/lib/roebe/documentation/json.rb +70 -0
  742. data/lib/roebe/documentation/kernel.rb +179 -0
  743. data/lib/roebe/documentation/keywords.rb +48 -0
  744. data/lib/roebe/documentation/kramdown.rb +53 -0
  745. data/lib/roebe/documentation/lexer.rb +37 -0
  746. data/lib/roebe/documentation/libarchive.rb +91 -0
  747. data/lib/roebe/documentation/libburn.rb +44 -0
  748. data/lib/roebe/documentation/libui.md +62 -0
  749. data/lib/roebe/documentation/mail.rb +69 -0
  750. data/lib/roebe/documentation/marshal.rb +146 -0
  751. data/lib/roebe/documentation/math.rb +448 -0
  752. data/lib/roebe/documentation/matrix.rb +31 -0
  753. data/lib/roebe/documentation/mdreverse.rb +30 -0
  754. data/lib/roebe/documentation/mechanize.rb +213 -0
  755. data/lib/roebe/documentation/memcached.rb +35 -0
  756. data/lib/roebe/documentation/method_source.rb +30 -0
  757. data/lib/roebe/documentation/methods.rb +204 -0
  758. data/lib/roebe/documentation/midilib.rb +47 -0
  759. data/lib/roebe/documentation/mime.rb +33 -0
  760. data/lib/roebe/documentation/minitest.rb +61 -0
  761. data/lib/roebe/documentation/misc.rb +1353 -0
  762. data/lib/roebe/documentation/mkmf.md +95 -0
  763. data/lib/roebe/documentation/mkmf.rb +58 -0
  764. data/lib/roebe/documentation/module.rb +68 -0
  765. data/lib/roebe/documentation/mongrel.rb +98 -0
  766. data/lib/roebe/documentation/mp3info.rb +104 -0
  767. data/lib/roebe/documentation/mpd.rb +35 -0
  768. data/lib/roebe/documentation/mrplot.rb +84 -0
  769. data/lib/roebe/documentation/mruby.rb +36 -0
  770. data/lib/roebe/documentation/mutex.rb +56 -0
  771. data/lib/roebe/documentation/ncurses.rb +230 -0
  772. data/lib/roebe/documentation/network.rb +92 -0
  773. data/lib/roebe/documentation/nilclass.rb +25 -0
  774. data/lib/roebe/documentation/nokogiri.rb +48 -0
  775. data/lib/roebe/documentation/object.rb +232 -0
  776. data/lib/roebe/documentation/objectspace.rb +42 -0
  777. data/lib/roebe/documentation/observable.rb +26 -0
  778. data/lib/roebe/documentation/open3.rb +38 -0
  779. data/lib/roebe/documentation/open_uri.rb +68 -0
  780. data/lib/roebe/documentation/openid.rb +50 -0
  781. data/lib/roebe/documentation/openssl.rb +60 -0
  782. data/lib/roebe/documentation/openstruct.rb +62 -0
  783. data/lib/roebe/documentation/optparser.rb +216 -0
  784. data/lib/roebe/documentation/padrino.rb +22 -0
  785. data/lib/roebe/documentation/passenger.rb +24 -0
  786. data/lib/roebe/documentation/pathname.rb +85 -0
  787. data/lib/roebe/documentation/pdf.rb +382 -0
  788. data/lib/roebe/documentation/performance_in_ruby.md +29 -0
  789. data/lib/roebe/documentation/pp.rb +61 -0
  790. data/lib/roebe/documentation/prawn.md +213 -0
  791. data/lib/roebe/documentation/precedence.rb +46 -0
  792. data/lib/roebe/documentation/prime.rb +27 -0
  793. data/lib/roebe/documentation/proc.rb +116 -0
  794. data/lib/roebe/documentation/process.rb +231 -0
  795. data/lib/roebe/documentation/profiling.rb +85 -0
  796. data/lib/roebe/documentation/pry.rb +66 -0
  797. data/lib/roebe/documentation/pstore.rb +40 -0
  798. data/lib/roebe/documentation/psych.rb +27 -0
  799. data/lib/roebe/documentation/pty.rb +27 -0
  800. data/lib/roebe/documentation/puma.md +22 -0
  801. data/lib/roebe/documentation/rack.md +139 -0
  802. data/lib/roebe/documentation/ractor.md +13 -0
  803. data/lib/roebe/documentation/ragel.rb +32 -0
  804. data/lib/roebe/documentation/rake.rb +131 -0
  805. data/lib/roebe/documentation/ramaze.rb +79 -0
  806. data/lib/roebe/documentation/random.rb +36 -0
  807. data/lib/roebe/documentation/range.rb +45 -0
  808. data/lib/roebe/documentation/rational.rb +25 -0
  809. data/lib/roebe/documentation/rbconfig.rb +57 -0
  810. data/lib/roebe/documentation/rbenv.rb +39 -0
  811. data/lib/roebe/documentation/rdoc.rb +77 -0
  812. data/lib/roebe/documentation/readline.rb +289 -0
  813. data/lib/roebe/documentation/redcloth.rb +27 -0
  814. data/lib/roebe/documentation/redmine.rb +23 -0
  815. data/lib/roebe/documentation/refinements.rb +39 -0
  816. data/lib/roebe/documentation/regex.rb +534 -0
  817. data/lib/roebe/documentation/require_in_ruby.rb +39 -0
  818. data/lib/roebe/documentation/ripper.rb +59 -0
  819. data/lib/roebe/documentation/rspec.rb +43 -0
  820. data/lib/roebe/documentation/rtf.rb +77 -0
  821. data/lib/roebe/documentation/rubocop.rb +80 -0
  822. data/lib/roebe/documentation/ruby_c.rb +1989 -0
  823. data/lib/roebe/documentation/ruby_coding_guidelines.rb +177 -0
  824. data/lib/roebe/documentation/ruby_links.rb +100 -0
  825. data/lib/roebe/documentation/rubyvm.rb +37 -0
  826. data/lib/roebe/documentation/ruport.rb +36 -0
  827. data/lib/roebe/documentation/rvm.rb +31 -0
  828. data/lib/roebe/documentation/sdl.rb +204 -0
  829. data/lib/roebe/documentation/sequel.md +0 -0
  830. data/lib/roebe/documentation/set.rb +39 -0
  831. data/lib/roebe/documentation/shellwords.rb +50 -0
  832. data/lib/roebe/documentation/shoes.rb +30 -0
  833. data/lib/roebe/documentation/signal.rb +34 -0
  834. data/lib/roebe/documentation/singleton.rb +58 -0
  835. data/lib/roebe/documentation/slogans.rb +22 -0
  836. data/lib/roebe/documentation/slop.rb +44 -0
  837. data/lib/roebe/documentation/sockets.rb +129 -0
  838. data/lib/roebe/documentation/splat.rb +28 -0
  839. data/lib/roebe/documentation/spreadsheet.rb +152 -0
  840. data/lib/roebe/documentation/sqlite.rb +104 -0
  841. data/lib/roebe/documentation/statistics.rb +0 -0
  842. data/lib/roebe/documentation/stderr.rb +21 -0
  843. data/lib/roebe/documentation/stdin.rb +41 -0
  844. data/lib/roebe/documentation/stdout.rb +30 -0
  845. data/lib/roebe/documentation/string.rb +749 -0
  846. data/lib/roebe/documentation/stringio.rb +60 -0
  847. data/lib/roebe/documentation/stringscanner.rb +42 -0
  848. data/lib/roebe/documentation/struct.rb +63 -0
  849. data/lib/roebe/documentation/subclassing.rb +39 -0
  850. data/lib/roebe/documentation/symbols.rb +51 -0
  851. data/lib/roebe/documentation/system.rb +25 -0
  852. data/lib/roebe/documentation/systemu.rb +33 -0
  853. data/lib/roebe/documentation/tcpsocket.rb +36 -0
  854. data/lib/roebe/documentation/telnet.rb +50 -0
  855. data/lib/roebe/documentation/tempfile.rb +50 -0
  856. data/lib/roebe/documentation/thor.rb +41 -0
  857. data/lib/roebe/documentation/thread.rb +123 -0
  858. data/lib/roebe/documentation/time.rb +334 -0
  859. data/lib/roebe/documentation/tk.rb +475 -0
  860. data/lib/roebe/documentation/tracepoint.rb +28 -0
  861. data/lib/roebe/documentation/tty.md +9 -0
  862. data/lib/roebe/documentation/tty_prompt.rb +36 -0
  863. data/lib/roebe/documentation/unittest.rb +25 -0
  864. data/lib/roebe/documentation/unprintable_characters.rb +35 -0
  865. data/lib/roebe/documentation/watir.md +30 -0
  866. data/lib/roebe/documentation/webrick.md +194 -0
  867. data/lib/roebe/documentation/webrick.rb +151 -0
  868. data/lib/roebe/documentation/whois.rb +58 -0
  869. data/lib/roebe/documentation/windows.rb +329 -0
  870. data/lib/roebe/documentation/writeexcel.rb +61 -0
  871. data/lib/roebe/documentation/xml.rb +223 -0
  872. data/lib/roebe/documentation/xosd.rb +42 -0
  873. data/lib/roebe/documentation/yaml.rb +393 -0
  874. data/lib/roebe/documentation/yard.rb +69 -0
  875. data/lib/roebe/documentation/zip.rb +84 -0
  876. data/lib/roebe/documentation/zlib.rb +115 -0
  877. data/lib/roebe/dosbox/README.md +5 -0
  878. data/lib/roebe/dosbox/autoexec.conf +114 -0
  879. data/lib/roebe/dosbox/bios.conf +20 -0
  880. data/lib/roebe/dosbox/cpu.conf +42 -0
  881. data/lib/roebe/dosbox/cycles.conf +41 -0
  882. data/lib/roebe/dosbox/dos.conf +55 -0
  883. data/lib/roebe/dosbox/dosbox.conf +34 -0
  884. data/lib/roebe/dosbox/games.conf +37 -0
  885. data/lib/roebe/dosbox/generate_dosbox_config.rb +150 -0
  886. data/lib/roebe/dosbox/gus.conf +26 -0
  887. data/lib/roebe/dosbox/ipx.conf +14 -0
  888. data/lib/roebe/dosbox/keyboard.conf +17 -0
  889. data/lib/roebe/dosbox/midi.conf +18 -0
  890. data/lib/roebe/dosbox/mixer.conf +26 -0
  891. data/lib/roebe/dosbox/render.conf +31 -0
  892. data/lib/roebe/dosbox/sblaster.conf +38 -0
  893. data/lib/roebe/dosbox/sdl.conf +115 -0
  894. data/lib/roebe/dosbox/serial.conf +22 -0
  895. data/lib/roebe/dosbox/speaker.conf +20 -0
  896. data/lib/roebe/editors/README.md +2 -0
  897. data/lib/roebe/editors/ruby_nano.rb +88 -0
  898. data/lib/roebe/editors/vim_paradise/colours.rb +30 -0
  899. data/lib/roebe/editors/vim_paradise/constants.rb +113 -0
  900. data/lib/roebe/editors/vim_paradise/help.rb +37 -0
  901. data/lib/roebe/editors/vim_paradise/menu.rb +62 -0
  902. data/lib/roebe/editors/vim_paradise/run.rb +22 -0
  903. data/lib/roebe/editors/vim_paradise/vim_paradise.rb +630 -0
  904. data/lib/roebe/emoji/README.md +2 -0
  905. data/lib/roebe/emoji/emoji_table.rb +40 -0
  906. data/lib/roebe/encoding/encoding.rb +113 -0
  907. data/lib/roebe/extensions.rb +23 -0
  908. data/lib/roebe/gemrc/gemrc +19 -0
  909. data/lib/roebe/gui/cgi/interactive_caesar_cipher/interactive_caesar_cipher.cgi +56 -0
  910. data/lib/roebe/gui/cgi/md5_comparer/md5_comparer.cgi +83 -0
  911. data/lib/roebe/gui/glimmer/examples/001_hello_world.rb +8 -0
  912. data/lib/roebe/gui/glimmer/examples/002_basic_table_progress_bar.rb +29 -0
  913. data/lib/roebe/gui/glimmer/examples/003_form_table_example.rb +118 -0
  914. data/lib/roebe/gui/glimmer/microsoft_controller/microsoft_controller.rb +58 -0
  915. data/lib/roebe/gui/gtk2/code_generator/code_generator.config +6 -0
  916. data/lib/roebe/gui/gtk2/code_generator/code_generator.rb +39 -0
  917. data/lib/roebe/gui/gtk2/email/email.config +6 -0
  918. data/lib/roebe/gui/gtk2/email/email.rb +31 -0
  919. data/lib/roebe/gui/gtk2/ifconfig/ifconfig.rb +34 -0
  920. data/lib/roebe/gui/gtk2/send_email/send_email.rb +34 -0
  921. data/lib/roebe/gui/gtk2/show_aliases/show_aliases.rb +31 -0
  922. data/lib/roebe/gui/gtk2/show_ten_aliases/show_ten_aliases.rb +34 -0
  923. data/lib/roebe/gui/gtk2/world_capitals/capital_event_box.rb +18 -0
  924. data/lib/roebe/gui/gtk2/world_capitals/frame_for_world_capitals.rb +27 -0
  925. data/lib/roebe/gui/gtk2/world_capitals/world_capitals.rb +31 -0
  926. data/lib/roebe/gui/gtk3/code_generator/code_generator.rb +31 -0
  927. data/lib/roebe/gui/gtk3/email/email.rb +34 -0
  928. data/lib/roebe/gui/gtk3/ifconfig/ifconfig.rb +34 -0
  929. data/lib/roebe/gui/gtk3/interactive_caesar_cipher/interactive_caesar_cipher.rb +133 -0
  930. data/lib/roebe/gui/gtk3/md5_comparer/md5_comparer.rb +120 -0
  931. data/lib/roebe/gui/gtk3/send_email/send_email.rb +34 -0
  932. data/lib/roebe/gui/gtk3/shell/misc.rb +70 -0
  933. data/lib/roebe/gui/gtk3/shell/shell.rb +401 -0
  934. data/lib/roebe/gui/gtk3/show_aliases/show_aliases.rb +64 -0
  935. data/lib/roebe/gui/gtk3/show_ten_aliases/show_ten_aliases.rb +34 -0
  936. data/lib/roebe/gui/gtk3/system_widget/system_widget.rb +34 -0
  937. data/lib/roebe/gui/gtk3/task_viewer/task_viewer.rb +34 -0
  938. data/lib/roebe/gui/gtk3/todo_viewer/todo_viewer.rb +290 -0
  939. data/lib/roebe/gui/gtk3/wecker/wecker.rb +440 -0
  940. data/lib/roebe/gui/gtk3/wlan_information_center/README.md +9 -0
  941. data/lib/roebe/gui/gtk3/wlan_information_center/wlan_information_center.css +13 -0
  942. data/lib/roebe/gui/gtk3/wlan_information_center/wlan_information_center.rb +708 -0
  943. data/lib/roebe/gui/gtk3/world_capitals/capital_event_box.rb +24 -0
  944. data/lib/roebe/gui/gtk3/world_capitals/frame_for_world_capitals.rb +29 -0
  945. data/lib/roebe/gui/gtk3/world_capitals/world_capitals.rb +24 -0
  946. data/lib/roebe/gui/jruby/interactive_caesar_cipher/interactive_caesar_cipher.rb +112 -0
  947. data/lib/roebe/gui/libui/md5_comparer/md5_comparer.rb +89 -0
  948. data/lib/roebe/gui/libui/microsoft_controller/README.me +3 -0
  949. data/lib/roebe/gui/libui/microsoft_controller/microsoft_controller.rb +206 -0
  950. data/lib/roebe/gui/libui/rundll32/rundll32.rb +89 -0
  951. data/lib/roebe/gui/libui/shell/shell.rb +139 -0
  952. data/lib/roebe/gui/libui/show_aliases/show_aliases.rb +78 -0
  953. data/lib/roebe/gui/libui/show_ten_aliases/show_ten_aliases.rb +99 -0
  954. data/lib/roebe/gui/libui/todo_viewer/todo_viewer.rb +120 -0
  955. data/lib/roebe/gui/libui/wlan_interface/wlan_interface.rb +140 -0
  956. data/lib/roebe/gui/shared_code/code_generator/code_generator_module.rb +273 -0
  957. data/lib/roebe/gui/shared_code/email/email_module.rb +178 -0
  958. data/lib/roebe/gui/shared_code/ifconfig/ifconfig_module.rb +1168 -0
  959. data/lib/roebe/gui/shared_code/interactive_caesar_cipher/interactive_caesar_cipher_module.rb +135 -0
  960. data/lib/roebe/gui/shared_code/md5_comparer/md5_comparer_module.rb +244 -0
  961. data/lib/roebe/gui/shared_code/microsoft_controller/microsoft_controller_module.rb +215 -0
  962. data/lib/roebe/gui/shared_code/send_email/send_email.css +0 -0
  963. data/lib/roebe/gui/shared_code/send_email/send_email_module.rb +291 -0
  964. data/lib/roebe/gui/shared_code/shell/shell_module.rb +392 -0
  965. data/lib/roebe/gui/shared_code/show_aliases/show_aliases_module.rb +196 -0
  966. data/lib/roebe/gui/shared_code/show_ten_aliases/show_ten_aliases_module.rb +306 -0
  967. data/lib/roebe/gui/shared_code/system_widget/system_widget_module.rb +161 -0
  968. data/lib/roebe/gui/shared_code/task_viewer/task_viewer_module.rb +222 -0
  969. data/lib/roebe/gui/shared_code/wlan_interface/wlan_interface.css +13 -0
  970. data/lib/roebe/gui/shared_code/wlan_interface/wlan_interface_base.rb +0 -0
  971. data/lib/roebe/gui/shared_code/wlan_interface/wlan_interface_module.rb +0 -0
  972. data/lib/roebe/gui/shared_code/world_capitals/capital_event_box_module.rb +201 -0
  973. data/lib/roebe/gui/shared_code/world_capitals/frame_for_world_capitals_module.rb +84 -0
  974. data/lib/roebe/gui/shared_code/world_capitals/world_capitals_module.rb +276 -0
  975. data/lib/roebe/gui/sinatra/md5_comparer/md5_comparer.rb +108 -0
  976. data/lib/roebe/gui/swing/README.md +6 -0
  977. data/lib/roebe/gui/swing/interactive_caesar_cipher/InteractiveCaesarCipher.class +0 -0
  978. data/lib/roebe/gui/swing/interactive_caesar_cipher/InteractiveCaesarCipher.java +87 -0
  979. data/lib/roebe/gui/unified_widgets/README.md +5 -0
  980. data/lib/roebe/gui/unified_widgets/interactive_caesar_cipher/interactive_caesar_cipher.rb +137 -0
  981. data/lib/roebe/images/ROEBE_LOGO.png +0 -0
  982. data/lib/roebe/irb/README.md +3 -0
  983. data/lib/roebe/irb/irbrc +45 -0
  984. data/lib/roebe/irb/start_my_custom_irb.rb +88 -0
  985. data/lib/roebe/java_roebe/Ant.java +26 -0
  986. data/lib/roebe/java_roebe/EnglishToGerman.class +0 -0
  987. data/lib/roebe/java_roebe/EnglishToGerman.java +52 -0
  988. data/lib/roebe/java_roebe/MoveFile.class +0 -0
  989. data/lib/roebe/java_roebe/MoveFile.java +50 -0
  990. data/lib/roebe/java_roebe/MyIp.java +42 -0
  991. data/lib/roebe/java_roebe/RemoveLine.class +0 -0
  992. data/lib/roebe/java_roebe/RemoveLine.java +168 -0
  993. data/lib/roebe/java_roebe/ReturnRandomImage.class +0 -0
  994. data/lib/roebe/java_roebe/ReturnRandomImage.java +54 -0
  995. data/lib/roebe/java_roebe/SetBackground.class +0 -0
  996. data/lib/roebe/java_roebe/SetBackground.java +104 -0
  997. data/lib/roebe/java_roebe/ShowOnlyFiles.class +0 -0
  998. data/lib/roebe/java_roebe/ShowOnlyFiles.java +86 -0
  999. data/lib/roebe/java_roebe/ShowPrimeNumbers.class +0 -0
  1000. data/lib/roebe/java_roebe/ShowPrimeNumbers.java +75 -0
  1001. data/lib/roebe/java_roebe/TakeScreenshot.class +0 -0
  1002. data/lib/roebe/java_roebe/TakeScreenshot.java +126 -0
  1003. data/lib/roebe/java_roebe/TalesFromTheCrypt.class +0 -0
  1004. data/lib/roebe/java_roebe/TalesFromTheCrypt.java +128 -0
  1005. data/lib/roebe/java_roebe/ToBinary.class +0 -0
  1006. data/lib/roebe/java_roebe/ToBinary.java +21 -0
  1007. data/lib/roebe/java_roebe/ToBuy.java +94 -0
  1008. data/lib/roebe/java_roebe/ToTarBz2.class +0 -0
  1009. data/lib/roebe/java_roebe/ToTarBz2.java +57 -0
  1010. data/lib/roebe/java_roebe/Today.java +71 -0
  1011. data/lib/roebe/java_roebe/TodoOverview.class +0 -0
  1012. data/lib/roebe/java_roebe/TodoOverview.java +78 -0
  1013. data/lib/roebe/java_roebe/Translate.class +0 -0
  1014. data/lib/roebe/java_roebe/Translate.java +93 -0
  1015. data/lib/roebe/java_roebe/TwentyfourHoursNotation.class +0 -0
  1016. data/lib/roebe/java_roebe/TwentyfourHoursNotation.java +60 -0
  1017. data/lib/roebe/java_roebe/Undone.class +0 -0
  1018. data/lib/roebe/java_roebe/Undone.java +143 -0
  1019. data/lib/roebe/java_roebe/UnicodeSnowman.class +0 -0
  1020. data/lib/roebe/java_roebe/UnicodeSnowman.java +42 -0
  1021. data/lib/roebe/java_roebe/Upcaser.class +0 -0
  1022. data/lib/roebe/java_roebe/Upcaser.java +69 -0
  1023. data/lib/roebe/java_roebe/UploadToImgur.class +0 -0
  1024. data/lib/roebe/java_roebe/UploadToImgur.java +95 -0
  1025. data/lib/roebe/java_roebe/Wikipedia.class +0 -0
  1026. data/lib/roebe/java_roebe/Wikipedia.java +43 -0
  1027. data/lib/roebe/java_roebe/Zoll.class +0 -0
  1028. data/lib/roebe/java_roebe/Zoll.java +42 -0
  1029. data/lib/roebe/java_roebe/controller/ControllerWithCSSSupport$1.class +0 -0
  1030. data/lib/roebe/java_roebe/controller/ControllerWithCSSSupport.class +0 -0
  1031. data/lib/roebe/java_roebe/controller/ControllerWithCSSSupport.java +277 -0
  1032. data/lib/roebe/java_roebe/java_roebe/ShowPrimeNumbers.class +0 -0
  1033. data/lib/roebe/java_roebe/java_roebe/ShowPrimeNumbers.java +75 -0
  1034. data/lib/roebe/java_roebe/java_roebe/TakeScreenshot.class +0 -0
  1035. data/lib/roebe/java_roebe/java_roebe/TakeScreenshot.java +126 -0
  1036. data/lib/roebe/java_roebe/java_roebe/TalesFromTheCrypt.class +0 -0
  1037. data/lib/roebe/java_roebe/java_roebe/TalesFromTheCrypt.java +128 -0
  1038. data/lib/roebe/java_roebe/java_roebe/Zoll.class +0 -0
  1039. data/lib/roebe/java_roebe/java_roebe/Zoll.java +42 -0
  1040. data/lib/roebe/java_roebe/screenshot.png +0 -0
  1041. data/lib/roebe/java_roebe/show_the_content_of_this_directory/ShowTheContentOfThisDirectory.class +0 -0
  1042. data/lib/roebe/java_roebe/show_the_content_of_this_directory/ShowTheContentOfThisDirectory.java +50 -0
  1043. data/lib/roebe/jruby/jruby_enhancements.rb +18 -0
  1044. data/lib/roebe/jruby/swing/absolute_positioning_example.rb +75 -0
  1045. data/lib/roebe/jruby/swing/complete_windows_example.rb +90 -0
  1046. data/lib/roebe/jruby/swing/paint_demo.rb +37 -0
  1047. data/lib/roebe/jruby/swing/quit_button_example.rb +54 -0
  1048. data/lib/roebe/jruby/swing/simple_swing_example.rb +33 -0
  1049. data/lib/roebe/jruby/swing/tooltip_example.rb +90 -0
  1050. data/lib/roebe/jruby/swing/two_buttons_example.rb +62 -0
  1051. data/lib/roebe/linux/README.md +3 -0
  1052. data/lib/roebe/linux/linux.rb +106 -0
  1053. data/lib/roebe/linux/slackware/remove_pulseaudio.rb +34 -0
  1054. data/lib/roebe/linux/slackware/slackware.rb +122 -0
  1055. data/lib/roebe/math/README.md +4 -0
  1056. data/lib/roebe/math/anagram.rb +42 -0
  1057. data/lib/roebe/math/average_of_differences.rb +41 -0
  1058. data/lib/roebe/math/binning.rb +56 -0
  1059. data/lib/roebe/math/calculate_the_distance_between_two_points.rb +38 -0
  1060. data/lib/roebe/math/calculate_the_variance.rb +45 -0
  1061. data/lib/roebe/math/circle.rb +67 -0
  1062. data/lib/roebe/math/custom_math.rb +302 -0
  1063. data/lib/roebe/math/fact.rb +44 -0
  1064. data/lib/roebe/math/log10.rb +54 -0
  1065. data/lib/roebe/math/pi.rb +23 -0
  1066. data/lib/roebe/math/regel_von_sarrus.rb +70 -0
  1067. data/lib/roebe/math/traurige_oder_fr/303/266hliche_zahl.rb +47 -0
  1068. data/lib/roebe/math/zylinder.rb +59 -0
  1069. data/lib/roebe/mime_types/mime_types.rb +389 -0
  1070. data/lib/roebe/misc/README.md +1 -0
  1071. data/lib/roebe/misc/fluxbox_keys_file +117 -0
  1072. data/lib/roebe/misc/icewm_keys_file +88 -0
  1073. data/lib/roebe/misc/master_boot_record/master_boot_record +0 -0
  1074. data/lib/roebe/modules/as_uid.rb +61 -0
  1075. data/lib/roebe/modules/http_status_codes/constants.rb +105 -0
  1076. data/lib/roebe/modules/http_status_codes/http_status_codes.rb +59 -0
  1077. data/lib/roebe/modules/remove_html.rb +61 -0
  1078. data/lib/roebe/mouse/README.md +2 -0
  1079. data/lib/roebe/mouse/libffi_is_not_available.rb +70 -0
  1080. data/lib/roebe/mouse/mouse.rb +205 -0
  1081. data/lib/roebe/nano/README.md +42 -0
  1082. data/lib/roebe/nano/c.md +77 -0
  1083. data/lib/roebe/nano/cpp.md +68 -0
  1084. data/lib/roebe/nano/fasta.md +10 -0
  1085. data/lib/roebe/nano/general_settings.md +192 -0
  1086. data/lib/roebe/nano/html.md +7 -0
  1087. data/lib/roebe/nano/include.md +31 -0
  1088. data/lib/roebe/nano/java.md +31 -0
  1089. data/lib/roebe/nano/mail.md +36 -0
  1090. data/lib/roebe/nano/ml.md +21 -0
  1091. data/lib/roebe/nano/nano.cgi +23 -0
  1092. data/lib/roebe/nano/nanorc.md +16 -0
  1093. data/lib/roebe/nano/nexus.md +12 -0
  1094. data/lib/roebe/nano/opal.md +66 -0
  1095. data/lib/roebe/nano/patch_files.md +12 -0
  1096. data/lib/roebe/nano/perl.md +12 -0
  1097. data/lib/roebe/nano/php.md +25 -0
  1098. data/lib/roebe/nano/python.md +12 -0
  1099. data/lib/roebe/nano/ruby.md +122 -0
  1100. data/lib/roebe/nano/shell_scripts.md +15 -0
  1101. data/lib/roebe/nano/top.md +14 -0
  1102. data/lib/roebe/nano/yaml.md +70 -0
  1103. data/lib/roebe/nano/zzz_misc.md +13 -0
  1104. data/lib/roebe/no_colours.rb +7 -0
  1105. data/lib/roebe/pdf/README.md +1 -0
  1106. data/lib/roebe/pdf/prawn/all_in_one_showcasing_prawn.rb +160 -0
  1107. data/lib/roebe/project/project.rb +77 -0
  1108. data/lib/roebe/python/base/__pycache__/base.cpython-39.pyc +0 -0
  1109. data/lib/roebe/python/base/base.py +40 -0
  1110. data/lib/roebe/python/zoll.py +16 -0
  1111. data/lib/roebe/requires/basic_common_requires.rb +18 -0
  1112. data/lib/roebe/requires/colours.rb +7 -0
  1113. data/lib/roebe/requires/failsafe_require_of_beautiful_url.rb +12 -0
  1114. data/lib/roebe/requires/failsafe_require_of_opn.rb +12 -0
  1115. data/lib/roebe/requires/require_all_standalone_classes.rb +60 -0
  1116. data/lib/roebe/requires/require_all_standalone_modules.rb +61 -0
  1117. data/lib/roebe/requires/require_burn_iso.rb +5 -0
  1118. data/lib/roebe/requires/require_kde_konsole.rb +7 -0
  1119. data/lib/roebe/requires/require_menu_generator.rb +7 -0
  1120. data/lib/roebe/requires/require_remove_directory.rb +7 -0
  1121. data/lib/roebe/requires/require_ruby_header.rb +7 -0
  1122. data/lib/roebe/requires/require_the_browser_files.rb +11 -0
  1123. data/lib/roebe/requires/require_the_roebe_documentation.rb +11 -0
  1124. data/lib/roebe/requires/require_the_roebe_shell.rb +22 -0
  1125. data/lib/roebe/requires/require_the_run_class.rb +7 -0
  1126. data/lib/roebe/requires/require_the_toplevel_methods.rb +11 -0
  1127. data/lib/roebe/requires/require_the_whole_roebe_project.rb +75 -0
  1128. data/lib/roebe/requires/require_traverse_install.rb +7 -0
  1129. data/lib/roebe/requires/require_unicode.rb +31 -0
  1130. data/lib/roebe/setup/README.md +1 -0
  1131. data/lib/roebe/setup/setup.rb +1655 -0
  1132. data/lib/roebe/shell/README.md +3 -0
  1133. data/lib/roebe/shell/colours/colour_codes.rb +178 -0
  1134. data/lib/roebe/shell/colours/colours.rb +330 -0
  1135. data/lib/roebe/shell/commandline/commandline.rb +392 -0
  1136. data/lib/roebe/shell/configuration/configuration.rb +172 -0
  1137. data/lib/roebe/shell/gui/gtk3/vte_terminal_frame.rb +77 -0
  1138. data/lib/roebe/shell/help/colourized_help_line.rb +190 -0
  1139. data/lib/roebe/shell/help/documented_help_options.rb +254 -0
  1140. data/lib/roebe/shell/help/help.rb +105 -0
  1141. data/lib/roebe/shell/module_methods/anmeldung.rb +75 -0
  1142. data/lib/roebe/shell/module_methods/available_components.rb +78 -0
  1143. data/lib/roebe/shell/module_methods/benchmarks.rb +70 -0
  1144. data/lib/roebe/shell/module_methods/commandline_arguments.rb +35 -0
  1145. data/lib/roebe/shell/module_methods/encoding.rb +95 -0
  1146. data/lib/roebe/shell/module_methods/ftp.rb +65 -0
  1147. data/lib/roebe/shell/module_methods/generate_tab_completion.rb +96 -0
  1148. data/lib/roebe/shell/module_methods/home_directory.rb +108 -0
  1149. data/lib/roebe/shell/module_methods/main_file.rb +41 -0
  1150. data/lib/roebe/shell/module_methods/misc.rb +181 -0
  1151. data/lib/roebe/shell/module_methods/report_where_the_home_directory_can_be_found.rb +35 -0
  1152. data/lib/roebe/shell/module_methods/startup_time.rb +34 -0
  1153. data/lib/roebe/shell/project/project.rb +47 -0
  1154. data/lib/roebe/shell/session/session.rb +205 -0
  1155. data/lib/roebe/shell/shell/class_methods.rb +25 -0
  1156. data/lib/roebe/shell/shell/constants.rb +172 -0
  1157. data/lib/roebe/shell/shell/core/act_filetype_specific.rb +127 -0
  1158. data/lib/roebe/shell/shell/core/action.rb +42 -0
  1159. data/lib/roebe/shell/shell/core/add.rb +186 -0
  1160. data/lib/roebe/shell/shell/core/aliases.rb +161 -0
  1161. data/lib/roebe/shell/shell/core/all.rb +62 -0
  1162. data/lib/roebe/shell/shell/core/append.rb +113 -0
  1163. data/lib/roebe/shell/shell/core/archives.rb +76 -0
  1164. data/lib/roebe/shell/shell/core/arguments.rb +301 -0
  1165. data/lib/roebe/shell/shell/core/ascii.rb +127 -0
  1166. data/lib/roebe/shell/shell/core/assign.rb +141 -0
  1167. data/lib/roebe/shell/shell/core/audio.rb +482 -0
  1168. data/lib/roebe/shell/shell/core/autostart.rb +52 -0
  1169. data/lib/roebe/shell/shell/core/backup.rb +162 -0
  1170. data/lib/roebe/shell/shell/core/become.rb +41 -0
  1171. data/lib/roebe/shell/shell/core/birthdays.rb +42 -0
  1172. data/lib/roebe/shell/shell/core/browser.rb +278 -0
  1173. data/lib/roebe/shell/shell/core/buffer.rb +119 -0
  1174. data/lib/roebe/shell/shell/core/burning.rb +156 -0
  1175. data/lib/roebe/shell/shell/core/calculate.rb +77 -0
  1176. data/lib/roebe/shell/shell/core/call.rb +107 -0
  1177. data/lib/roebe/shell/shell/core/cat.rb +212 -0
  1178. data/lib/roebe/shell/shell/core/change_directory.rb +307 -0
  1179. data/lib/roebe/shell/shell/core/checks.rb +149 -0
  1180. data/lib/roebe/shell/shell/core/chmod.rb +54 -0
  1181. data/lib/roebe/shell/shell/core/clear_and_purge.rb +105 -0
  1182. data/lib/roebe/shell/shell/core/cliner.rb +36 -0
  1183. data/lib/roebe/shell/shell/core/clipboard.rb +45 -0
  1184. data/lib/roebe/shell/shell/core/collapse.rb +53 -0
  1185. data/lib/roebe/shell/shell/core/compile.rb +230 -0
  1186. data/lib/roebe/shell/shell/core/configuration.rb +532 -0
  1187. data/lib/roebe/shell/shell/core/conversions.rb +358 -0
  1188. data/lib/roebe/shell/shell/core/copy.rb +302 -0
  1189. data/lib/roebe/shell/shell/core/count.rb +76 -0
  1190. data/lib/roebe/shell/shell/core/cracks.rb +61 -0
  1191. data/lib/roebe/shell/shell/core/create.rb +410 -0
  1192. data/lib/roebe/shell/shell/core/cut.rb +207 -0
  1193. data/lib/roebe/shell/shell/core/debug.rb +125 -0
  1194. data/lib/roebe/shell/shell/core/defaults.rb +23 -0
  1195. data/lib/roebe/shell/shell/core/delay.rb +34 -0
  1196. data/lib/roebe/shell/shell/core/directory_actions.rb +241 -0
  1197. data/lib/roebe/shell/shell/core/disable.rb +468 -0
  1198. data/lib/roebe/shell/shell/core/documentation.rb +308 -0
  1199. data/lib/roebe/shell/shell/core/downcase.rb +45 -0
  1200. data/lib/roebe/shell/shell/core/download.rb +164 -0
  1201. data/lib/roebe/shell/shell/core/dump.rb +47 -0
  1202. data/lib/roebe/shell/shell/core/e.rb +70 -0
  1203. data/lib/roebe/shell/shell/core/editor.rb +373 -0
  1204. data/lib/roebe/shell/shell/core/email.rb +56 -0
  1205. data/lib/roebe/shell/shell/core/empty.rb +57 -0
  1206. data/lib/roebe/shell/shell/core/enable.rb +365 -0
  1207. data/lib/roebe/shell/shell/core/english.rb +47 -0
  1208. data/lib/roebe/shell/shell/core/ensure.rb +42 -0
  1209. data/lib/roebe/shell/shell/core/env.rb +141 -0
  1210. data/lib/roebe/shell/shell/core/escape_shell_characters.rb +25 -0
  1211. data/lib/roebe/shell/shell/core/esystem.rb +133 -0
  1212. data/lib/roebe/shell/shell/core/exit.rb +52 -0
  1213. data/lib/roebe/shell/shell/core/extract.rb +130 -0
  1214. data/lib/roebe/shell/shell/core/fetch.rb +68 -0
  1215. data/lib/roebe/shell/shell/core/file_actions.rb +271 -0
  1216. data/lib/roebe/shell/shell/core/find_and_search.rb +225 -0
  1217. data/lib/roebe/shell/shell/core/ftp.rb +224 -0
  1218. data/lib/roebe/shell/shell/core/gems.rb +101 -0
  1219. data/lib/roebe/shell/shell/core/generate.rb +460 -0
  1220. data/lib/roebe/shell/shell/core/get_file_listing.rb +230 -0
  1221. data/lib/roebe/shell/shell/core/get_var.rb +136 -0
  1222. data/lib/roebe/shell/shell/core/gist.rb +72 -0
  1223. data/lib/roebe/shell/shell/core/glob.rb +65 -0
  1224. data/lib/roebe/shell/shell/core/google.rb +36 -0
  1225. data/lib/roebe/shell/shell/core/hardware.rb +90 -0
  1226. data/lib/roebe/shell/shell/core/help.rb +451 -0
  1227. data/lib/roebe/shell/shell/core/history.rb +253 -0
  1228. data/lib/roebe/shell/shell/core/hostname.rb +21 -0
  1229. data/lib/roebe/shell/shell/core/images.rb +110 -0
  1230. data/lib/roebe/shell/shell/core/information.rb +143 -0
  1231. data/lib/roebe/shell/shell/core/install.rb +303 -0
  1232. data/lib/roebe/shell/shell/core/irb.rb +39 -0
  1233. data/lib/roebe/shell/shell/core/irc.rb +55 -0
  1234. data/lib/roebe/shell/shell/core/is.rb +72 -0
  1235. data/lib/roebe/shell/shell/core/iso.rb +225 -0
  1236. data/lib/roebe/shell/shell/core/jumpers.rb +41 -0
  1237. data/lib/roebe/shell/shell/core/log.rb +42 -0
  1238. data/lib/roebe/shell/shell/core/make.rb +83 -0
  1239. data/lib/roebe/shell/shell/core/merge.rb +133 -0
  1240. data/lib/roebe/shell/shell/core/misc.rb +1220 -0
  1241. data/lib/roebe/shell/shell/core/mode.rb +63 -0
  1242. data/lib/roebe/shell/shell/core/mount.rb +123 -0
  1243. data/lib/roebe/shell/shell/core/move.rb +64 -0
  1244. data/lib/roebe/shell/shell/core/open.rb +198 -0
  1245. data/lib/roebe/shell/shell/core/optimize.rb +63 -0
  1246. data/lib/roebe/shell/shell/core/passwords.rb +38 -0
  1247. data/lib/roebe/shell/shell/core/path.rb +156 -0
  1248. data/lib/roebe/shell/shell/core/pdf.rb +73 -0
  1249. data/lib/roebe/shell/shell/core/personal.rb +108 -0
  1250. data/lib/roebe/shell/shell/core/phone.rb +49 -0
  1251. data/lib/roebe/shell/shell/core/pid.rb +118 -0
  1252. data/lib/roebe/shell/shell/core/ping.rb +53 -0
  1253. data/lib/roebe/shell/shell/core/pkgconfig.rb +44 -0
  1254. data/lib/roebe/shell/shell/core/play.rb +244 -0
  1255. data/lib/roebe/shell/shell/core/popup.rb +55 -0
  1256. data/lib/roebe/shell/shell/core/printing.rb +27 -0
  1257. data/lib/roebe/shell/shell/core/protect.rb +176 -0
  1258. data/lib/roebe/shell/shell/core/queries.rb +204 -0
  1259. data/lib/roebe/shell/shell/core/question_answer.rb +97 -0
  1260. data/lib/roebe/shell/shell/core/random.rb +107 -0
  1261. data/lib/roebe/shell/shell/core/rbt.rb +69 -0
  1262. data/lib/roebe/shell/shell/core/read_file.rb +102 -0
  1263. data/lib/roebe/shell/shell/core/record.rb +94 -0
  1264. data/lib/roebe/shell/shell/core/register.rb +65 -0
  1265. data/lib/roebe/shell/shell/core/reload.rb +189 -0
  1266. data/lib/roebe/shell/shell/core/remove.rb +351 -0
  1267. data/lib/roebe/shell/shell/core/repackage.rb +34 -0
  1268. data/lib/roebe/shell/shell/core/repair.rb +99 -0
  1269. data/lib/roebe/shell/shell/core/repeat.rb +78 -0
  1270. data/lib/roebe/shell/shell/core/replace.rb +130 -0
  1271. data/lib/roebe/shell/shell/core/replay.rb +38 -0
  1272. data/lib/roebe/shell/shell/core/require.rb +101 -0
  1273. data/lib/roebe/shell/shell/core/ruby.rb +82 -0
  1274. data/lib/roebe/shell/shell/core/save.rb +127 -0
  1275. data/lib/roebe/shell/shell/core/scp.rb +75 -0
  1276. data/lib/roebe/shell/shell/core/screenshot.rb +98 -0
  1277. data/lib/roebe/shell/shell/core/serve.rb +221 -0
  1278. data/lib/roebe/shell/shell/core/set.rb +241 -0
  1279. data/lib/roebe/shell/shell/core/set_file_listing.rb +33 -0
  1280. data/lib/roebe/shell/shell/core/shellrc_file.rb +57 -0
  1281. data/lib/roebe/shell/shell/core/show_display_feedback_and_report.rb +2347 -0
  1282. data/lib/roebe/shell/shell/core/sleep.rb +63 -0
  1283. data/lib/roebe/shell/shell/core/sort.rb +47 -0
  1284. data/lib/roebe/shell/shell/core/split.rb +68 -0
  1285. data/lib/roebe/shell/shell/core/start.rb +111 -0
  1286. data/lib/roebe/shell/shell/core/stat.rb +111 -0
  1287. data/lib/roebe/shell/shell/core/strip.rb +47 -0
  1288. data/lib/roebe/shell/shell/core/switch.rb +69 -0
  1289. data/lib/roebe/shell/shell/core/symlink.rb +79 -0
  1290. data/lib/roebe/shell/shell/core/tab.rb +83 -0
  1291. data/lib/roebe/shell/shell/core/tasks.rb +93 -0
  1292. data/lib/roebe/shell/shell/core/tell_us_whether_this_program_exists.rb +45 -0
  1293. data/lib/roebe/shell/shell/core/test.rb +56 -0
  1294. data/lib/roebe/shell/shell/core/time.rb +72 -0
  1295. data/lib/roebe/shell/shell/core/toggle.rb +186 -0
  1296. data/lib/roebe/shell/shell/core/trainer.rb +72 -0
  1297. data/lib/roebe/shell/shell/core/translate.rb +53 -0
  1298. data/lib/roebe/shell/shell/core/treeview.rb +42 -0
  1299. data/lib/roebe/shell/shell/core/trigger.rb +54 -0
  1300. data/lib/roebe/shell/shell/core/unalias.rb +47 -0
  1301. data/lib/roebe/shell/shell/core/undo.rb +71 -0
  1302. data/lib/roebe/shell/shell/core/upcase.rb +58 -0
  1303. data/lib/roebe/shell/shell/core/update.rb +189 -0
  1304. data/lib/roebe/shell/shell/core/upload.rb +137 -0
  1305. data/lib/roebe/shell/shell/core/url.rb +168 -0
  1306. data/lib/roebe/shell/shell/core/use.rb +58 -0
  1307. data/lib/roebe/shell/shell/core/variables.rb +86 -0
  1308. data/lib/roebe/shell/shell/core/video.rb +288 -0
  1309. data/lib/roebe/shell/shell/core/watch.rb +45 -0
  1310. data/lib/roebe/shell/shell/core/webrick.rb +135 -0
  1311. data/lib/roebe/shell/shell/core/wecker.rb +53 -0
  1312. data/lib/roebe/shell/shell/core/whoami.rb +23 -0
  1313. data/lib/roebe/shell/shell/core/windows.rb +251 -0
  1314. data/lib/roebe/shell/shell/core/wlan.rb +22 -0
  1315. data/lib/roebe/shell/shell/core/yaml.rb +87 -0
  1316. data/lib/roebe/shell/shell/menu.rb +7974 -0
  1317. data/lib/roebe/shell/shell/misc.rb +293 -0
  1318. data/lib/roebe/shell/shell/reset.rb +297 -0
  1319. data/lib/roebe/shell/shell/shell.rb +2153 -0
  1320. data/lib/roebe/shell/shellrc_parser/shellrc_parser.rb +276 -0
  1321. data/lib/roebe/shell/standalone_classes/time_converter.rb +86 -0
  1322. data/lib/roebe/shell/standalone_classes/todo.rb +100 -0
  1323. data/lib/roebe/shell/yaml/configuration/autoconvert_numbers.yml +1 -0
  1324. data/lib/roebe/shell/yaml/configuration/be_verbose.yml +1 -0
  1325. data/lib/roebe/shell/yaml/configuration/cd_burn_program.yml +1 -0
  1326. data/lib/roebe/shell/yaml/configuration/check_for_isos.yml +1 -0
  1327. data/lib/roebe/shell/yaml/configuration/check_upcoming_exams.yml +1 -0
  1328. data/lib/roebe/shell/yaml/configuration/collapse.yml +1 -0
  1329. data/lib/roebe/shell/yaml/configuration/colours.yml +10 -0
  1330. data/lib/roebe/shell/yaml/configuration/debug.yml +1 -0
  1331. data/lib/roebe/shell/yaml/configuration/default_browser_location.yml +1 -0
  1332. data/lib/roebe/shell/yaml/configuration/default_delay.yml +1 -0
  1333. data/lib/roebe/shell/yaml/configuration/default_file_action.yml +1 -0
  1334. data/lib/roebe/shell/yaml/configuration/dictionaries.yml +2 -0
  1335. data/lib/roebe/shell/yaml/configuration/display_index.yml +1 -0
  1336. data/lib/roebe/shell/yaml/configuration/do_show_modification_time.yml +1 -0
  1337. data/lib/roebe/shell/yaml/configuration/dvd_burn_program.yml +1 -0
  1338. data/lib/roebe/shell/yaml/configuration/editor.yml +1 -0
  1339. data/lib/roebe/shell/yaml/configuration/enter_extracted_directory.yml +1 -0
  1340. data/lib/roebe/shell/yaml/configuration/events.yml +2 -0
  1341. data/lib/roebe/shell/yaml/configuration/guess_directory_name.yml +1 -0
  1342. data/lib/roebe/shell/yaml/configuration/jumper_directories.yml +9 -0
  1343. data/lib/roebe/shell/yaml/configuration/last_directory.yml +1 -0
  1344. data/lib/roebe/shell/yaml/configuration/logfile_for_history.yml +1 -0
  1345. data/lib/roebe/shell/yaml/configuration/may_we_generate_file_skeleton.yml +1 -0
  1346. data/lib/roebe/shell/yaml/configuration/may_we_use_ftp.yml +1 -0
  1347. data/lib/roebe/shell/yaml/configuration/mplayer_favourite_files.yml +1 -0
  1348. data/lib/roebe/shell/yaml/configuration/official_release.yml +1 -0
  1349. data/lib/roebe/shell/yaml/configuration/open_downloaded_pdf_files_at_once.yml +1 -0
  1350. data/lib/roebe/shell/yaml/configuration/operating_system.yml +1 -0
  1351. data/lib/roebe/shell/yaml/configuration/padding.yml +1 -0
  1352. data/lib/roebe/shell/yaml/configuration/pdf_viewer.yml +1 -0
  1353. data/lib/roebe/shell/yaml/configuration/preferred_encoding.yml +1 -0
  1354. data/lib/roebe/shell/yaml/configuration/protected_directories.yml +8 -0
  1355. data/lib/roebe/shell/yaml/configuration/remove_globbed_files.yml +1 -0
  1356. data/lib/roebe/shell/yaml/configuration/run_simulation.yml +1 -0
  1357. data/lib/roebe/shell/yaml/configuration/shall_we_log_the_user_input_history.yml +1 -0
  1358. data/lib/roebe/shell/yaml/configuration/shell_name.yml +1 -0
  1359. data/lib/roebe/shell/yaml/configuration/shell_prompt.yml +1 -0
  1360. data/lib/roebe/shell/yaml/configuration/shorten_directory_names.yml +1 -0
  1361. data/lib/roebe/shell/yaml/configuration/show_absolute_path.yml +1 -0
  1362. data/lib/roebe/shell/yaml/configuration/show_condensed_permissions.yml +1 -0
  1363. data/lib/roebe/shell/yaml/configuration/show_hidden_files.yml +1 -0
  1364. data/lib/roebe/shell/yaml/configuration/show_n_lines.yml +1 -0
  1365. data/lib/roebe/shell/yaml/configuration/simplified.yml +1 -0
  1366. data/lib/roebe/shell/yaml/configuration/stop_on_missing_symlink.yml +1 -0
  1367. data/lib/roebe/shell/yaml/configuration/title_renamer.yml +1 -0
  1368. data/lib/roebe/shell/yaml/configuration/translate_unknown_words.yml +1 -0
  1369. data/lib/roebe/shell/yaml/configuration/truncate_long_file_names.yml +1 -0
  1370. data/lib/roebe/shell/yaml/configuration/upload_screenshots.yml +1 -0
  1371. data/lib/roebe/shell/yaml/configuration/use_aliases.yml +1 -0
  1372. data/lib/roebe/shell/yaml/configuration/use_colours.yml +1 -0
  1373. data/lib/roebe/shell/yaml/configuration/use_dictionary.yml +1 -0
  1374. data/lib/roebe/shell/yaml/configuration/use_irb_drop.yml +1 -0
  1375. data/lib/roebe/shell/yaml/configuration/use_irc.yml +1 -0
  1376. data/lib/roebe/shell/yaml/configuration/use_konsole_colours.yml +1 -0
  1377. data/lib/roebe/shell/yaml/configuration/use_readline.yml +1 -0
  1378. data/lib/roebe/shell/yaml/configuration/video_collection.yml +1 -0
  1379. data/lib/roebe/shell/yaml/configuration/video_player.yml +1 -0
  1380. data/lib/roebe/shell/yaml/configuration/which_bin_shell_to_use.yml +1 -0
  1381. data/lib/roebe/shell/yaml/configuration/which_shell.yml +1 -0
  1382. data/lib/roebe/shell/yaml/default_apps.yml +7 -0
  1383. data/lib/roebe/shell/yaml/ignore_these_last_commands.yml +12 -0
  1384. data/lib/roebe/shell/yaml/lazy_load_these_components.yml +51 -0
  1385. data/lib/roebe/shell_scripts/README.md +13 -0
  1386. data/lib/roebe/shell_scripts/bashrc +39 -0
  1387. data/lib/roebe/shell_scripts/check_bootloader.sh +30 -0
  1388. data/lib/roebe/shell_scripts/cliner.sh +98 -0
  1389. data/lib/roebe/shell_scripts/colour_grey_matrix.sh +7 -0
  1390. data/lib/roebe/shell_scripts/coloured_calendar.sh +25 -0
  1391. data/lib/roebe/shell_scripts/compile_ruby.sh +58 -0
  1392. data/lib/roebe/shell_scripts/completion_for_rf.sh +1065 -0
  1393. data/lib/roebe/shell_scripts/count_down.sh +13 -0
  1394. data/lib/roebe/shell_scripts/create_new_file.sh +25 -0
  1395. data/lib/roebe/shell_scripts/custom_prompts.sh +39 -0
  1396. data/lib/roebe/shell_scripts/do_install.sh +24 -0
  1397. data/lib/roebe/shell_scripts/do_stripped_install.sh +22 -0
  1398. data/lib/roebe/shell_scripts/echo_loop_example.sh +4 -0
  1399. data/lib/roebe/shell_scripts/extname.sh +21 -0
  1400. data/lib/roebe/shell_scripts/extract.sh +42 -0
  1401. data/lib/roebe/shell_scripts/extract_archive.sh +59 -0
  1402. data/lib/roebe/shell_scripts/first_character.sh +31 -0
  1403. data/lib/roebe/shell_scripts/how_to_obtain_user_input.sh +17 -0
  1404. data/lib/roebe/shell_scripts/install_base_roebe.sh +41 -0
  1405. data/lib/roebe/shell_scripts/lfs/001_binutils_1.sh +19 -0
  1406. data/lib/roebe/shell_scripts/lfs/002_gcc_1.sh +36 -0
  1407. data/lib/roebe/shell_scripts/lfs/003_linux_1.sh +24 -0
  1408. data/lib/roebe/shell_scripts/lfs/004_glibc_1.sh +42 -0
  1409. data/lib/roebe/shell_scripts/lfs/005_libstdc++_1.sh +25 -0
  1410. data/lib/roebe/shell_scripts/lfs/006_m4_2.sh +22 -0
  1411. data/lib/roebe/shell_scripts/lfs/007_ncurses_2.sh +39 -0
  1412. data/lib/roebe/shell_scripts/lfs/008_bash_2.sh +21 -0
  1413. data/lib/roebe/shell_scripts/lfs/009_coreutils_2.sh +25 -0
  1414. data/lib/roebe/shell_scripts/lfs/010_diffutils_2.sh +20 -0
  1415. data/lib/roebe/shell_scripts/lfs/011_file_2.sh +25 -0
  1416. data/lib/roebe/shell_scripts/lfs/012_findutils_2.sh +20 -0
  1417. data/lib/roebe/shell_scripts/lfs/013_gawk_2.sh +21 -0
  1418. data/lib/roebe/shell_scripts/lfs/014_grep_2.sh +20 -0
  1419. data/lib/roebe/shell_scripts/lfs/015_gzip_2.sh +20 -0
  1420. data/lib/roebe/shell_scripts/lfs/016_make_2.sh +20 -0
  1421. data/lib/roebe/shell_scripts/lfs/017_patch_2.sh +17 -0
  1422. data/lib/roebe/shell_scripts/lfs/018_sed_2.sh +19 -0
  1423. data/lib/roebe/shell_scripts/lfs/019_tar_2.sh +16 -0
  1424. data/lib/roebe/shell_scripts/lfs/020_xz_2.sh +15 -0
  1425. data/lib/roebe/shell_scripts/lfs/021_binutils_2.sh +30 -0
  1426. data/lib/roebe/shell_scripts/lfs/022_gcc_2.sh +50 -0
  1427. data/lib/roebe/shell_scripts/lfs/README.md +28 -0
  1428. data/lib/roebe/shell_scripts/lfs/lfs_build_variables.sh +247 -0
  1429. data/lib/roebe/shell_scripts/lfs/lfs_variables.sh +31 -0
  1430. data/lib/roebe/shell_scripts/lfs/libstdc++_2.sh +20 -0
  1431. data/lib/roebe/shell_scripts/lfs/ruby_2.sh +11 -0
  1432. data/lib/roebe/shell_scripts/list_colours.sh +25 -0
  1433. data/lib/roebe/shell_scripts/locales.sh +15 -0
  1434. data/lib/roebe/shell_scripts/loop_example.sh +5 -0
  1435. data/lib/roebe/shell_scripts/lower.sh +21 -0
  1436. data/lib/roebe/shell_scripts/misc.sh +327 -0
  1437. data/lib/roebe/shell_scripts/musl_cross_compiler.sh +178 -0
  1438. data/lib/roebe/shell_scripts/no_caps.sh +16 -0
  1439. data/lib/roebe/shell_scripts/number_guessing_game.sh +37 -0
  1440. data/lib/roebe/shell_scripts/parameters_example.sh +58 -0
  1441. data/lib/roebe/shell_scripts/query_parameters.sh +58 -0
  1442. data/lib/roebe/shell_scripts/remove_broken_symlinks_in_the_current_working_directory.sh +1 -0
  1443. data/lib/roebe/shell_scripts/reset_path.sh +15 -0
  1444. data/lib/roebe/shell_scripts/return_random_file.sh +20 -0
  1445. data/lib/roebe/shell_scripts/shell_file_containing_the_html_colours.sh +148 -0
  1446. data/lib/roebe/shell_scripts/show_semigraphic_characters.sh +14 -0
  1447. data/lib/roebe/shell_scripts/show_site_ruby.sh +15 -0
  1448. data/lib/roebe/shell_scripts/source_in_all_completions.sh +9 -0
  1449. data/lib/roebe/shell_scripts/true_ata.sh +34 -0
  1450. data/lib/roebe/shell_scripts/truecolour_line.sh +13 -0
  1451. data/lib/roebe/shell_scripts/zenity_count_to_100.sh +5 -0
  1452. data/lib/roebe/sinatra/README.md +6 -0
  1453. data/lib/roebe/sinatra/erb_example/erb_example.erb +10 -0
  1454. data/lib/roebe/sinatra/erb_example/erb_example.rb +13 -0
  1455. data/lib/roebe/sinatra/inline_template_example/inline_template_example.rb +27 -0
  1456. data/lib/roebe/sinatra/modify_http_response_headers_example/modify_http_response_headers_example.rb +13 -0
  1457. data/lib/roebe/sinatra/multi_urls/multi_urls.rb +29 -0
  1458. data/lib/roebe/sinatra/optional_route.rb +19 -0
  1459. data/lib/roebe/sinatra/query_the_name/query_the_name.rb +7 -0
  1460. data/lib/roebe/sinatra/rock_paper_and_scissors_example/rock_paper_and_scissors_example.rb +51 -0
  1461. data/lib/roebe/sinatra/route_definition_examples/route_definition_examples.rb +25 -0
  1462. data/lib/roebe/sinatra/send_file_example/send_file_example.rb +54 -0
  1463. data/lib/roebe/sinatra/session_counter/session_counter.rb +53 -0
  1464. data/lib/roebe/sinatra/show_the_environment_variables/show_the_environment_variables.rb +9 -0
  1465. data/lib/roebe/sinatra/simple_authentication/simple_authentication.rb +25 -0
  1466. data/lib/roebe/sinatra/simple_hello_world/simple_hello_world.rb +5 -0
  1467. data/lib/roebe/sinatra/sinatra_authentication_example/sinatra_authentication_example.rb +117 -0
  1468. data/lib/roebe/sinatra/sinatra_example_with_rack_component/sinatra_example_with_rack_component.rb +15 -0
  1469. data/lib/roebe/sinatra/subclassing_sinatra_example/subclassing_sinatra_example.rb +19 -0
  1470. data/lib/roebe/snippets/README.md +1 -0
  1471. data/lib/roebe/snippets/first_argument.rb +5 -0
  1472. data/lib/roebe/snippets/obtain_all_descendants.rb +25 -0
  1473. data/lib/roebe/sql_paradise/commands.rb +604 -0
  1474. data/lib/roebe/sql_paradise/create_database.rb +43 -0
  1475. data/lib/roebe/sql_paradise/create_table.rb +47 -0
  1476. data/lib/roebe/sql_paradise/insert_into.rb +77 -0
  1477. data/lib/roebe/sql_paradise/sql_command.rb +22 -0
  1478. data/lib/roebe/sql_paradise/sql_paradise.rb +181 -0
  1479. data/lib/roebe/time/README.md +6 -0
  1480. data/lib/roebe/time/seconds.rb +71 -0
  1481. data/lib/roebe/time/time.rb +117 -0
  1482. data/lib/roebe/toplevel_methods/arrow_keys.rb +37 -0
  1483. data/lib/roebe/toplevel_methods/ascii_paradise.rb +23 -0
  1484. data/lib/roebe/toplevel_methods/autoprune.rb +40 -0
  1485. data/lib/roebe/toplevel_methods/background.rb +90 -0
  1486. data/lib/roebe/toplevel_methods/base64.rb +37 -0
  1487. data/lib/roebe/toplevel_methods/beautify_system.rb +25 -0
  1488. data/lib/roebe/toplevel_methods/blinking_cursor.rb +88 -0
  1489. data/lib/roebe/toplevel_methods/boku_opening_times.rb +30 -0
  1490. data/lib/roebe/toplevel_methods/build_all_my_local_gems.rb +39 -0
  1491. data/lib/roebe/toplevel_methods/bundle_exam_results.rb +48 -0
  1492. data/lib/roebe/toplevel_methods/c_debug.rb +22 -0
  1493. data/lib/roebe/toplevel_methods/calculate_bmi.rb +41 -0
  1494. data/lib/roebe/toplevel_methods/calculate_hypotenuse.rb +26 -0
  1495. data/lib/roebe/toplevel_methods/chained.rb +19 -0
  1496. data/lib/roebe/toplevel_methods/chdir.rb +44 -0
  1497. data/lib/roebe/toplevel_methods/check_whether_an_internet_connection_is_available.rb +38 -0
  1498. data/lib/roebe/toplevel_methods/chroot.rb +170 -0
  1499. data/lib/roebe/toplevel_methods/cliner.rb +69 -0
  1500. data/lib/roebe/toplevel_methods/colourize_files_and_directories.rb +69 -0
  1501. data/lib/roebe/toplevel_methods/colourized_tokenitor.rb +56 -0
  1502. data/lib/roebe/toplevel_methods/convert_global_env.rb +34 -0
  1503. data/lib/roebe/toplevel_methods/copy_setup_rb_file.rb +27 -0
  1504. data/lib/roebe/toplevel_methods/copy_the_linux_kernel.rb +38 -0
  1505. data/lib/roebe/toplevel_methods/cp_to_here.rb +34 -0
  1506. data/lib/roebe/toplevel_methods/crazy_make_mode.rb +70 -0
  1507. data/lib/roebe/toplevel_methods/create_directory.rb +35 -0
  1508. data/lib/roebe/toplevel_methods/create_directory_layout.rb +58 -0
  1509. data/lib/roebe/toplevel_methods/create_this_c_file.rb +36 -0
  1510. data/lib/roebe/toplevel_methods/disable.rb +27 -0
  1511. data/lib/roebe/toplevel_methods/display_array.rb +97 -0
  1512. data/lib/roebe/toplevel_methods/display_mbr.rb +33 -0
  1513. data/lib/roebe/toplevel_methods/does_this_program_exist.rb +57 -0
  1514. data/lib/roebe/toplevel_methods/does_this_terminal_support_unicode.rb +27 -0
  1515. data/lib/roebe/toplevel_methods/downcase_all_entries_in_the_current_directory.rb +43 -0
  1516. data/lib/roebe/toplevel_methods/download_certdata.rb +29 -0
  1517. data/lib/roebe/toplevel_methods/download_emojis.rb +48 -0
  1518. data/lib/roebe/toplevel_methods/e.rb +33 -0
  1519. data/lib/roebe/toplevel_methods/editor.rb +47 -0
  1520. data/lib/roebe/toplevel_methods/enable.rb +27 -0
  1521. data/lib/roebe/toplevel_methods/env.rb +40 -0
  1522. data/lib/roebe/toplevel_methods/esystem.rb +22 -0
  1523. data/lib/roebe/toplevel_methods/extract.rb +53 -0
  1524. data/lib/roebe/toplevel_methods/fibonacci.rb +104 -0
  1525. data/lib/roebe/toplevel_methods/files.rb +350 -0
  1526. data/lib/roebe/toplevel_methods/generate_konsole_css_file.rb +82 -0
  1527. data/lib/roebe/toplevel_methods/grab_colour.rb +31 -0
  1528. data/lib/roebe/toplevel_methods/halloween.rb +104 -0
  1529. data/lib/roebe/toplevel_methods/hello_world.rb +28 -0
  1530. data/lib/roebe/toplevel_methods/heredocs.rb +28 -0
  1531. data/lib/roebe/toplevel_methods/hostname.rb +38 -0
  1532. data/lib/roebe/toplevel_methods/human_readable.rb +41 -0
  1533. data/lib/roebe/toplevel_methods/images.rb +28 -0
  1534. data/lib/roebe/toplevel_methods/important_pdf_files.rb +131 -0
  1535. data/lib/roebe/toplevel_methods/increase_volume.rb +19 -0
  1536. data/lib/roebe/toplevel_methods/install_and_update_rcfiles.rb +26 -0
  1537. data/lib/roebe/toplevel_methods/install_linux_kernel_api_headers.rb +50 -0
  1538. data/lib/roebe/toplevel_methods/install_nss.rb +52 -0
  1539. data/lib/roebe/toplevel_methods/install_roebe_addons.rb +68 -0
  1540. data/lib/roebe/toplevel_methods/install_rust.rb +27 -0
  1541. data/lib/roebe/toplevel_methods/install_the_cascadia_font.rb +59 -0
  1542. data/lib/roebe/toplevel_methods/install_the_hack_font.rb +69 -0
  1543. data/lib/roebe/toplevel_methods/install_the_jet_brains_mono_font.rb +55 -0
  1544. data/lib/roebe/toplevel_methods/install_this_font.rb +80 -0
  1545. data/lib/roebe/toplevel_methods/install_this_locale.rb +30 -0
  1546. data/lib/roebe/toplevel_methods/install_vivaldi.rb +33 -0
  1547. data/lib/roebe/toplevel_methods/instance_variable_get.rb +22 -0
  1548. data/lib/roebe/toplevel_methods/irb.rb +34 -0
  1549. data/lib/roebe/toplevel_methods/is_on_roebe.rb +64 -0
  1550. data/lib/roebe/toplevel_methods/jp2a.rb +49 -0
  1551. data/lib/roebe/toplevel_methods/keywords.rb +30 -0
  1552. data/lib/roebe/toplevel_methods/lighttpd.rb +65 -0
  1553. data/lib/roebe/toplevel_methods/load_custom_ruby_files.rb +41 -0
  1554. data/lib/roebe/toplevel_methods/load_yaml.rb +28 -0
  1555. data/lib/roebe/toplevel_methods/mama.rb +25 -0
  1556. data/lib/roebe/toplevel_methods/master_boot_record.rb +84 -0
  1557. data/lib/roebe/toplevel_methods/math.rb +29 -0
  1558. data/lib/roebe/toplevel_methods/misc.rb +475 -0
  1559. data/lib/roebe/toplevel_methods/module_methods.rb +425 -0
  1560. data/lib/roebe/toplevel_methods/mount_procs.rb +25 -0
  1561. data/lib/roebe/toplevel_methods/move_file.rb +38 -0
  1562. data/lib/roebe/toplevel_methods/move_to_torrent_directory.rb +48 -0
  1563. data/lib/roebe/toplevel_methods/multimedia.rb +117 -0
  1564. data/lib/roebe/toplevel_methods/n_characters_in_this_file.rb +45 -0
  1565. data/lib/roebe/toplevel_methods/nano_addons.rb +36 -0
  1566. data/lib/roebe/toplevel_methods/new_konsole_tab.rb +21 -0
  1567. data/lib/roebe/toplevel_methods/newstud/newstud1.rb +24 -0
  1568. data/lib/roebe/toplevel_methods/newstud/newstud10.rb +24 -0
  1569. data/lib/roebe/toplevel_methods/newstud/newstud11.rb +24 -0
  1570. data/lib/roebe/toplevel_methods/newstud/newstud12.rb +24 -0
  1571. data/lib/roebe/toplevel_methods/newstud/newstud13.rb +24 -0
  1572. data/lib/roebe/toplevel_methods/newstud/newstud14.rb +24 -0
  1573. data/lib/roebe/toplevel_methods/newstud/newstud15.rb +24 -0
  1574. data/lib/roebe/toplevel_methods/newstud/newstud16.rb +24 -0
  1575. data/lib/roebe/toplevel_methods/newstud/newstud17.rb +24 -0
  1576. data/lib/roebe/toplevel_methods/newstud/newstud18.rb +24 -0
  1577. data/lib/roebe/toplevel_methods/newstud/newstud19.rb +24 -0
  1578. data/lib/roebe/toplevel_methods/newstud/newstud2.rb +24 -0
  1579. data/lib/roebe/toplevel_methods/newstud/newstud20.rb +24 -0
  1580. data/lib/roebe/toplevel_methods/newstud/newstud21.rb +24 -0
  1581. data/lib/roebe/toplevel_methods/newstud/newstud22.rb +24 -0
  1582. data/lib/roebe/toplevel_methods/newstud/newstud23.rb +24 -0
  1583. data/lib/roebe/toplevel_methods/newstud/newstud24.rb +24 -0
  1584. data/lib/roebe/toplevel_methods/newstud/newstud25.rb +24 -0
  1585. data/lib/roebe/toplevel_methods/newstud/newstud3.rb +24 -0
  1586. data/lib/roebe/toplevel_methods/newstud/newstud4.rb +24 -0
  1587. data/lib/roebe/toplevel_methods/newstud/newstud5.rb +24 -0
  1588. data/lib/roebe/toplevel_methods/newstud/newstud6.rb +24 -0
  1589. data/lib/roebe/toplevel_methods/newstud/newstud7.rb +24 -0
  1590. data/lib/roebe/toplevel_methods/newstud/newstud8.rb +24 -0
  1591. data/lib/roebe/toplevel_methods/newstud/newstud9.rb +24 -0
  1592. data/lib/roebe/toplevel_methods/newstud.rb +23 -0
  1593. data/lib/roebe/toplevel_methods/no_caps.rb +29 -0
  1594. data/lib/roebe/toplevel_methods/ntrad.rb +36 -0
  1595. data/lib/roebe/toplevel_methods/open_in_browser.rb +39 -0
  1596. data/lib/roebe/toplevel_methods/open_in_editor.rb +29 -0
  1597. data/lib/roebe/toplevel_methods/open_in_editor_and_browser.rb +38 -0
  1598. data/lib/roebe/toplevel_methods/open_ports.rb +59 -0
  1599. data/lib/roebe/toplevel_methods/opnn.rb +31 -0
  1600. data/lib/roebe/toplevel_methods/permanently_set_project_base_directory_to.rb +40 -0
  1601. data/lib/roebe/toplevel_methods/platform.rb +46 -0
  1602. data/lib/roebe/toplevel_methods/pp_output.rb +31 -0
  1603. data/lib/roebe/toplevel_methods/prime_numbers.rb +22 -0
  1604. data/lib/roebe/toplevel_methods/programs_directory.rb +29 -0
  1605. data/lib/roebe/toplevel_methods/purgeboth.rb +51 -0
  1606. data/lib/roebe/toplevel_methods/puts_this.rb +29 -0
  1607. data/lib/roebe/toplevel_methods/rds.rb +33 -0
  1608. data/lib/roebe/toplevel_methods/regex.rb +87 -0
  1609. data/lib/roebe/toplevel_methods/register_sigint.rb +67 -0
  1610. data/lib/roebe/toplevel_methods/remove_user.rb +29 -0
  1611. data/lib/roebe/toplevel_methods/repetition_pattern.rb +38 -0
  1612. data/lib/roebe/toplevel_methods/replace_leading_file_name.rb +35 -0
  1613. data/lib/roebe/toplevel_methods/replace_localhost_with_data.rb +39 -0
  1614. data/lib/roebe/toplevel_methods/report_classes.rb +51 -0
  1615. data/lib/roebe/toplevel_methods/report_the_location_of_the_default_browser.rb +40 -0
  1616. data/lib/roebe/toplevel_methods/require_this_roebe_class.rb +23 -0
  1617. data/lib/roebe/toplevel_methods/return_all_remote_entries_from_this_url.rb +38 -0
  1618. data/lib/roebe/toplevel_methods/return_date.rb +23 -0
  1619. data/lib/roebe/toplevel_methods/return_even_numbered_lines_from_this_file.rb +37 -0
  1620. data/lib/roebe/toplevel_methods/return_pwd.rb +16 -0
  1621. data/lib/roebe/toplevel_methods/rinstall2.rb +115 -0
  1622. data/lib/roebe/toplevel_methods/rubyzip.rb +85 -0
  1623. data/lib/roebe/toplevel_methods/run_this_file_in_the_background.rb +26 -0
  1624. data/lib/roebe/toplevel_methods/sanitize_url.rb +74 -0
  1625. data/lib/roebe/toplevel_methods/set_ten_aliases.rb +25 -0
  1626. data/lib/roebe/toplevel_methods/setup.rb +37 -0
  1627. data/lib/roebe/toplevel_methods/show_beauty_string.rb +27 -0
  1628. data/lib/roebe/toplevel_methods/show_processes.rb +31 -0
  1629. data/lib/roebe/toplevel_methods/silent_redirection.rb +17 -0
  1630. data/lib/roebe/toplevel_methods/sitelibdir.rb +24 -0
  1631. data/lib/roebe/toplevel_methods/studium1.rb +30 -0
  1632. data/lib/roebe/toplevel_methods/time.rb +173 -0
  1633. data/lib/roebe/toplevel_methods/to_bool.rb +31 -0
  1634. data/lib/roebe/toplevel_methods/to_camelcase.rb +19 -0
  1635. data/lib/roebe/toplevel_methods/to_mp3.rb +40 -0
  1636. data/lib/roebe/toplevel_methods/to_underscore.rb +36 -0
  1637. data/lib/roebe/toplevel_methods/tokenitor.rb +29 -0
  1638. data/lib/roebe/toplevel_methods/trad.rb +56 -0
  1639. data/lib/roebe/toplevel_methods/unicode/README.md +1 -0
  1640. data/lib/roebe/toplevel_methods/unicode/colourful_unicode_snowmen.rb +151 -0
  1641. data/lib/roebe/toplevel_methods/unicode/completed.rb +57 -0
  1642. data/lib/roebe/toplevel_methods/unicode/decompose_this_unicode_symbol.rb +26 -0
  1643. data/lib/roebe/toplevel_methods/unicode/display_unicode_snowman.rb +31 -0
  1644. data/lib/roebe/toplevel_methods/unicode/download_unicode_dataset.rb +31 -0
  1645. data/lib/roebe/toplevel_methods/unicode/map_input_to_unicode_symbol.rb +249 -0
  1646. data/lib/roebe/toplevel_methods/unicode/popular_unicode_symbols.rb +1079 -0
  1647. data/lib/roebe/toplevel_methods/unicode/return_all_unicode_symbols.rb +26 -0
  1648. data/lib/roebe/toplevel_methods/unicode/unicode_block_elements.rb +255 -0
  1649. data/lib/roebe/toplevel_methods/unicode/unicode_chess_symbols.rb +162 -0
  1650. data/lib/roebe/toplevel_methods/update_pciids.rb +71 -0
  1651. data/lib/roebe/toplevel_methods/update_the_main_pdf_viewer_file_with_this_program.rb +55 -0
  1652. data/lib/roebe/toplevel_methods/variables.rb +26 -0
  1653. data/lib/roebe/toplevel_methods/verbose_truth.rb +23 -0
  1654. data/lib/roebe/toplevel_methods/video.rb +40 -0
  1655. data/lib/roebe/toplevel_methods/warning.rb +173 -0
  1656. data/lib/roebe/toplevel_methods/webrick.rb +80 -0
  1657. data/lib/roebe/toplevel_methods/wget.rb +17 -0
  1658. data/lib/roebe/toplevel_methods/whois.rb +36 -0
  1659. data/lib/roebe/toplevel_methods/windows.rb +22 -0
  1660. data/lib/roebe/toplevel_methods/wlan/bring_up_this_wlan_device.rb +51 -0
  1661. data/lib/roebe/toplevel_methods/wlan/scan_for_wlan_spots.rb +39 -0
  1662. data/lib/roebe/toplevel_methods/word_frequencies.rb +55 -0
  1663. data/lib/roebe/toplevel_methods/write_what_into.rb +86 -0
  1664. data/lib/roebe/toplevel_methods/xorg_buffer.rb +30 -0
  1665. data/lib/roebe/toplevel_methods/zlib.rb +57 -0
  1666. data/lib/roebe/urxvt/config +7 -0
  1667. data/lib/roebe/validation/README.md +3 -0
  1668. data/lib/roebe/validation/validate_roeberia_environment_variables.rb +128 -0
  1669. data/lib/roebe/version/version.rb +54 -0
  1670. data/lib/roebe/windows/bat/README.md +1 -0
  1671. data/lib/roebe/windows/bat/compile_gtk_application_hello_world_example.bat +1 -0
  1672. data/lib/roebe/windows/bat/screenCapture.bat +282 -0
  1673. data/lib/roebe/windows/doskey.md +50452 -0
  1674. data/lib/roebe/windows/misc.rb +40 -0
  1675. data/lib/roebe/windows/powershell.rb +341 -0
  1676. data/lib/roebe/windows/usb_devices.rb +38 -0
  1677. data/lib/roebe/www/GhostBSD/GhostBSD.cgi +7 -0
  1678. data/lib/roebe/www/GhostBSD/GhostBSD.rb +39 -0
  1679. data/lib/roebe/www/GhostBSD/GhostBSD.sinatra +56 -0
  1680. data/lib/roebe/www/IntelliJ_IDEA/tutorial.cgi +30 -0
  1681. data/lib/roebe/www/LATEX/LATEX.md +29 -0
  1682. data/lib/roebe/www/LEDS/LEDS.cgi +7 -0
  1683. data/lib/roebe/www/LEDS/LEDS.rb +201 -0
  1684. data/lib/roebe/www/LEDS/LEDS.sinatra +58 -0
  1685. data/lib/roebe/www/OLEDS/OLEDS.md +44 -0
  1686. data/lib/roebe/www/RAM/RAM.cgi +7 -0
  1687. data/lib/roebe/www/RAM/RAM.rb +254 -0
  1688. data/lib/roebe/www/RAM/RAM.sinatra +56 -0
  1689. data/lib/roebe/www/REST/REST.md +12 -0
  1690. data/lib/roebe/www/SDL/SDL.cgi +7 -0
  1691. data/lib/roebe/www/SDL/SDL.rb +710 -0
  1692. data/lib/roebe/www/SDL/SDL.sinatra +56 -0
  1693. data/lib/roebe/www/X3D/X3D.cgi +7 -0
  1694. data/lib/roebe/www/X3D/X3D.rb +46 -0
  1695. data/lib/roebe/www/X3D/X3D.sinatra +56 -0
  1696. data/lib/roebe/www/aging/aging.cgi +7 -0
  1697. data/lib/roebe/www/aging/aging.rb +1229 -0
  1698. data/lib/roebe/www/aging/aging.sinatra +56 -0
  1699. data/lib/roebe/www/aids/aids.cgi +7 -0
  1700. data/lib/roebe/www/aids/aids.rb +240 -0
  1701. data/lib/roebe/www/aids/aids.sinatra +56 -0
  1702. data/lib/roebe/www/ajax/ajax.cgi +7 -0
  1703. data/lib/roebe/www/ajax/ajax.rb +88 -0
  1704. data/lib/roebe/www/ajax/ajax.sinatra +56 -0
  1705. data/lib/roebe/www/algorithms/algorithms.cgi +7 -0
  1706. data/lib/roebe/www/algorithms/algorithms.rb +68 -0
  1707. data/lib/roebe/www/algorithms/algorithms.sinatra +56 -0
  1708. data/lib/roebe/www/allegro/allegro.cgi +7 -0
  1709. data/lib/roebe/www/allegro/allegro.rb +396 -0
  1710. data/lib/roebe/www/allegro/allegro.sinatra +56 -0
  1711. data/lib/roebe/www/amino_acids/amino_acids.cgi +7 -0
  1712. data/lib/roebe/www/amino_acids/amino_acids.rb +34 -0
  1713. data/lib/roebe/www/amino_acids/amino_acids.sinatra +56 -0
  1714. data/lib/roebe/www/amusing_bits/fussball_zitate.cgi +7 -0
  1715. data/lib/roebe/www/amusing_bits/fussball_zitate.rb +182 -0
  1716. data/lib/roebe/www/amusing_bits/fussball_zitate.sinatra +56 -0
  1717. data/lib/roebe/www/amusing_bits/george_bush/george_bush.cgi +7 -0
  1718. data/lib/roebe/www/amusing_bits/george_bush/george_bush.rb +189 -0
  1719. data/lib/roebe/www/amusing_bits/george_bush/george_bush.sinatra +56 -0
  1720. data/lib/roebe/www/amusing_bits/lustige_menschen/lustige_menschen.cgi +7 -0
  1721. data/lib/roebe/www/amusing_bits/lustige_menschen/lustige_menschen.rb +138 -0
  1722. data/lib/roebe/www/amusing_bits/lustige_menschen/lustige_menschen.sinatra +56 -0
  1723. data/lib/roebe/www/amusing_bits/lustige_tiere/lustige_tiere.cgi +9 -0
  1724. data/lib/roebe/www/amusing_bits/lustige_tiere/lustige_tiere.rb +209 -0
  1725. data/lib/roebe/www/amusing_bits/lustige_tiere/lustige_tiere.sinatra +56 -0
  1726. data/lib/roebe/www/amusing_bits/the_iraq_war/the_iraq_war.cgi +7 -0
  1727. data/lib/roebe/www/amusing_bits/the_iraq_war/the_iraq_war.rb +57 -0
  1728. data/lib/roebe/www/amusing_bits/the_iraq_war/the_iraq_war.sinatra +56 -0
  1729. data/lib/roebe/www/anthropology/anthropology.cgi +7 -0
  1730. data/lib/roebe/www/anthropology/anthropology.rb +26 -0
  1731. data/lib/roebe/www/anthropology/anthropology.sinatra +56 -0
  1732. data/lib/roebe/www/antibodies/antibodies.cgi +7 -0
  1733. data/lib/roebe/www/antibodies/antibodies.rb +78 -0
  1734. data/lib/roebe/www/antibodies/antibodies.sinatra +56 -0
  1735. data/lib/roebe/www/ants/ants.cgi +7 -0
  1736. data/lib/roebe/www/ants/ants.rb +145 -0
  1737. data/lib/roebe/www/ants/ants.sinatra +56 -0
  1738. data/lib/roebe/www/ants/news.md +90 -0
  1739. data/lib/roebe/www/apache/apache.cgi +7 -0
  1740. data/lib/roebe/www/apache/apache.rb +1164 -0
  1741. data/lib/roebe/www/apache/apache.sinatra +56 -0
  1742. data/lib/roebe/www/apache/configuration/add_handler.conf +26 -0
  1743. data/lib/roebe/www/apache/configuration/add_type.conf +29 -0
  1744. data/lib/roebe/www/apache/configuration/autogenerated_rewrite_rules.conf +66 -0
  1745. data/lib/roebe/www/apache/configuration/document_root.conf +32 -0
  1746. data/lib/roebe/www/apache/configuration/email.conf +8 -0
  1747. data/lib/roebe/www/apache/configuration/error_log.conf +36 -0
  1748. data/lib/roebe/www/apache/configuration/load_modules.conf +48 -0
  1749. data/lib/roebe/www/apache/configuration/mime_module.conf +11 -0
  1750. data/lib/roebe/www/apache/configuration/php.conf +22 -0
  1751. data/lib/roebe/www/apache/configuration/proxy_html_module.conf +6 -0
  1752. data/lib/roebe/www/apache/configuration/rewrite_rules.conf +137 -0
  1753. data/lib/roebe/www/apache/configuration/ruby.conf +13 -0
  1754. data/lib/roebe/www/apache/configuration/server_name.conf +10 -0
  1755. data/lib/roebe/www/apache/configuration/server_root.conf +6 -0
  1756. data/lib/roebe/www/apache/configuration/unixd_module.conf +22 -0
  1757. data/lib/roebe/www/apple/apple.cgi +7 -0
  1758. data/lib/roebe/www/apple/apple.rb +238 -0
  1759. data/lib/roebe/www/apple/apple.sinatra +56 -0
  1760. data/lib/roebe/www/arduino/arduino.cgi +7 -0
  1761. data/lib/roebe/www/arduino/arduino.rb +255 -0
  1762. data/lib/roebe/www/arduino/arduino.sinatra +56 -0
  1763. data/lib/roebe/www/arduino/sketches/0001_blink.sketch +30 -0
  1764. data/lib/roebe/www/ariolante_und_das_k/303/244tzchen/ariolante_und_das_k/303/244tzchen.cgi +7 -0
  1765. data/lib/roebe/www/ariolante_und_das_k/303/244tzchen/ariolante_und_das_k/303/244tzchen.rb +229 -0
  1766. data/lib/roebe/www/ariolante_und_das_k/303/244tzchen/ariolante_und_das_k/303/244tzchen.sinatra +61 -0
  1767. data/lib/roebe/www/armaturen/armaturen.cgi +7 -0
  1768. data/lib/roebe/www/armaturen/armaturen.rb +93 -0
  1769. data/lib/roebe/www/armaturen/armaturen.sinatra +56 -0
  1770. data/lib/roebe/www/art/art.cgi +7 -0
  1771. data/lib/roebe/www/art/art.rb +274 -0
  1772. data/lib/roebe/www/art/art.sinatra +52 -0
  1773. data/lib/roebe/www/artificial_intelligence/artificial_intelligence.cgi +7 -0
  1774. data/lib/roebe/www/artificial_intelligence/artificial_intelligence.rb +515 -0
  1775. data/lib/roebe/www/artificial_intelligence/artificial_intelligence.sinatra +56 -0
  1776. data/lib/roebe/www/atomkraftwerke/atomkraftwerke.cgi +7 -0
  1777. data/lib/roebe/www/atomkraftwerke/atomkraftwerke.rb +320 -0
  1778. data/lib/roebe/www/atomkraftwerke/atomkraftwerke.sinatra +56 -0
  1779. data/lib/roebe/www/bacteria/bacteria.cgi +7 -0
  1780. data/lib/roebe/www/bacteria/bacteria.rb +32 -0
  1781. data/lib/roebe/www/bacteria/bacteria.sinatra +56 -0
  1782. data/lib/roebe/www/batterien/batterien.cgi +9 -0
  1783. data/lib/roebe/www/batterien/batterien.rb +158 -0
  1784. data/lib/roebe/www/batterien/batterien.sinatra +56 -0
  1785. data/lib/roebe/www/beamte/beamte.cgi +7 -0
  1786. data/lib/roebe/www/beamte/beamte.rb +19 -0
  1787. data/lib/roebe/www/beamte/beamte.sinatra +56 -0
  1788. data/lib/roebe/www/beauty/beauty.cgi +9 -0
  1789. data/lib/roebe/www/beauty/beauty.rb +130 -0
  1790. data/lib/roebe/www/beauty/beauty.sinatra +56 -0
  1791. data/lib/roebe/www/biobricks/biobricks.cgi +7 -0
  1792. data/lib/roebe/www/biobricks/biobricks.rb +19 -0
  1793. data/lib/roebe/www/biobricks/biobricks.sinatra +56 -0
  1794. data/lib/roebe/www/biochemistry/biochemistry.cgi +7 -0
  1795. data/lib/roebe/www/biochemistry/biochemistry.rb +320 -0
  1796. data/lib/roebe/www/biochemistry/biochemistry.sinatra +56 -0
  1797. data/lib/roebe/www/bioinformatics/bioinformatics.cgi +11 -0
  1798. data/lib/roebe/www/bioinformatics/bioinformatics.rb +406 -0
  1799. data/lib/roebe/www/bioinformatics/bioinformatics.sinatra +56 -0
  1800. data/lib/roebe/www/biology/biology.md +9 -0
  1801. data/lib/roebe/www/biomaterials/biomaterials.cgi +7 -0
  1802. data/lib/roebe/www/biomaterials/biomaterials.rb +337 -0
  1803. data/lib/roebe/www/biomaterials/biomaterials.sinatra +56 -0
  1804. data/lib/roebe/www/biotechnology/biotechnology.cgi +7 -0
  1805. data/lib/roebe/www/biotechnology/biotechnology.rb +134 -0
  1806. data/lib/roebe/www/biotechnology/biotechnology.sinatra +56 -0
  1807. data/lib/roebe/www/blender3d/blender3d.cgi +7 -0
  1808. data/lib/roebe/www/blender3d/blender3d.rb +265 -0
  1809. data/lib/roebe/www/blender3d/blender3d.sinatra +56 -0
  1810. data/lib/roebe/www/blog/blog.cgi +9 -0
  1811. data/lib/roebe/www/blog/blog.rb +258 -0
  1812. data/lib/roebe/www/blog/blog.sinatra +56 -0
  1813. data/lib/roebe/www/bluefish/README.md +5 -0
  1814. data/lib/roebe/www/bluefish/STD.bfproject +62 -0
  1815. data/lib/roebe/www/bluefish/STD.bfproject~ +62 -0
  1816. data/lib/roebe/www/bluefish/TODO.md +6 -0
  1817. data/lib/roebe/www/bsd/bsd.cgi +7 -0
  1818. data/lib/roebe/www/bsd/bsd.rb +90 -0
  1819. data/lib/roebe/www/bsd/bsd.sinatra +56 -0
  1820. data/lib/roebe/www/calculator/calculator.cgi +7 -0
  1821. data/lib/roebe/www/calculator/calculator.rb +15 -0
  1822. data/lib/roebe/www/calculator/calculator.sinatra +56 -0
  1823. data/lib/roebe/www/cameras/cameras.cgi +9 -0
  1824. data/lib/roebe/www/cameras/cameras.rb +339 -0
  1825. data/lib/roebe/www/cameras/cameras.sinatra +56 -0
  1826. data/lib/roebe/www/cancer/cancer.cgi +7 -0
  1827. data/lib/roebe/www/cancer/cancer.rb +97 -0
  1828. data/lib/roebe/www/cancer/cancer.sinatra +56 -0
  1829. data/lib/roebe/www/cats/cats.cgi +7 -0
  1830. data/lib/roebe/www/cats/cats.rb +309 -0
  1831. data/lib/roebe/www/cats/cats.sinatra +56 -0
  1832. data/lib/roebe/www/cellbiology/cellbiology.cgi +7 -0
  1833. data/lib/roebe/www/cellbiology/cellbiology.rb +376 -0
  1834. data/lib/roebe/www/cellbiology/cellbiology.sinatra +56 -0
  1835. data/lib/roebe/www/cellulose/cellulose.cgi +7 -0
  1836. data/lib/roebe/www/cellulose/cellulose.rb +28 -0
  1837. data/lib/roebe/www/cellulose/cellulose.sinatra +56 -0
  1838. data/lib/roebe/www/chromium/chromium.cgi +7 -0
  1839. data/lib/roebe/www/chromium/chromium.rb +39 -0
  1840. data/lib/roebe/www/chromium/chromium.sinatra +56 -0
  1841. data/lib/roebe/www/cmake/CMakeTemplate.txt +48 -0
  1842. data/lib/roebe/www/cmake/cmake.cgi +7 -0
  1843. data/lib/roebe/www/cmake/cmake.rb +146 -0
  1844. data/lib/roebe/www/cmake/cmake.sinatra +52 -0
  1845. data/lib/roebe/www/codepages/codepages.cgi +9 -0
  1846. data/lib/roebe/www/codepages/codepages.rb +17 -0
  1847. data/lib/roebe/www/codepages/codepages.sinatra +56 -0
  1848. data/lib/roebe/www/compact_disc/compact_disc.cgi +7 -0
  1849. data/lib/roebe/www/compact_disc/compact_disc.rb +124 -0
  1850. data/lib/roebe/www/compact_disc/compact_disc.sinatra +56 -0
  1851. data/lib/roebe/www/compiling/compiling.cgi +9 -0
  1852. data/lib/roebe/www/compiling/compiling.rb +2578 -0
  1853. data/lib/roebe/www/compiling/compiling.sinatra +52 -0
  1854. data/lib/roebe/www/conference_talks/conference_talks.md +11 -0
  1855. data/lib/roebe/www/conky/conky.cgi +7 -0
  1856. data/lib/roebe/www/conky/conky.rb +132 -0
  1857. data/lib/roebe/www/conky/conky.sinatra +56 -0
  1858. data/lib/roebe/www/conky/my_conkyrc_04.02.2020 +83 -0
  1859. data/lib/roebe/www/consumers/consumers.cgi +7 -0
  1860. data/lib/roebe/www/consumers/consumers.rb +23 -0
  1861. data/lib/roebe/www/consumers/consumers.sinatra +56 -0
  1862. data/lib/roebe/www/covid19/covid19.cgi +10 -0
  1863. data/lib/roebe/www/covid19/covid19.rb +1890 -0
  1864. data/lib/roebe/www/covid19/covid19.sinatra +56 -0
  1865. data/lib/roebe/www/creativity/creativity.cgi +9 -0
  1866. data/lib/roebe/www/creativity/creativity.rb +25 -0
  1867. data/lib/roebe/www/creativity/creativity.sinatra +56 -0
  1868. data/lib/roebe/www/crispr/crispr.cgi +7 -0
  1869. data/lib/roebe/www/crispr/crispr.rb +237 -0
  1870. data/lib/roebe/www/crispr/crispr.sinatra +56 -0
  1871. data/lib/roebe/www/cron/cron.cgi +7 -0
  1872. data/lib/roebe/www/cron/cron.rb +99 -0
  1873. data/lib/roebe/www/cron/cron.sinatra +56 -0
  1874. data/lib/roebe/www/cyanobacteria/cyanobacteria.cgi +7 -0
  1875. data/lib/roebe/www/cyanobacteria/cyanobacteria.rb +47 -0
  1876. data/lib/roebe/www/cyanobacteria/cyanobacteria.sinatra +56 -0
  1877. data/lib/roebe/www/cytogenetics/cytogenetics.cgi +7 -0
  1878. data/lib/roebe/www/cytogenetics/cytogenetics.rb +18 -0
  1879. data/lib/roebe/www/cytogenetics/cytogenetics.sinatra +56 -0
  1880. data/lib/roebe/www/databases/postgresql/postgresql.cgi +7 -0
  1881. data/lib/roebe/www/databases/postgresql/postgresql.rb +321 -0
  1882. data/lib/roebe/www/databases/postgresql/postgresql.sinatra +56 -0
  1883. data/lib/roebe/www/databases/postgresql/psqlrc +22 -0
  1884. data/lib/roebe/www/databases/sqlite/sqlite.cgi +7 -0
  1885. data/lib/roebe/www/databases/sqlite/sqlite.rb +624 -0
  1886. data/lib/roebe/www/databases/sqlite/sqlite.sinatra +56 -0
  1887. data/lib/roebe/www/designing/SLOGANS.md +3 -0
  1888. data/lib/roebe/www/designing_and_art/designing_and_art.cgi +9 -0
  1889. data/lib/roebe/www/designing_and_art/designing_and_art.rb +856 -0
  1890. data/lib/roebe/www/designing_and_art/designing_and_art.sinatra +56 -0
  1891. data/lib/roebe/www/designing_on_linux/designing_on_linux.cgi +7 -0
  1892. data/lib/roebe/www/designing_on_linux/designing_on_linux.rb +66 -0
  1893. data/lib/roebe/www/designing_on_linux/designing_on_linux.sinatra +56 -0
  1894. data/lib/roebe/www/developmental_biology/developmental_biology.cgi +7 -0
  1895. data/lib/roebe/www/developmental_biology/developmental_biology.rb +84 -0
  1896. data/lib/roebe/www/developmental_biology/developmental_biology.sinatra +56 -0
  1897. data/lib/roebe/www/die_erde/die_erde.cgi +7 -0
  1898. data/lib/roebe/www/die_erde/die_erde.rb +43 -0
  1899. data/lib/roebe/www/die_erde/die_erde.sinatra +56 -0
  1900. data/lib/roebe/www/die_herrenlose_katze/die_herrenlose_katze.cgi +7 -0
  1901. data/lib/roebe/www/die_herrenlose_katze/die_herrenlose_katze.rb +477 -0
  1902. data/lib/roebe/www/die_herrenlose_katze/die_herrenlose_katze.sinatra +61 -0
  1903. data/lib/roebe/www/die_katze_im_schnee/die_katze_im_schnee.cgi +7 -0
  1904. data/lib/roebe/www/die_katze_im_schnee/die_katze_im_schnee.rb +302 -0
  1905. data/lib/roebe/www/die_katze_im_schnee/die_katze_im_schnee.sinatra +61 -0
  1906. data/lib/roebe/www/direct_democracy/direct_democracy.cgi +7 -0
  1907. data/lib/roebe/www/direct_democracy/direct_democracy.rb +45 -0
  1908. data/lib/roebe/www/direct_democracy/direct_democracy.sinatra +56 -0
  1909. data/lib/roebe/www/distcc/distcc.cgi +7 -0
  1910. data/lib/roebe/www/distcc/distcc.rb +78 -0
  1911. data/lib/roebe/www/distcc/distcc.sinatra +56 -0
  1912. data/lib/roebe/www/documentation/README.md +3 -0
  1913. data/lib/roebe/www/documentation/documentation.rb +98 -0
  1914. data/lib/roebe/www/dolphin/add_to_vlc_playlist.desktop +12 -0
  1915. data/lib/roebe/www/dosbox/autogenerated_dosbox.conf +776 -0
  1916. data/lib/roebe/www/dosbox/dosbox.cgi +7 -0
  1917. data/lib/roebe/www/dosbox/dosbox.rb +238 -0
  1918. data/lib/roebe/www/dosbox/dosbox.sinatra +52 -0
  1919. data/lib/roebe/www/drucker/drucker.cgi +7 -0
  1920. data/lib/roebe/www/drucker/drucker.rb +253 -0
  1921. data/lib/roebe/www/drucker/drucker.sinatra +56 -0
  1922. data/lib/roebe/www/economy/economy.cgi +7 -0
  1923. data/lib/roebe/www/economy/economy.rb +16 -0
  1924. data/lib/roebe/www/economy/economy.sinatra +56 -0
  1925. data/lib/roebe/www/economy/mieten_und_wohnen.cgi +7 -0
  1926. data/lib/roebe/www/economy/mieten_und_wohnen.rb +37 -0
  1927. data/lib/roebe/www/economy/mieten_und_wohnen.sinatra +56 -0
  1928. data/lib/roebe/www/emacs/emacs.cgi +7 -0
  1929. data/lib/roebe/www/emacs/emacs.rb +71 -0
  1930. data/lib/roebe/www/emacs/emacs.sinatra +56 -0
  1931. data/lib/roebe/www/embeddable_interface.rb +50 -0
  1932. data/lib/roebe/www/encodings/encodings.cgi +7 -0
  1933. data/lib/roebe/www/encodings/encodings.rb +80 -0
  1934. data/lib/roebe/www/encodings/encodings.sinatra +56 -0
  1935. data/lib/roebe/www/english/english.cgi +7 -0
  1936. data/lib/roebe/www/english/english.rb +63 -0
  1937. data/lib/roebe/www/english/english.sinatra +52 -0
  1938. data/lib/roebe/www/erben/erben.cgi +7 -0
  1939. data/lib/roebe/www/erben/erben.rb +41 -0
  1940. data/lib/roebe/www/erben/erben.sinatra +56 -0
  1941. data/lib/roebe/www/ern/303/244hrung/ern/303/244hrung.cgi +7 -0
  1942. data/lib/roebe/www/ern/303/244hrung/ern/303/244hrung.rb +253 -0
  1943. data/lib/roebe/www/ern/303/244hrung/ern/303/244hrung.sinatra +56 -0
  1944. data/lib/roebe/www/ethik/ethik.md +4 -0
  1945. data/lib/roebe/www/euphemismen_und_werturteile/euphemismen_und_werturteile.cgi +9 -0
  1946. data/lib/roebe/www/euphemismen_und_werturteile/euphemismen_und_werturteile.rb +291 -0
  1947. data/lib/roebe/www/euphemismen_und_werturteile/euphemismen_und_werturteile.sinatra +56 -0
  1948. data/lib/roebe/www/evolution/evolution.cgi +7 -0
  1949. data/lib/roebe/www/evolution/evolution.rb +281 -0
  1950. data/lib/roebe/www/evolution/evolution.sinatra +52 -0
  1951. data/lib/roebe/www/excel/excel.cgi +7 -0
  1952. data/lib/roebe/www/excel/excel.rb +23 -0
  1953. data/lib/roebe/www/excel/excel.sinatra +56 -0
  1954. data/lib/roebe/www/festplatten/festplatten.cgi +7 -0
  1955. data/lib/roebe/www/festplatten/festplatten.rb +804 -0
  1956. data/lib/roebe/www/festplatten/festplatten.sinatra +56 -0
  1957. data/lib/roebe/www/fire/fire.cgi +9 -0
  1958. data/lib/roebe/www/fire/fire.rb +802 -0
  1959. data/lib/roebe/www/fire/fire.sinatra +56 -0
  1960. data/lib/roebe/www/firefox/firefox.cgi +11 -0
  1961. data/lib/roebe/www/firefox/firefox.rb +1324 -0
  1962. data/lib/roebe/www/firefox/firefox.sinatra +56 -0
  1963. data/lib/roebe/www/food/food.cgi +7 -0
  1964. data/lib/roebe/www/food/food.rb +252 -0
  1965. data/lib/roebe/www/food/food.sinatra +56 -0
  1966. data/lib/roebe/www/fox/fox.cgi +7 -0
  1967. data/lib/roebe/www/fox/fox.rb +890 -0
  1968. data/lib/roebe/www/fox/fox.sinatra +56 -0
  1969. data/lib/roebe/www/ftp/ftp.cgi +7 -0
  1970. data/lib/roebe/www/ftp/ftp.rb +134 -0
  1971. data/lib/roebe/www/ftp/ftp.sinatra +56 -0
  1972. data/lib/roebe/www/funk/funk.cgi +7 -0
  1973. data/lib/roebe/www/funk/funk.rb +385 -0
  1974. data/lib/roebe/www/funk/funk.sinatra +56 -0
  1975. data/lib/roebe/www/gedichte/gedichte.cgi +7 -0
  1976. data/lib/roebe/www/gedichte/gedichte.rb +13 -0
  1977. data/lib/roebe/www/gedichte/gedichte.sinatra +56 -0
  1978. data/lib/roebe/www/gene_expression/SLOGANS.md +22 -0
  1979. data/lib/roebe/www/gene_therapy/06.08.2008_Human_gene_therapy_for_RPE65_isomerase_deficiency.md +29 -0
  1980. data/lib/roebe/www/gene_therapy/28.11.2008_Gentherapie_am_Auge_erfolgreich.md +43 -0
  1981. data/lib/roebe/www/gene_therapy/31.01.2000_Earlier_Gene_Test_Deaths_Not_Reported.md +62 -0
  1982. data/lib/roebe/www/gene_therapy/SLOGANS.md +8 -0
  1983. data/lib/roebe/www/genetics/genetics.cgi +7 -0
  1984. data/lib/roebe/www/genetics/genetics.rb +1128 -0
  1985. data/lib/roebe/www/genetics/genetics.sinatra +52 -0
  1986. data/lib/roebe/www/genomics/genomics.cgi +7 -0
  1987. data/lib/roebe/www/genomics/genomics.rb +73 -0
  1988. data/lib/roebe/www/genomics/genomics.sinatra +56 -0
  1989. data/lib/roebe/www/gesundheit/diabetes/diabetes.cgi +7 -0
  1990. data/lib/roebe/www/gesundheit/diabetes/diabetes.rb +71 -0
  1991. data/lib/roebe/www/gesundheit/diabetes/diabetes.sinatra +56 -0
  1992. data/lib/roebe/www/gesundheit/metabolic_syndrome/metabolic_syndrome.cgi +7 -0
  1993. data/lib/roebe/www/gesundheit/metabolic_syndrome/metabolic_syndrome.rb +47 -0
  1994. data/lib/roebe/www/gesundheit/metabolic_syndrome/metabolic_syndrome.sinatra +56 -0
  1995. data/lib/roebe/www/gesundheit/myokarditis/myokarditis.cgi +7 -0
  1996. data/lib/roebe/www/gesundheit/myokarditis/myokarditis.rb +113 -0
  1997. data/lib/roebe/www/gesundheit/myokarditis/myokarditis.sinatra +56 -0
  1998. data/lib/roebe/www/gimp/gimp.cgi +7 -0
  1999. data/lib/roebe/www/gimp/gimp.rb +1488 -0
  2000. data/lib/roebe/www/gimp/gimp.sinatra +56 -0
  2001. data/lib/roebe/www/ginger_der_bandit/ginger_der_bandit.cgi +7 -0
  2002. data/lib/roebe/www/ginger_der_bandit/ginger_der_bandit.rb +901 -0
  2003. data/lib/roebe/www/ginger_der_bandit/ginger_der_bandit.sinatra +61 -0
  2004. data/lib/roebe/www/git/git.cgi +7 -0
  2005. data/lib/roebe/www/git/git.rb +264 -0
  2006. data/lib/roebe/www/git/git.sinatra +52 -0
  2007. data/lib/roebe/www/git/gitconfig +7 -0
  2008. data/lib/roebe/www/gnuplot/force.dat +16 -0
  2009. data/lib/roebe/www/gnuplot/gnuplot.cgi +7 -0
  2010. data/lib/roebe/www/gnuplot/gnuplot.rb +389 -0
  2011. data/lib/roebe/www/gnuplot/gnuplot.sinatra +56 -0
  2012. data/lib/roebe/www/gnuplot/number_of_eukaryotic_genes.dat +25 -0
  2013. data/lib/roebe/www/gobolinux/gobolinux.cgi +12 -0
  2014. data/lib/roebe/www/gobolinux/gobolinux.rb +1390 -0
  2015. data/lib/roebe/www/gobolinux/gobolinux.sinatra +56 -0
  2016. data/lib/roebe/www/google/google.cgi +7 -0
  2017. data/lib/roebe/www/google/google.rb +32 -0
  2018. data/lib/roebe/www/google/google.sinatra +56 -0
  2019. data/lib/roebe/www/graphviz/graphviz.cgi +7 -0
  2020. data/lib/roebe/www/graphviz/graphviz.rb +196 -0
  2021. data/lib/roebe/www/graphviz/graphviz.sinatra +56 -0
  2022. data/lib/roebe/www/grub/README.md +1 -0
  2023. data/lib/roebe/www/grub/grub.cgi +7 -0
  2024. data/lib/roebe/www/grub/grub.rb +574 -0
  2025. data/lib/roebe/www/grub/grub.sinatra +56 -0
  2026. data/lib/roebe/www/grub/std_menu.lst +88 -0
  2027. data/lib/roebe/www/haiku/haiku.cgi +9 -0
  2028. data/lib/roebe/www/haiku/haiku.rb +73 -0
  2029. data/lib/roebe/www/haiku/haiku.sinatra +56 -0
  2030. data/lib/roebe/www/hardware/computersysteme/computersysteme.cgi +7 -0
  2031. data/lib/roebe/www/hardware/computersysteme/computersysteme.rb +365 -0
  2032. data/lib/roebe/www/hardware/computersysteme/computersysteme.sinatra +56 -0
  2033. data/lib/roebe/www/hardware/heizk/303/266rper/heizk/303/266rper.cgi +7 -0
  2034. data/lib/roebe/www/hardware/heizk/303/266rper/heizk/303/266rper.rb +55 -0
  2035. data/lib/roebe/www/hardware/heizk/303/266rper/heizk/303/266rper.sinatra +56 -0
  2036. data/lib/roebe/www/hardware/kabel_und_adaptoren/kabel_und_adaptoren.cgi +7 -0
  2037. data/lib/roebe/www/hardware/kabel_und_adaptoren/kabel_und_adaptoren.rb +339 -0
  2038. data/lib/roebe/www/hardware/kabel_und_adaptoren/kabel_und_adaptoren.sinatra +56 -0
  2039. data/lib/roebe/www/hardware/schrauben_muttern_und_n/303/244gel/schrauben_muttern_und_n/303/244gel.cgi +7 -0
  2040. data/lib/roebe/www/hardware/schrauben_muttern_und_n/303/244gel/schrauben_muttern_und_n/303/244gel.rb +99 -0
  2041. data/lib/roebe/www/hardware/schrauben_muttern_und_n/303/244gel/schrauben_muttern_und_n/303/244gel.sinatra +56 -0
  2042. data/lib/roebe/www/hardware_assembly/hardware_assembly.cgi +10 -0
  2043. data/lib/roebe/www/hardware_assembly/hardware_assembly.rb +265 -0
  2044. data/lib/roebe/www/hardware_assembly/hardware_assembly.sinatra +56 -0
  2045. data/lib/roebe/www/heart/heart.cgi +7 -0
  2046. data/lib/roebe/www/heart/heart.rb +53 -0
  2047. data/lib/roebe/www/heart/heart.sinatra +56 -0
  2048. data/lib/roebe/www/history/KNOWLEDGE_BITS.md +2 -0
  2049. data/lib/roebe/www/history/yaml/scientific_history.yml +1 -0
  2050. data/lib/roebe/www/hiveos/hiveos.cgi +9 -0
  2051. data/lib/roebe/www/hiveos/hiveos.rb +834 -0
  2052. data/lib/roebe/www/hiveos/hiveos.sinatra +56 -0
  2053. data/lib/roebe/www/htop/htop.md +1 -0
  2054. data/lib/roebe/www/humans_are_funny/humans_are_funny.cgi +7 -0
  2055. data/lib/roebe/www/humans_are_funny/humans_are_funny.rb +21 -0
  2056. data/lib/roebe/www/humans_are_funny/humans_are_funny.sinatra +52 -0
  2057. data/lib/roebe/www/h/303/244user/h/303/244user.cgi +7 -0
  2058. data/lib/roebe/www/h/303/244user/h/303/244user.rb +115 -0
  2059. data/lib/roebe/www/h/303/244user/h/303/244user.sinatra +56 -0
  2060. data/lib/roebe/www/icewm/icewm.cgi +7 -0
  2061. data/lib/roebe/www/icewm/icewm.rb +34 -0
  2062. data/lib/roebe/www/icewm/icewm.sinatra +56 -0
  2063. data/lib/roebe/www/icewm/keys +88 -0
  2064. data/lib/roebe/www/icewm/menu_file +171 -0
  2065. data/lib/roebe/www/icewm/preferences +1043 -0
  2066. data/lib/roebe/www/icewm/programs +322 -0
  2067. data/lib/roebe/www/icewm/theme +11 -0
  2068. data/lib/roebe/www/icewm/toolbar +7 -0
  2069. data/lib/roebe/www/icewm/winoptions +61 -0
  2070. data/lib/roebe/www/ifpi_austria/ifpi_austria.cgi +7 -0
  2071. data/lib/roebe/www/ifpi_austria/ifpi_austria.rb +351 -0
  2072. data/lib/roebe/www/ifpi_austria/ifpi_austria.sinatra +56 -0
  2073. data/lib/roebe/www/immunology/immunology.cgi +7 -0
  2074. data/lib/roebe/www/immunology/immunology.rb +851 -0
  2075. data/lib/roebe/www/immunology/immunology.sinatra +56 -0
  2076. data/lib/roebe/www/individual_page_viewer/individual_page_viewer.cgi +7 -0
  2077. data/lib/roebe/www/individual_page_viewer/individual_page_viewer.rb +41 -0
  2078. data/lib/roebe/www/individual_page_viewer/individual_page_viewer.sinatra +52 -0
  2079. data/lib/roebe/www/inkscape/inkscape.cgi +9 -0
  2080. data/lib/roebe/www/inkscape/inkscape.rb +84 -0
  2081. data/lib/roebe/www/inkscape/inkscape.sinatra +56 -0
  2082. data/lib/roebe/www/inspirational_people/inspirational_people.cgi +11 -0
  2083. data/lib/roebe/www/inspirational_people/inspirational_people.rb +644 -0
  2084. data/lib/roebe/www/inspirational_people/inspirational_people.sinatra +56 -0
  2085. data/lib/roebe/www/interesting_linux_distributions/interesting_linux_distributions.md +71 -0
  2086. data/lib/roebe/www/interviews/interviews.cgi +7 -0
  2087. data/lib/roebe/www/interviews/interviews.rb +14 -0
  2088. data/lib/roebe/www/interviews/interviews.sinatra +56 -0
  2089. data/lib/roebe/www/irc/irc.cgi +7 -0
  2090. data/lib/roebe/www/irc/irc.rb +41 -0
  2091. data/lib/roebe/www/irc/irc.sinatra +56 -0
  2092. data/lib/roebe/www/irc_quotes/irc_quotes.md +835 -0
  2093. data/lib/roebe/www/jobs/jobs.cgi +9 -0
  2094. data/lib/roebe/www/jobs/jobs.rb +83 -0
  2095. data/lib/roebe/www/jobs/jobs.sinatra +56 -0
  2096. data/lib/roebe/www/json/example1.json +18 -0
  2097. data/lib/roebe/www/json/json.cgi +7 -0
  2098. data/lib/roebe/www/json/json.rb +32 -0
  2099. data/lib/roebe/www/json/json.sinatra +56 -0
  2100. data/lib/roebe/www/kaizen/kaizen.cgi +7 -0
  2101. data/lib/roebe/www/kaizen/kaizen.rb +15 -0
  2102. data/lib/roebe/www/kaizen/kaizen.sinatra +56 -0
  2103. data/lib/roebe/www/kde/kde.cgi +1293 -0
  2104. data/lib/roebe/www/kde/kde.rb +162 -0
  2105. data/lib/roebe/www/kde/kde.sinatra +56 -0
  2106. data/lib/roebe/www/kde/konsolerc +40 -0
  2107. data/lib/roebe/www/kde/konsoleui.rc +65 -0
  2108. data/lib/roebe/www/kde/yakuakerc +8 -0
  2109. data/lib/roebe/www/klimawandel/klimawandel.cgi +7 -0
  2110. data/lib/roebe/www/klimawandel/klimawandel.rb +100 -0
  2111. data/lib/roebe/www/klimawandel/klimawandel.sinatra +56 -0
  2112. data/lib/roebe/www/kriminelle_firmen/kriminelle_firmen.cgi +7 -0
  2113. data/lib/roebe/www/kriminelle_firmen/kriminelle_firmen.rb +26 -0
  2114. data/lib/roebe/www/kriminelle_firmen/kriminelle_firmen.sinatra +52 -0
  2115. data/lib/roebe/www/krita/krita.cgi +7 -0
  2116. data/lib/roebe/www/krita/krita.rb +53 -0
  2117. data/lib/roebe/www/krita/krita.sinatra +56 -0
  2118. data/lib/roebe/www/k/303/244se/k/303/244se.cgi +9 -0
  2119. data/lib/roebe/www/k/303/244se/k/303/244se.rb +114 -0
  2120. data/lib/roebe/www/k/303/244se/k/303/244se.sinatra +56 -0
  2121. data/lib/roebe/www/languages/languages.cgi +7 -0
  2122. data/lib/roebe/www/languages/languages.rb +66 -0
  2123. data/lib/roebe/www/languages/languages.sinatra +52 -0
  2124. data/lib/roebe/www/laser/laser.cgi +7 -0
  2125. data/lib/roebe/www/laser/laser.rb +179 -0
  2126. data/lib/roebe/www/laser/laser.sinatra +56 -0
  2127. data/lib/roebe/www/latex/HelloWorld.tex +9 -0
  2128. data/lib/roebe/www/latex/latex.cgi +7 -0
  2129. data/lib/roebe/www/latex/latex.rb +77 -0
  2130. data/lib/roebe/www/latex/latex.sinatra +56 -0
  2131. data/lib/roebe/www/law/law.cgi +7 -0
  2132. data/lib/roebe/www/law/law.rb +932 -0
  2133. data/lib/roebe/www/law/law.sinatra +56 -0
  2134. data/lib/roebe/www/lego/lego.cgi +7 -0
  2135. data/lib/roebe/www/lego/lego.rb +53 -0
  2136. data/lib/roebe/www/lego/lego.sinatra +52 -0
  2137. data/lib/roebe/www/libreoffice/empty_libreoffice_document.docx +0 -0
  2138. data/lib/roebe/www/libreoffice/empty_libreoffice_document.odt +0 -0
  2139. data/lib/roebe/www/libreoffice/empty_libreoffice_presentation.odp +0 -0
  2140. data/lib/roebe/www/libreoffice/empty_libreoffice_spreadsheet.xls +1 -0
  2141. data/lib/roebe/www/libreoffice/libreoffice.cgi +9 -0
  2142. data/lib/roebe/www/libreoffice/libreoffice.rb +66 -0
  2143. data/lib/roebe/www/libreoffice/libreoffice.sinatra +56 -0
  2144. data/lib/roebe/www/libreoffice/macros/README.md +4 -0
  2145. data/lib/roebe/www/libreoffice/macros/hello_world.macro +24 -0
  2146. data/lib/roebe/www/libreoffice/macros/hello_world_in_python.py_macro +7 -0
  2147. data/lib/roebe/www/lighttpd/autogenerated_lighttpd.conf +426 -0
  2148. data/lib/roebe/www/lighttpd/configuration/cgi.conf +21 -0
  2149. data/lib/roebe/www/lighttpd/configuration/dir_listing.conf +15 -0
  2150. data/lib/roebe/www/lighttpd/configuration/document_root.conf +11 -0
  2151. data/lib/roebe/www/lighttpd/configuration/groupname.conf +9 -0
  2152. data/lib/roebe/www/lighttpd/configuration/index.conf +29 -0
  2153. data/lib/roebe/www/lighttpd/configuration/logfiles.conf +18 -0
  2154. data/lib/roebe/www/lighttpd/configuration/mimetypes.conf +86 -0
  2155. data/lib/roebe/www/lighttpd/configuration/modules.conf +75 -0
  2156. data/lib/roebe/www/lighttpd/configuration/php.conf +11 -0
  2157. data/lib/roebe/www/lighttpd/configuration/pid_file.conf +1 -0
  2158. data/lib/roebe/www/lighttpd/configuration/port.conf +13 -0
  2159. data/lib/roebe/www/lighttpd/configuration/redirects.conf +67 -0
  2160. data/lib/roebe/www/lighttpd/configuration/status.conf +29 -0
  2161. data/lib/roebe/www/lighttpd/configuration/upload.conf +5 -0
  2162. data/lib/roebe/www/lighttpd/configuration/username.conf +4 -0
  2163. data/lib/roebe/www/lighttpd/lighttpd.cgi +7 -0
  2164. data/lib/roebe/www/lighttpd/lighttpd.rb +132 -0
  2165. data/lib/roebe/www/lighttpd/lighttpd.sinatra +52 -0
  2166. data/lib/roebe/www/lilo/lilo.cgi +9 -0
  2167. data/lib/roebe/www/lilo/lilo.conf +71 -0
  2168. data/lib/roebe/www/lilo/lilo.rb +114 -0
  2169. data/lib/roebe/www/lilo/lilo.sinatra +56 -0
  2170. data/lib/roebe/www/links/links.cgi +9 -0
  2171. data/lib/roebe/www/links/links.rb +310 -0
  2172. data/lib/roebe/www/links/links.sinatra +56 -0
  2173. data/lib/roebe/www/linux/ICEWM/preferences +1476 -0
  2174. data/lib/roebe/www/linux/fedora/fedora.cgi +7 -0
  2175. data/lib/roebe/www/linux/fedora/fedora.rb +37 -0
  2176. data/lib/roebe/www/linux/fedora/fedora.sinatra +56 -0
  2177. data/lib/roebe/www/linux/linux.cgi +12 -0
  2178. data/lib/roebe/www/linux/linux.rb +6360 -0
  2179. data/lib/roebe/www/linux/linux.sinatra +56 -0
  2180. data/lib/roebe/www/linux/linuxmint/linuxmint.cgi +7 -0
  2181. data/lib/roebe/www/linux/linuxmint/linuxmint.rb +36 -0
  2182. data/lib/roebe/www/linux/linuxmint/linuxmint.sinatra +56 -0
  2183. data/lib/roebe/www/linux/resources/Xdefaults +180 -0
  2184. data/lib/roebe/www/linux_certifications/linux_certifications.cgi +7 -0
  2185. data/lib/roebe/www/linux_certifications/linux_certifications.rb +15 -0
  2186. data/lib/roebe/www/linux_certifications/linux_certifications.sinatra +56 -0
  2187. data/lib/roebe/www/linux_commands/linux_commands.cgi +7 -0
  2188. data/lib/roebe/www/linux_commands/linux_commands.rb +4701 -0
  2189. data/lib/roebe/www/linux_commands/linux_commands.sinatra +56 -0
  2190. data/lib/roebe/www/linux_distributions/linux_distributions.cgi +9 -0
  2191. data/lib/roebe/www/linux_distributions/linux_distributions.rb +2686 -0
  2192. data/lib/roebe/www/linux_distributions/linux_distributions.sinatra +56 -0
  2193. data/lib/roebe/www/llvm/llvm.cgi +7 -0
  2194. data/lib/roebe/www/llvm/llvm.rb +38 -0
  2195. data/lib/roebe/www/llvm/llvm.sinatra +56 -0
  2196. data/lib/roebe/www/luft/luft.cgi +7 -0
  2197. data/lib/roebe/www/luft/luft.rb +15 -0
  2198. data/lib/roebe/www/luft/luft.sinatra +52 -0
  2199. data/lib/roebe/www/luft/luft_english.md +96 -0
  2200. data/lib/roebe/www/luft/luft_german.md +117 -0
  2201. data/lib/roebe/www/m4/m4.cgi +7 -0
  2202. data/lib/roebe/www/m4/m4.rb +24 -0
  2203. data/lib/roebe/www/m4/m4.sinatra +56 -0
  2204. data/lib/roebe/www/make/make.cgi +7 -0
  2205. data/lib/roebe/www/make/make.rb +216 -0
  2206. data/lib/roebe/www/make/make.sinatra +56 -0
  2207. data/lib/roebe/www/markdown/cheat_sheet.md +17 -0
  2208. data/lib/roebe/www/markdown/example.md +232 -0
  2209. data/lib/roebe/www/marketing/marketing.cgi +7 -0
  2210. data/lib/roebe/www/marketing/marketing.rb +22 -0
  2211. data/lib/roebe/www/marketing/marketing.sinatra +56 -0
  2212. data/lib/roebe/www/mars/mars.cgi +7 -0
  2213. data/lib/roebe/www/mars/mars.rb +51 -0
  2214. data/lib/roebe/www/mars/mars.sinatra +52 -0
  2215. data/lib/roebe/www/mathematics/logarithmus/logarithmus.cgi +40 -0
  2216. data/lib/roebe/www/mathematics/mathematics.cgi +7 -0
  2217. data/lib/roebe/www/mathematics/mathematics.rb +910 -0
  2218. data/lib/roebe/www/mathematics/mathematics.sinatra +52 -0
  2219. data/lib/roebe/www/meson/meson.cgi +7 -0
  2220. data/lib/roebe/www/meson/meson.rb +45 -0
  2221. data/lib/roebe/www/meson/meson.sinatra +56 -0
  2222. data/lib/roebe/www/metabolic_pathways/metabolic_pathways.cgi +9 -0
  2223. data/lib/roebe/www/metabolic_pathways/metabolic_pathways.rb +196 -0
  2224. data/lib/roebe/www/metabolic_pathways/metabolic_pathways.sinatra +56 -0
  2225. data/lib/roebe/www/methods_in_molecular_biology/methods_in_molecular_biology.cgi +7 -0
  2226. data/lib/roebe/www/methods_in_molecular_biology/methods_in_molecular_biology.rb +156 -0
  2227. data/lib/roebe/www/methods_in_molecular_biology/methods_in_molecular_biology.sinatra +56 -0
  2228. data/lib/roebe/www/microbiology/microbiology.cgi +7 -0
  2229. data/lib/roebe/www/microbiology/microbiology.rb +581 -0
  2230. data/lib/roebe/www/microbiology/microbiology.sinatra +56 -0
  2231. data/lib/roebe/www/microphones/microphones.cgi +7 -0
  2232. data/lib/roebe/www/microphones/microphones.rb +53 -0
  2233. data/lib/roebe/www/microphones/microphones.sinatra +56 -0
  2234. data/lib/roebe/www/microscopy/microscopy.cgi +7 -0
  2235. data/lib/roebe/www/microscopy/microscopy.rb +182 -0
  2236. data/lib/roebe/www/microscopy/microscopy.sinatra +56 -0
  2237. data/lib/roebe/www/microsoft/how_to_compile_from_source_on_windows/how_to_compile_from_source_on_windows.cgi +7 -0
  2238. data/lib/roebe/www/microsoft/how_to_compile_from_source_on_windows/how_to_compile_from_source_on_windows.rb +57 -0
  2239. data/lib/roebe/www/microsoft/how_to_compile_from_source_on_windows/how_to_compile_from_source_on_windows.sinatra +56 -0
  2240. data/lib/roebe/www/microsoft/microsoft.cgi +11 -0
  2241. data/lib/roebe/www/microsoft/microsoft.rb +2260 -0
  2242. data/lib/roebe/www/microsoft/microsoft.sinatra +56 -0
  2243. data/lib/roebe/www/mikrobielle_physiologie/mikrobielle_physiologie.cgi +7 -0
  2244. data/lib/roebe/www/mikrobielle_physiologie/mikrobielle_physiologie.rb +373 -0
  2245. data/lib/roebe/www/mikrobielle_physiologie/mikrobielle_physiologie.sinatra +56 -0
  2246. data/lib/roebe/www/military/military.cgi +7 -0
  2247. data/lib/roebe/www/military/military.rb +23 -0
  2248. data/lib/roebe/www/military/military.sinatra +56 -0
  2249. data/lib/roebe/www/mitochondria/mitochondria.cgi +31 -0
  2250. data/lib/roebe/www/module_www.rb +27 -0
  2251. data/lib/roebe/www/molecular_therapies/molecular_therapies.cgi +7 -0
  2252. data/lib/roebe/www/molecular_therapies/molecular_therapies.rb +166 -0
  2253. data/lib/roebe/www/molecular_therapies/molecular_therapies.sinatra +56 -0
  2254. data/lib/roebe/www/mrxvt/mrxvtrc +424 -0
  2255. data/lib/roebe/www/multimedia_and_law/multimedia_and_law.cgi +7 -0
  2256. data/lib/roebe/www/multimedia_and_law/multimedia_and_law.rb +118 -0
  2257. data/lib/roebe/www/multimedia_and_law/multimedia_and_law.sinatra +56 -0
  2258. data/lib/roebe/www/mysql/mysql.cgi +7 -0
  2259. data/lib/roebe/www/mysql/mysql.rb +544 -0
  2260. data/lib/roebe/www/mysql/mysql.sinatra +52 -0
  2261. data/lib/roebe/www/nanotechnology/nanotechnology.cgi +7 -0
  2262. data/lib/roebe/www/nanotechnology/nanotechnology.rb +173 -0
  2263. data/lib/roebe/www/nanotechnology/nanotechnology.sinatra +56 -0
  2264. data/lib/roebe/www/nato/nato.cgi +7 -0
  2265. data/lib/roebe/www/nato/nato.rb +35 -0
  2266. data/lib/roebe/www/nato/nato.sinatra +52 -0
  2267. data/lib/roebe/www/netbsd/netbsd.cgi +7 -0
  2268. data/lib/roebe/www/netbsd/netbsd.rb +27 -0
  2269. data/lib/roebe/www/netbsd/netbsd.sinatra +52 -0
  2270. data/lib/roebe/www/networking_on_linux/networking_on_linux.cgi +7 -0
  2271. data/lib/roebe/www/networking_on_linux/networking_on_linux.rb +1607 -0
  2272. data/lib/roebe/www/networking_on_linux/networking_on_linux.sinatra +56 -0
  2273. data/lib/roebe/www/neurobiology/neurobiology.cgi +7 -0
  2274. data/lib/roebe/www/neurobiology/neurobiology.md +19 -0
  2275. data/lib/roebe/www/neurobiology/neurobiology.rb +280 -0
  2276. data/lib/roebe/www/neurobiology/neurobiology.sinatra +56 -0
  2277. data/lib/roebe/www/news/news.cgi +7 -0
  2278. data/lib/roebe/www/news/news.rb +20 -0
  2279. data/lib/roebe/www/news/news.sinatra +56 -0
  2280. data/lib/roebe/www/news/news_content.md +2788 -0
  2281. data/lib/roebe/www/nginx/nginx.cgi +7 -0
  2282. data/lib/roebe/www/nginx/nginx.rb +18 -0
  2283. data/lib/roebe/www/nginx/nginx.sinatra +56 -0
  2284. data/lib/roebe/www/nim/nim.cgi +7 -0
  2285. data/lib/roebe/www/nim/nim.rb +77 -0
  2286. data/lib/roebe/www/nim/nim.sinatra +56 -0
  2287. data/lib/roebe/www/nosql/nosql.cgi +7 -0
  2288. data/lib/roebe/www/nosql/nosql.rb +23 -0
  2289. data/lib/roebe/www/nosql/nosql.sinatra +52 -0
  2290. data/lib/roebe/www/ntfs/ntfs.cgi +7 -0
  2291. data/lib/roebe/www/ntfs/ntfs.rb +41 -0
  2292. data/lib/roebe/www/ntfs/ntfs.sinatra +56 -0
  2293. data/lib/roebe/www/n/303/244chtliche_jagd/n/303/244chtliche_jagd.cgi +7 -0
  2294. data/lib/roebe/www/n/303/244chtliche_jagd/n/303/244chtliche_jagd.rb +461 -0
  2295. data/lib/roebe/www/n/303/244chtliche_jagd/n/303/244chtliche_jagd.sinatra +61 -0
  2296. data/lib/roebe/www/ogre3d/ogre3d.cgi +7 -0
  2297. data/lib/roebe/www/ogre3d/ogre3d.rb +247 -0
  2298. data/lib/roebe/www/ogre3d/ogre3d.sinatra +56 -0
  2299. data/lib/roebe/www/openbsd/openbsd.cgi +7 -0
  2300. data/lib/roebe/www/openbsd/openbsd.rb +28 -0
  2301. data/lib/roebe/www/openbsd/openbsd.sinatra +56 -0
  2302. data/lib/roebe/www/opengl/opengl.cgi +9 -0
  2303. data/lib/roebe/www/opengl/opengl.rb +193 -0
  2304. data/lib/roebe/www/opengl/opengl.sinatra +56 -0
  2305. data/lib/roebe/www/openssl/openssl.cgi +7 -0
  2306. data/lib/roebe/www/openssl/openssl.rb +60 -0
  2307. data/lib/roebe/www/openssl/openssl.sinatra +56 -0
  2308. data/lib/roebe/www/opera/opera.cgi +7 -0
  2309. data/lib/roebe/www/opera/opera.rb +38 -0
  2310. data/lib/roebe/www/opera/opera.sinatra +56 -0
  2311. data/lib/roebe/www/operating_systems/reactos/reactos.cgi +9 -0
  2312. data/lib/roebe/www/operating_systems/reactos/reactos.rb +96 -0
  2313. data/lib/roebe/www/operating_systems/reactos/reactos.sinatra +56 -0
  2314. data/lib/roebe/www/optical_character_recognition/optical_character_recognition.cgi +7 -0
  2315. data/lib/roebe/www/optical_character_recognition/optical_character_recognition.rb +85 -0
  2316. data/lib/roebe/www/optical_character_recognition/optical_character_recognition.sinatra +56 -0
  2317. data/lib/roebe/www/our_solar_system/our_solar_system.cgi +7 -0
  2318. data/lib/roebe/www/our_solar_system/our_solar_system.rb +393 -0
  2319. data/lib/roebe/www/our_solar_system/our_solar_system.sinatra +56 -0
  2320. data/lib/roebe/www/packaging_on_linux/packaging_on_linux.cgi +7 -0
  2321. data/lib/roebe/www/packaging_on_linux/packaging_on_linux.rb +385 -0
  2322. data/lib/roebe/www/packaging_on_linux/packaging_on_linux.sinatra +56 -0
  2323. data/lib/roebe/www/palemoon/palemoon.cgi +7 -0
  2324. data/lib/roebe/www/palemoon/palemoon.rb +102 -0
  2325. data/lib/roebe/www/palemoon/palemoon.sinatra +56 -0
  2326. data/lib/roebe/www/paradise_island/paradise_island.cgi +9 -0
  2327. data/lib/roebe/www/paradise_island/paradise_island.rb +418 -0
  2328. data/lib/roebe/www/paradise_island/paradise_island.sinatra +56 -0
  2329. data/lib/roebe/www/patente/patente.cgi +7 -0
  2330. data/lib/roebe/www/patente/patente.rb +55 -0
  2331. data/lib/roebe/www/patente/patente.sinatra +56 -0
  2332. data/lib/roebe/www/pdf/pdf.cgi +7 -0
  2333. data/lib/roebe/www/pdf/pdf.rb +130 -0
  2334. data/lib/roebe/www/pdf/pdf.sinatra +56 -0
  2335. data/lib/roebe/www/pekwm/autoproperties +219 -0
  2336. data/lib/roebe/www/pekwm/config +72 -0
  2337. data/lib/roebe/www/pekwm/keys +301 -0
  2338. data/lib/roebe/www/pekwm/menu +97 -0
  2339. data/lib/roebe/www/pekwm/mouse +141 -0
  2340. data/lib/roebe/www/pekwm/start +18 -0
  2341. data/lib/roebe/www/pekwm/vars +2 -0
  2342. data/lib/roebe/www/phones_and_mobile_phones/phones_and_mobile_phones.cgi +7 -0
  2343. data/lib/roebe/www/phones_and_mobile_phones/phones_and_mobile_phones.rb +66 -0
  2344. data/lib/roebe/www/phones_and_mobile_phones/phones_and_mobile_phones.sinatra +56 -0
  2345. data/lib/roebe/www/photosynthesis/photosynthesis.cgi +7 -0
  2346. data/lib/roebe/www/photosynthesis/photosynthesis.rb +23 -0
  2347. data/lib/roebe/www/photosynthesis/photosynthesis.sinatra +56 -0
  2348. data/lib/roebe/www/physics/physics.cgi +7 -0
  2349. data/lib/roebe/www/physics/physics.rb +281 -0
  2350. data/lib/roebe/www/physics/physics.sinatra +56 -0
  2351. data/lib/roebe/www/physiology/physiology.cgi +7 -0
  2352. data/lib/roebe/www/physiology/physiology.rb +306 -0
  2353. data/lib/roebe/www/physiology/physiology.sinatra +56 -0
  2354. data/lib/roebe/www/pidgin/pidgin.cgi +7 -0
  2355. data/lib/roebe/www/pidgin/pidgin.rb +10 -0
  2356. data/lib/roebe/www/pidgin/pidgin.sinatra +56 -0
  2357. data/lib/roebe/www/plants/plants.cgi +7 -0
  2358. data/lib/roebe/www/plants/plants.rb +29 -0
  2359. data/lib/roebe/www/plants/plants.sinatra +56 -0
  2360. data/lib/roebe/www/politics/politics.cgi +7 -0
  2361. data/lib/roebe/www/politics/politics.rb +24 -0
  2362. data/lib/roebe/www/politics/politics.sinatra +56 -0
  2363. data/lib/roebe/www/politics/yaml/wahlbeteiligung_wien.yml +6 -0
  2364. data/lib/roebe/www/porg/main.m +26 -0
  2365. data/lib/roebe/www/porg/porg.cgi +7 -0
  2366. data/lib/roebe/www/porg/porg.rb +14 -0
  2367. data/lib/roebe/www/porg/porg.sinatra +56 -0
  2368. data/lib/roebe/www/porg/rpaco_base.h +19 -0
  2369. data/lib/roebe/www/porg/rpaco_base.m +20 -0
  2370. data/lib/roebe/www/povray/povray.cgi +7 -0
  2371. data/lib/roebe/www/povray/povray.rb +289 -0
  2372. data/lib/roebe/www/povray/povray.sinatra +56 -0
  2373. data/lib/roebe/www/povray/povray_files/sphere_and_lights.pov +14 -0
  2374. data/lib/roebe/www/povray/povray_files/sphere_and_lights_test.pov +28 -0
  2375. data/lib/roebe/www/powershell/powershell.cgi +7 -0
  2376. data/lib/roebe/www/powershell/powershell.rb +31 -0
  2377. data/lib/roebe/www/powershell/powershell.sinatra +56 -0
  2378. data/lib/roebe/www/preisvergleiche/preisvergleiche.cgi +7 -0
  2379. data/lib/roebe/www/preisvergleiche/preisvergleiche.rb +53 -0
  2380. data/lib/roebe/www/preisvergleiche/preisvergleiche.sinatra +56 -0
  2381. data/lib/roebe/www/presentations/fuzzy_words_versus_action_words.md +9 -0
  2382. data/lib/roebe/www/presentations/presentations.cgi +7 -0
  2383. data/lib/roebe/www/presentations/presentations.rb +102 -0
  2384. data/lib/roebe/www/presentations/presentations.sinatra +52 -0
  2385. data/lib/roebe/www/presentations/useful_words.md +16 -0
  2386. data/lib/roebe/www/problems_of_the_european_union/problems_of_the_european_union.cgi +7 -0
  2387. data/lib/roebe/www/problems_of_the_european_union/problems_of_the_european_union.rb +416 -0
  2388. data/lib/roebe/www/problems_of_the_european_union/problems_of_the_european_union.sinatra +52 -0
  2389. data/lib/roebe/www/programming_advice/programming_advice.yml +13 -0
  2390. data/lib/roebe/www/programming_bible/programming_bible.cgi +7 -0
  2391. data/lib/roebe/www/programming_bible/programming_bible.rb +32 -0
  2392. data/lib/roebe/www/programming_bible/programming_bible.sinatra +56 -0
  2393. data/lib/roebe/www/programming_languages/R/R.cgi +9 -0
  2394. data/lib/roebe/www/programming_languages/R/R.rb +1368 -0
  2395. data/lib/roebe/www/programming_languages/R/R.sinatra +56 -0
  2396. data/lib/roebe/www/programming_languages/R/examples/boxplot_example.R +42 -0
  2397. data/lib/roebe/www/programming_languages/R/functions/functions.R +104 -0
  2398. data/lib/roebe/www/programming_languages/javascript/javascript.cgi +10 -0
  2399. data/lib/roebe/www/programming_languages/javascript/javascript.rb +313 -0
  2400. data/lib/roebe/www/programming_languages/javascript/javascript.sinatra +56 -0
  2401. data/lib/roebe/www/propaganda/propaganda.cgi +7 -0
  2402. data/lib/roebe/www/propaganda/propaganda.rb +29 -0
  2403. data/lib/roebe/www/propaganda/propaganda.sinatra +56 -0
  2404. data/lib/roebe/www/protein_engineering/protein_engineering.cgi +5 -0
  2405. data/lib/roebe/www/protein_engineering/protein_engineering.rb +124 -0
  2406. data/lib/roebe/www/protein_engineering/protein_engineering.sinatra +56 -0
  2407. data/lib/roebe/www/proteins/proteins.cgi +7 -0
  2408. data/lib/roebe/www/proteins/proteins.rb +32 -0
  2409. data/lib/roebe/www/proteins/proteins.sinatra +56 -0
  2410. data/lib/roebe/www/psychologie/psychologie.cgi +7 -0
  2411. data/lib/roebe/www/psychologie/psychologie.rb +195 -0
  2412. data/lib/roebe/www/psychologie/psychologie.sinatra +56 -0
  2413. data/lib/roebe/www/publishing_scientific_papers/useful_phrases_and_tips_for_publishing_scientific_papers.md +256 -0
  2414. data/lib/roebe/www/quotes/quotes.cgi +7 -0
  2415. data/lib/roebe/www/quotes/quotes.rb +393 -0
  2416. data/lib/roebe/www/quotes/quotes.sinatra +52 -0
  2417. data/lib/roebe/www/radioactivity/radioactivity.cgi +36 -0
  2418. data/lib/roebe/www/ratpoison/ratpoisonrc +62 -0
  2419. data/lib/roebe/www/restriktionsenzyme/restriktionsenzyme.cgi +7 -0
  2420. data/lib/roebe/www/restriktionsenzyme/restriktionsenzyme.rb +78 -0
  2421. data/lib/roebe/www/restriktionsenzyme/restriktionsenzyme.sinatra +56 -0
  2422. data/lib/roebe/www/rfid/rfid.cgi +7 -0
  2423. data/lib/roebe/www/rfid/rfid.rb +956 -0
  2424. data/lib/roebe/www/rfid/rfid.sinatra +56 -0
  2425. data/lib/roebe/www/robots/robots.cgi +9 -0
  2426. data/lib/roebe/www/robots/robots.rb +18 -0
  2427. data/lib/roebe/www/robots/robots.sinatra +56 -0
  2428. data/lib/roebe/www/routers/routers.cgi +7 -0
  2429. data/lib/roebe/www/routers/routers.rb +46 -0
  2430. data/lib/roebe/www/routers/routers.sinatra +56 -0
  2431. data/lib/roebe/www/ruby_viewer/ruby_viewer.cgi +7 -0
  2432. data/lib/roebe/www/ruby_viewer/ruby_viewer.rb +60 -0
  2433. data/lib/roebe/www/ruby_viewer/ruby_viewer.sinatra +56 -0
  2434. data/lib/roebe/www/scanner/scanner.cgi +9 -0
  2435. data/lib/roebe/www/scanner/scanner.rb +185 -0
  2436. data/lib/roebe/www/scanner/scanner.sinatra +56 -0
  2437. data/lib/roebe/www/science/science.cgi +7 -0
  2438. data/lib/roebe/www/science/science.rb +1841 -0
  2439. data/lib/roebe/www/science/science.sinatra +56 -0
  2440. data/lib/roebe/www/security/security.cgi +7 -0
  2441. data/lib/roebe/www/security/security.rb +264 -0
  2442. data/lib/roebe/www/security/security.sinatra +52 -0
  2443. data/lib/roebe/www/sed/sed_script_remove_colours.sed +1 -0
  2444. data/lib/roebe/www/shells/shells.cgi +7 -0
  2445. data/lib/roebe/www/shells/shells.rb +258 -0
  2446. data/lib/roebe/www/shells/shells.sinatra +56 -0
  2447. data/lib/roebe/www/shops/shops.cgi +7 -0
  2448. data/lib/roebe/www/shops/shops.rb +26 -0
  2449. data/lib/roebe/www/shops/shops.sinatra +56 -0
  2450. data/lib/roebe/www/simpsons/simpsons.cgi +7 -0
  2451. data/lib/roebe/www/simpsons/simpsons.rb +24 -0
  2452. data/lib/roebe/www/simpsons/simpsons.sinatra +56 -0
  2453. data/lib/roebe/www/socken/socken.cgi +7 -0
  2454. data/lib/roebe/www/socken/socken.rb +25 -0
  2455. data/lib/roebe/www/socken/socken.sinatra +56 -0
  2456. data/lib/roebe/www/solarzellen/solarzellen.cgi +7 -0
  2457. data/lib/roebe/www/solarzellen/solarzellen.rb +13 -0
  2458. data/lib/roebe/www/solarzellen/solarzellen.sinatra +56 -0
  2459. data/lib/roebe/www/space_exploration/space_exploration.cgi +7 -0
  2460. data/lib/roebe/www/space_exploration/space_exploration.rb +23 -0
  2461. data/lib/roebe/www/space_exploration/space_exploration.sinatra +56 -0
  2462. data/lib/roebe/www/statistik/statistik.cgi +7 -0
  2463. data/lib/roebe/www/statistik/statistik.rb +612 -0
  2464. data/lib/roebe/www/statistik/statistik.sinatra +56 -0
  2465. data/lib/roebe/www/std_linux.rb +83 -0
  2466. data/lib/roebe/www/strom/strom.cgi +7 -0
  2467. data/lib/roebe/www/strom/strom.rb +74 -0
  2468. data/lib/roebe/www/strom/strom.sinatra +56 -0
  2469. data/lib/roebe/www/sudoers/sudoers +43 -0
  2470. data/lib/roebe/www/svg/svg.cgi +7 -0
  2471. data/lib/roebe/www/svg/svg.rb +47 -0
  2472. data/lib/roebe/www/svg/svg.sinatra +56 -0
  2473. data/lib/roebe/www/synthetic_biology/synthetic_biology.cgi +7 -0
  2474. data/lib/roebe/www/synthetic_biology/synthetic_biology.rb +165 -0
  2475. data/lib/roebe/www/synthetic_biology/synthetic_biology.sinatra +56 -0
  2476. data/lib/roebe/www/systemd/systemd.cgi +9 -0
  2477. data/lib/roebe/www/systemd/systemd.rb +50 -0
  2478. data/lib/roebe/www/systemd/systemd.sinatra +56 -0
  2479. data/lib/roebe/www/techniques_in_molecular_biology/techniques_in_molecular_biology.cgi +7 -0
  2480. data/lib/roebe/www/techniques_in_molecular_biology/techniques_in_molecular_biology.rb +95 -0
  2481. data/lib/roebe/www/techniques_in_molecular_biology/techniques_in_molecular_biology.sinatra +56 -0
  2482. data/lib/roebe/www/terminals/lilyterm.md +8 -0
  2483. data/lib/roebe/www/terminals/terminals.cgi +7 -0
  2484. data/lib/roebe/www/terminals/terminals.rb +125 -0
  2485. data/lib/roebe/www/terminals/terminals.sinatra +56 -0
  2486. data/lib/roebe/www/the_linux_kernel/the_linux_kernel.cgi +11 -0
  2487. data/lib/roebe/www/the_linux_kernel/the_linux_kernel.rb +1660 -0
  2488. data/lib/roebe/www/the_linux_kernel/the_linux_kernel.sinatra +56 -0
  2489. data/lib/roebe/www/thinking_methods/thinking_methods.cgi +7 -0
  2490. data/lib/roebe/www/thinking_methods/thinking_methods.rb +144 -0
  2491. data/lib/roebe/www/thinking_methods/thinking_methods.sinatra +56 -0
  2492. data/lib/roebe/www/thunderbird/thunderbird.cgi +7 -0
  2493. data/lib/roebe/www/thunderbird/thunderbird.rb +70 -0
  2494. data/lib/roebe/www/thunderbird/thunderbird.sinatra +56 -0
  2495. data/lib/roebe/www/time/time.cgi +7 -0
  2496. data/lib/roebe/www/time/time.rb +82 -0
  2497. data/lib/roebe/www/time/time.sinatra +56 -0
  2498. data/lib/roebe/www/tmux/tmux.cgi +7 -0
  2499. data/lib/roebe/www/tmux/tmux.rb +34 -0
  2500. data/lib/roebe/www/tmux/tmux.sinatra +56 -0
  2501. data/lib/roebe/www/toxikologie/toxikologie.cgi +7 -0
  2502. data/lib/roebe/www/toxikologie/toxikologie.rb +35 -0
  2503. data/lib/roebe/www/toxikologie/toxikologie.sinatra +56 -0
  2504. data/lib/roebe/www/trac/trac.cgi +7 -0
  2505. data/lib/roebe/www/trac/trac.rb +46 -0
  2506. data/lib/roebe/www/trac/trac.sinatra +56 -0
  2507. data/lib/roebe/www/training/training.cgi +7 -0
  2508. data/lib/roebe/www/training/training.rb +278 -0
  2509. data/lib/roebe/www/training/training.sinatra +52 -0
  2510. data/lib/roebe/www/transcription/transcription.cgi +43 -0
  2511. data/lib/roebe/www/udev/udev.cgi +7 -0
  2512. data/lib/roebe/www/udev/udev.rb +128 -0
  2513. data/lib/roebe/www/udev/udev.sinatra +56 -0
  2514. data/lib/roebe/www/unionfs/unionfs.cgi +8 -0
  2515. data/lib/roebe/www/unionfs/unionfs.rb +325 -0
  2516. data/lib/roebe/www/unionfs/unionfs.sinatra +56 -0
  2517. data/lib/roebe/www/usb/usb.cgi +7 -0
  2518. data/lib/roebe/www/usb/usb.rb +743 -0
  2519. data/lib/roebe/www/usb/usb.sinatra +52 -0
  2520. data/lib/roebe/www/vectors/vectors.cgi +7 -0
  2521. data/lib/roebe/www/vectors/vectors.rb +53 -0
  2522. data/lib/roebe/www/vectors/vectors.sinatra +56 -0
  2523. data/lib/roebe/www/view_via_pre_tag/README.md +2 -0
  2524. data/lib/roebe/www/view_via_pre_tag/view_via_pre_tag.cgi +26 -0
  2525. data/lib/roebe/www/vim/aliases/vim_aliases.yml +487 -0
  2526. data/lib/roebe/www/vim/autocmds/vim_autocmds +50 -0
  2527. data/lib/roebe/www/vim/colours/desert.vim +105 -0
  2528. data/lib/roebe/www/vim/colours/golden.vim +72 -0
  2529. data/lib/roebe/www/vim/colours/sienna.vim +47 -0
  2530. data/lib/roebe/www/vim/colours/softblue.vim +45 -0
  2531. data/lib/roebe/www/vim/colours/zenburn.vim +135 -0
  2532. data/lib/roebe/www/vim/functions/functions +185 -0
  2533. data/lib/roebe/www/vim/mappings/mappings.md +372 -0
  2534. data/lib/roebe/www/vim/matrix/matrix.vim +316 -0
  2535. data/lib/roebe/www/vim/tetris/tetris.vim +331 -0
  2536. data/lib/roebe/www/vim/vim.cgi +7 -0
  2537. data/lib/roebe/www/vim/vim.rb +856 -0
  2538. data/lib/roebe/www/vim/vim.sinatra +52 -0
  2539. data/lib/roebe/www/vim/vimrc/vimrc +332 -0
  2540. data/lib/roebe/www/virology/virology.cgi +7 -0
  2541. data/lib/roebe/www/virology/virology.rb +514 -0
  2542. data/lib/roebe/www/virology/virology.sinatra +56 -0
  2543. data/lib/roebe/www/virtual_reality/virtual_reality.cgi +7 -0
  2544. data/lib/roebe/www/virtual_reality/virtual_reality.rb +155 -0
  2545. data/lib/roebe/www/virtual_reality/virtual_reality.sinatra +52 -0
  2546. data/lib/roebe/www/visual_studio/visual_studio.cgi +7 -0
  2547. data/lib/roebe/www/visual_studio/visual_studio.rb +29 -0
  2548. data/lib/roebe/www/visual_studio/visual_studio.sinatra +56 -0
  2549. data/lib/roebe/www/vitamines/vitamines.cgi +11 -0
  2550. data/lib/roebe/www/vitamines/vitamines.rb +105 -0
  2551. data/lib/roebe/www/vitamines/vitamines.sinatra +56 -0
  2552. data/lib/roebe/www/vnc/vnc.cgi +7 -0
  2553. data/lib/roebe/www/vnc/vnc.rb +28 -0
  2554. data/lib/roebe/www/vnc/vnc.sinatra +56 -0
  2555. data/lib/roebe/www/voice_recorders/voice_recorders.cgi +7 -0
  2556. data/lib/roebe/www/voice_recorders/voice_recorders.rb +48 -0
  2557. data/lib/roebe/www/voice_recorders/voice_recorders.sinatra +52 -0
  2558. data/lib/roebe/www/wahrscheinlichkeit/wahrscheinlichkeit.cgi +7 -0
  2559. data/lib/roebe/www/wahrscheinlichkeit/wahrscheinlichkeit.rb +270 -0
  2560. data/lib/roebe/www/wahrscheinlichkeit/wahrscheinlichkeit.sinatra +56 -0
  2561. data/lib/roebe/www/war_in_Ukraine_2022/war_in_Ukraine_2022.cgi +7 -0
  2562. data/lib/roebe/www/war_in_Ukraine_2022/war_in_Ukraine_2022.rb +84 -0
  2563. data/lib/roebe/www/war_in_Ukraine_2022/war_in_Ukraine_2022.sinatra +56 -0
  2564. data/lib/roebe/www/waschmaschinen/waschmaschinen.cgi +7 -0
  2565. data/lib/roebe/www/waschmaschinen/waschmaschinen.rb +136 -0
  2566. data/lib/roebe/www/waschmaschinen/waschmaschinen.sinatra +52 -0
  2567. data/lib/roebe/www/webserving/webserving.cgi +7 -0
  2568. data/lib/roebe/www/webserving/webserving.rb +905 -0
  2569. data/lib/roebe/www/webserving/webserving.sinatra +52 -0
  2570. data/lib/roebe/www/weechat/weechat.cgi +7 -0
  2571. data/lib/roebe/www/weechat/weechat.rb +166 -0
  2572. data/lib/roebe/www/weechat/weechat.sinatra +52 -0
  2573. data/lib/roebe/www/wein/wein.cgi +7 -0
  2574. data/lib/roebe/www/wein/wein.rb +16 -0
  2575. data/lib/roebe/www/wein/wein.sinatra +56 -0
  2576. data/lib/roebe/www/wget/wgetrc +124 -0
  2577. data/lib/roebe/www/why_linux/why_linux.cgi +7 -0
  2578. data/lib/roebe/www/why_linux/why_linux.rb +301 -0
  2579. data/lib/roebe/www/why_linux/why_linux.sinatra +56 -0
  2580. data/lib/roebe/www/wikis/wikis.cgi +7 -0
  2581. data/lib/roebe/www/wikis/wikis.rb +18 -0
  2582. data/lib/roebe/www/wikis/wikis.sinatra +56 -0
  2583. data/lib/roebe/www/wine/wine.cgi +7 -0
  2584. data/lib/roebe/www/wine/wine.rb +323 -0
  2585. data/lib/roebe/www/wine/wine.sinatra +52 -0
  2586. data/lib/roebe/www/wine/wine_config +69 -0
  2587. data/lib/roebe/www/wings3d/data/House_Villa.wings +0 -0
  2588. data/lib/roebe/www/wings3d/wings3d.cgi +7 -0
  2589. data/lib/roebe/www/wings3d/wings3d.rb +56 -0
  2590. data/lib/roebe/www/wings3d/wings3d.sinatra +56 -0
  2591. data/lib/roebe/www/witze/witze.cgi +9 -0
  2592. data/lib/roebe/www/witze/witze.rb +1040 -0
  2593. data/lib/roebe/www/witze/witze.sinatra +56 -0
  2594. data/lib/roebe/www/wlan/wlan.cgi +9 -0
  2595. data/lib/roebe/www/wlan/wlan.rb +760 -0
  2596. data/lib/roebe/www/wlan/wlan.sinatra +56 -0
  2597. data/lib/roebe/www/wlan/wpa_supplicant.conf +57 -0
  2598. data/lib/roebe/www/working_from_home/working_from_home.md +60 -0
  2599. data/lib/roebe/www/world_health_organization/world_health_organization.cgi +7 -0
  2600. data/lib/roebe/www/world_health_organization/world_health_organization.rb +69 -0
  2601. data/lib/roebe/www/world_health_organization/world_health_organization.sinatra +56 -0
  2602. data/lib/roebe/www/xampp/xampp.cgi +7 -0
  2603. data/lib/roebe/www/xampp/xampp.rb +126 -0
  2604. data/lib/roebe/www/xampp/xampp.sinatra +56 -0
  2605. data/lib/roebe/www/xchat/xchat.cgi +7 -0
  2606. data/lib/roebe/www/xchat/xchat.rb +146 -0
  2607. data/lib/roebe/www/xchat/xchat.sinatra +56 -0
  2608. data/lib/roebe/www/xmas/xmas.cgi +7 -0
  2609. data/lib/roebe/www/xmas/xmas.rb +521 -0
  2610. data/lib/roebe/www/xmas/xmas.sinatra +56 -0
  2611. data/lib/roebe/www/xorg/xorg.cgi +9 -0
  2612. data/lib/roebe/www/xorg/xorg.rb +2912 -0
  2613. data/lib/roebe/www/xorg/xorg.sinatra +56 -0
  2614. data/lib/roebe/www/yeast/yeast.cgi +7 -0
  2615. data/lib/roebe/www/yeast/yeast.rb +139 -0
  2616. data/lib/roebe/www/yeast/yeast.sinatra +56 -0
  2617. data/lib/roebe/www/zenity/zenity.cgi +7 -0
  2618. data/lib/roebe/www/zenity/zenity.rb +208 -0
  2619. data/lib/roebe/www/zenity/zenity.sinatra +56 -0
  2620. data/lib/roebe/www/zitieren/example.md +10 -0
  2621. data/lib/roebe/www/zitieren/wie_zitiert_man_in_der_Wissenschaft_richtig.md +261 -0
  2622. data/lib/roebe/www/zoologie/zoologie.cgi +7 -0
  2623. data/lib/roebe/www/zoologie/zoologie.gtk +150 -0
  2624. data/lib/roebe/www/zoologie/zoologie.rb +162 -0
  2625. data/lib/roebe/www/zoologie/zoologie.sinatra +56 -0
  2626. data/lib/roebe/www/zoom/zoom.cgi +7 -0
  2627. data/lib/roebe/www/zoom/zoom.rb +55 -0
  2628. data/lib/roebe/www/zoom/zoom.sinatra +56 -0
  2629. data/lib/roebe/www/zsh/zshrc +360 -0
  2630. data/lib/roebe/xml/catalog +29 -0
  2631. data/lib/roebe/yaml/advertisement_servers.yml +18 -0
  2632. data/lib/roebe/yaml/autogenerate_these_rewrite_rules/autogenerate_these_rewrite_rules.yml +131 -0
  2633. data/lib/roebe/yaml/autostart_these_programs.yml +22 -0
  2634. data/lib/roebe/yaml/bezirke_in_wien/bezirke_in_wien.yml +29 -0
  2635. data/lib/roebe/yaml/boot_settings/boot_settings.yml +53 -0
  2636. data/lib/roebe/yaml/browser.yml +1 -0
  2637. data/lib/roebe/yaml/compile/compile.yml +262 -0
  2638. data/lib/roebe/yaml/current_ruby_versions.yml +12 -0
  2639. data/lib/roebe/yaml/directory_structure.yml +121 -0
  2640. data/lib/roebe/yaml/display_settings/display_settings.yml +184 -0
  2641. data/lib/roebe/yaml/e_kennzeichnungen/e_kennzeichnungen.yml +101 -0
  2642. data/lib/roebe/yaml/error_codes/error_codes.yml +342 -0
  2643. data/lib/roebe/yaml/escape_codes/escape_codes.yml +12 -0
  2644. data/lib/roebe/yaml/famous_bboys/famous_bboys.yml +14 -0
  2645. data/lib/roebe/yaml/file_information.yml +34 -0
  2646. data/lib/roebe/yaml/fonts/fonts.yml +33 -0
  2647. data/lib/roebe/yaml/forbidden_IPs.yml +2 -0
  2648. data/lib/roebe/yaml/fstab/fstab.yml +122 -0
  2649. data/lib/roebe/yaml/funstuff/am/303/274sante_deutsche_w/303/266rter.yml +2 -0
  2650. data/lib/roebe/yaml/gnome/gnome.yml +8 -0
  2651. data/lib/roebe/yaml/holidays/holidays.yml +24 -0
  2652. data/lib/roebe/yaml/http_status_codes/http_status_codes.yml +52 -0
  2653. data/lib/roebe/yaml/individual_environment_variables/cflags.yml +59 -0
  2654. data/lib/roebe/yaml/individual_environment_variables/lang.yml +75 -0
  2655. data/lib/roebe/yaml/individual_environment_variables/ldflags.yml +2 -0
  2656. data/lib/roebe/yaml/individual_environment_variables/term.yml +14 -0
  2657. data/lib/roebe/yaml/ip_suffix/ip_suffix.yml +22 -0
  2658. data/lib/roebe/yaml/irc/irc.yml +11 -0
  2659. data/lib/roebe/yaml/kde/kde.yml +54 -0
  2660. data/lib/roebe/yaml/kernel/kernel.yml +11 -0
  2661. data/lib/roebe/yaml/kernel_config/kernel_config.yml +79 -0
  2662. data/lib/roebe/yaml/linux_kernel_settings.yml +11 -0
  2663. data/lib/roebe/yaml/ls_colors.yml +17 -0
  2664. data/lib/roebe/yaml/main_avi.yml +1 -0
  2665. data/lib/roebe/yaml/main_editor.yml +1 -0
  2666. data/lib/roebe/yaml/main_jpg.yml +1 -0
  2667. data/lib/roebe/yaml/main_pdf.yml +1 -0
  2668. data/lib/roebe/yaml/main_png.yml +1 -0
  2669. data/lib/roebe/yaml/mark_this_directory.yml +1 -0
  2670. data/lib/roebe/yaml/mime/mime.yml +615 -0
  2671. data/lib/roebe/yaml/mime_types.yml +37 -0
  2672. data/lib/roebe/yaml/monitors/monitors.yml +127 -0
  2673. data/lib/roebe/yaml/n_people_in_these_countries.yml +31 -0
  2674. data/lib/roebe/yaml/name_for_the_wireless_interface.yml +1 -0
  2675. data/lib/roebe/yaml/pdf/pdf1.yml +1 -0
  2676. data/lib/roebe/yaml/pdf/pdf2.yml +1 -0
  2677. data/lib/roebe/yaml/pdf/pdf3.yml +1 -0
  2678. data/lib/roebe/yaml/pdf/pdf4.yml +1 -0
  2679. data/lib/roebe/yaml/pdf/pdf5.yml +1 -0
  2680. data/lib/roebe/yaml/pdf/pdf6.yml +1 -0
  2681. data/lib/roebe/yaml/pdf/pdf7.yml +1 -0
  2682. data/lib/roebe/yaml/pdf/pdf8.yml +1 -0
  2683. data/lib/roebe/yaml/pdf/pdf9.yml +1 -0
  2684. data/lib/roebe/yaml/peoples_age.yml +6 -0
  2685. data/lib/roebe/yaml/ports/ports.yml +50 -0
  2686. data/lib/roebe/yaml/posix_character_classes.yml +13 -0
  2687. data/lib/roebe/yaml/project_base_directory.yml +0 -0
  2688. data/lib/roebe/yaml/rufnummern_in_/303/266sterreich/rufnummern_in_/303/266sterreich.yml +5 -0
  2689. data/lib/roebe/yaml/size_of_countries.yml +197 -0
  2690. data/lib/roebe/yaml/statistics/statistics.yml +17 -0
  2691. data/lib/roebe/yaml/sternzeichen/sternzeichen.yml +16 -0
  2692. data/lib/roebe/yaml/system/system.yml +80 -0
  2693. data/lib/roebe/yaml/temperature_of_the_planets_in_our_solar_system/temperature_of_the_planets_in_our_solar_system.yml +22 -0
  2694. data/lib/roebe/yaml/test/README.md +4 -0
  2695. data/lib/roebe/yaml/test/umlaute.yml +2 -0
  2696. data/lib/roebe/yaml/the_beginning_of_linux/the_beginning_of_linux.yml +29 -0
  2697. data/lib/roebe/yaml/use_colours.yml +1 -0
  2698. data/lib/roebe/yaml/world_capitals/world_capitals.yml +204 -0
  2699. data/lib/roebe/yaml/world_geography_and_people/world_geography_and_people.yml +13 -0
  2700. data/lib/roebe.rb +7 -0
  2701. data/roebe.gemspec +104 -0
  2702. data/test/hello_world/hello_world.rb +1 -0
  2703. data/test/misc/README.md +2 -0
  2704. data/test/misc/arity_example.rb +44 -0
  2705. data/test/misc/display_the_shell_colours.rb +48 -0
  2706. data/test/misc/fetch_a_specific_key_from_a_hash.rb +26 -0
  2707. data/test/misc/fork_example.rb +15 -0
  2708. data/test/misc/hello_world.rb +1 -0
  2709. data/test/misc/heredoc_example.rb +9 -0
  2710. data/test/misc/minimal_irc_bot/minimal_irc_bot.rb +33 -0
  2711. data/test/misc/name_of_this_script.rb +12 -0
  2712. data/test/misc/read_keypresses.rb +79 -0
  2713. data/test/misc/readline/README.md +1 -0
  2714. data/test/misc/readline/completion_for_a_static_list.rb +33 -0
  2715. data/test/misc/simple_sigint_example.rb +51 -0
  2716. data/test/misc/simple_user_input_via_stdin_or_Readline_example.rb +14 -0
  2717. data/test/misc/tcp_socket_example.rb +28 -0
  2718. data/test/misc/tracer.rb +39 -0
  2719. data/test/misc/with_border.rb +22 -0
  2720. data/test/testing_cat.rb +3 -0
  2721. data/test/testing_class_configuration/testing_class_configuration.rb +81 -0
  2722. data/test/testing_core_functionality_of_ruby/README.md +6 -0
  2723. data/test/testing_core_functionality_of_ruby/file_test.rb +1 -0
  2724. data/test/testing_core_functionality_of_ruby/verbose_file_copy.rb +5 -0
  2725. data/test/testing_google_url_cleaner.rb +25 -0
  2726. data/test/testing_http_status_codes.rb +13 -0
  2727. data/test/testing_identical.rb +17 -0
  2728. data/test/testing_move_file.rb +14 -0
  2729. data/test/testing_permission_ascii_format.rb +23 -0
  2730. data/test/testing_sql_paradise.rb +17 -0
  2731. data/test/testing_the_roebe_shell.rb +31 -0
  2732. data/test/testing_twentyfour_hours_notation.rb +37 -0
  2733. data/test/testing_zenity.rb +26 -0
  2734. metadata +2877 -0
@@ -0,0 +1,1989 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # And stored all variables as globals to keep the garbage collector from
6
+ # eating them, things progressed quickly.
7
+ # =========================================================================== #
8
+ module Roebe::Documentation
9
+
10
+ # ========================================================================= #
11
+ # === Roebe::Documentation.header
12
+ # ========================================================================= #
13
+ def self.header(i = '')
14
+ h2(i)
15
+ end
16
+
17
+ # ========================================================================= #
18
+ # === Roebe::Documentation.ruby_c
19
+ # ========================================================================= #
20
+ def self.ruby_c
21
+ _ = ''.dup
22
+ here = '/home/x/DATA/PROGRAMMING_LANGUAGES/RUBY/src/C/'
23
+ if File.directory? here
24
+ entries = Dir[here+'**/**'].flatten.select {|entry|
25
+ File.file? entry
26
+ }
27
+ entries.each { |file|
28
+ description = sg(:pfeil3,'marr8px')+file
29
+ _ << a('src/C/'+file, content: description, css_class: 'marl3m')+
30
+ br
31
+ }
32
+ end
33
+ div(css_class: 'outer_div') {
34
+ div(css_class: 'default', id: __method__.to_s) {
35
+ h2(__method__)+
36
+ br+
37
+ e('Dies ist mein Tutorial, wie man Ruby <b>embedded</b>, also mit
38
+ C Programmen verknüpft.')+
39
+ br+
40
+ e('Ein Vorteil des "Embedding" ist der immense
41
+ <b class="darkblue FI">Geschwindigkeitsgewinn</b>.')+
42
+ br+
43
+ e('Meine Beispiele hierzu findet man unter:')+
44
+ br+
45
+ cmd(' cd $RSRC/C')+
46
+ br+
47
+ p('ind0px smaller'){ # Display the files under $RSRC/C.
48
+ _
49
+ }+
50
+ frage('Wie überprüfe ich, in Ruby-MRB, ob ein String Objekt
51
+ frozen ist?')+
52
+ cmd(' !MRB_FROZEN_P(mrb->exc)) {')+
53
+ br+
54
+ e('Man kann auch recht einfach bestehende .rb Dateien
55
+ in Ruby-C (um)schreiben.')+
56
+ br+
57
+ e('Dir Initialisierung (also der Beginn) geht via:')+
58
+ br+
59
+ l3em(' ruby_init()','BO')+
60
+ br+
61
+ e('Dabei wird der <b>Ruby Interpreter</b> initialisiert.')+
62
+ br+
63
+ cmd(' ruby_init_loadpath()')+
64
+ br+
65
+ e('ist sehr wichtig wenn man Module laden will, denn sie
66
+ initialisiert')+
67
+ br+
68
+ e('die <b class="BO">$LOAD_PATH Variable</b>.')+
69
+ br+
70
+ e('Sie enthält auch den Ort von <b>site_ruby</b>.')+
71
+ br+
72
+ e('<b>ruby_script(name</b> ist einfach, denn diese Funktion
73
+ weist den Namen des Ruby Scripts an die $0 variable.')+
74
+ br+
75
+ e('Abfragen gehen zum Beispiel so:')+
76
+ br+
77
+ cmd(' if $0 != "embed"')+
78
+ br+
79
+ e('Fehlt dies, so <b></b>wird $0 der false Wert zugewiesen</b>.')+
80
+ br+
81
+ e('Klingt ein wenig chaotisch?')+
82
+ br+
83
+ e('Nun gut - bringen wir ein wenig Ordnung in dieses Chaos.')+
84
+ br+
85
+ # ===================================================================== #
86
+ # === Ruby QTrue tag (true tag)
87
+ # ===================================================================== #
88
+ h4('Ruby True',HEADER_CSS,'true',HEADER_BORDER)+
89
+ cmd('VALUE some_function(VALUE mod)')+
90
+ cmd('{')+
91
+ cmd2(' return Qtrue;')+
92
+ cmd('}')+
93
+ br+
94
+ # ===================================================================== #
95
+ # === Define alias in Ruby C. alias tag.
96
+ # ===================================================================== #
97
+ h4('Ruby Aliases in C',HEADER_CSS, HEADER_BORDER,
98
+ 'rb_define_alias')+
99
+ e('Dies geht via <b>rb_define_alias</b>, wobei der
100
+ erste Name der AliasName ist:')+
101
+ br+
102
+ cmd(' rb_define_alias(klass, name1, name2);')+
103
+ cmd(' rb_define_alias(cJukebox, "a", "add");')+
104
+ cmd(' rb_define_alias(cJukebox, "d", "delete");')+
105
+ br+
106
+ e('(Das gehört zum Beispiel innerhalb der <b>Init_*</b> Funktion rein.)')+
107
+ br+
108
+ # ===================================================================== #
109
+ # === Ruby Funcall
110
+ # ===================================================================== #
111
+ h4('Ruby Funcall',HEADER_CSS,'ruby_funcall',HEADER_BORDER)+
112
+ e('rb_funcall - Calls a method.')+
113
+ br+
114
+ e('First arg is the invocant','marl1em')+
115
+ br+
116
+ e(' Second is the method','marl2em')+
117
+ br+
118
+ e(' Third is the number of arguments','marl3em')+
119
+ br+
120
+ e('Der Rest sind die restlichen Argumente.')+
121
+ br+
122
+ cmd(' rb_funcall(file, method, 1, self);')+
123
+ cmd(' VALUE name = rb_funcall(current, rb_intern("to_s"), 0);')+
124
+ br+
125
+ anm('<b>rb_funcall</b> raises a NameError if you try to call
126
+ a method that does not exist.')+
127
+ br+
128
+ # ==================================================================== #
129
+ # === rb iv get tag
130
+ #
131
+ # Getter Methode.
132
+ #
133
+ # rf ruby_embedded rb_iv_get
134
+ #
135
+ # ===================================================================== #
136
+ h4('rb_iv_get',HEADER_CSS,'rb_iv_get',HEADER_BORDER)+
137
+ e('Getter Methode auf Ruby-C Ebene.')+
138
+ br+
139
+ cmd(' array_sum = rb_iv_get(self, "@array_sum");')+
140
+ br+
141
+ cmd(' rb_iv_get(self, "@file");')+
142
+ cmd(' rb_iv_get(self, "@line");')+
143
+ br+
144
+ # ===================================================================== #
145
+ # === Ruby Cache
146
+ # ===================================================================== #
147
+ h4('Ruby Cache',HEADER_CSS,'ruby_cache',HEADER_BORDER)+
148
+ cmd(' rb_clear_cache_by_id(id);')+
149
+ br+
150
+ # ===================================================================== #
151
+ # === RESPOND TO
152
+ # ===================================================================== #
153
+ h4('Ruby and .respond_to?',HEADER_CSS,'ruby_respond_to',HEADER_BORDER)+
154
+ cmd('rb_respond_to(current, rb_intern("to_s")));')+
155
+ br+
156
+ # ===================================================================== #
157
+ # === protect method calls in ruby-C
158
+ # ===================================================================== #
159
+ h4('Ruby and protected methods?',HEADER_CSS,'rb_protet',HEADER_BORDER)+
160
+ e('Method calls can be protected by surrounding them via:')+
161
+ br+
162
+ cmd('rb_protect();')+
163
+ br+
164
+ # ===================================================================== #
165
+ # === Ruby Thread Schedule
166
+ # ===================================================================== #
167
+ h4('Ruby Thread Schedule',HEADER_CSS,'ruby_thread_schedule',HEADER_BORDER)+
168
+ e('Mache einen Scheduler:')+
169
+ br+
170
+ cmd(' rb_thread_schedule();')+
171
+ br+
172
+ e('Once you are finished with your Ruby thread and assuming no
173
+ other threads are scheduled to run, control will return back to the
174
+ point in C extension where you called rb_thread_schedule().')+
175
+ br+
176
+ e('Das ganze ist letzten Endes <b>Thread.pass</b> in Ruby direkt
177
+ äquivalent.')+
178
+ br+
179
+ # ===================================================================== #
180
+ # Modul Funktionen definieren
181
+ # ===================================================================== #
182
+ h4('Modul Funktionen definieren',HEADER_CSS, 'ruby_module_functions',HEADER_BORDER)+
183
+ cmd(' mModul = rb_define_module("CModul");')+
184
+ cmd(' rb_define_module_function(mModul, "sendeGrussAnC", sendeGrussAnC, 1);')+
185
+ cmd(' rb_define_module_function(mDB2CLI,
186
+ "SQLColAttribute", db2_SQLColAttribute, 4);')+
187
+ br+
188
+ e('Das erste Argument in rb_define_module_function ist das Module, das
189
+ die Funktion erhalten soll.')+
190
+ br+
191
+ # ===================================================================== #
192
+ # === Ruby Info. Ruby Version.
193
+ # ===================================================================== #
194
+ h4('Ruby Info',HEADER_CSS,'ruby_info',HEADER_BORDER)+
195
+ e('Zeige information über Ruby an:')+
196
+ br+
197
+ cmd(' ruby_show_version(); // shows ruby info like so:
198
+ ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-linux]')+
199
+ br+
200
+ # ===================================================================== #
201
+ # === Data get Tag. get tag. struct tag.
202
+ # ===================================================================== #
203
+ div(id: 'Data_Get_Struct'){
204
+ e("Data_Get_Struct wird recht häufig eingesetzt")+
205
+ br+
206
+ e('Zuerst die allgemeine Syntax hierzu:')+
207
+ br+
208
+ cmd(' void Data_Get_Struct(VALUE obj, type, type *ptr')+
209
+ cmd(' Data_Get_Struct(self, qp_movie_context, movie_ctx);')+
210
+ br+
211
+ e('Die C Extension sieht dann etwa so aus:')+
212
+ br+
213
+ cmd(' VALUE CompondShape_arelink VALUE self) {')+
214
+ cmd(' CompoundShape *ptr;')+
215
+ cmd(' Data_Get_Struct(selof, CompoundShape, ptr);')
216
+ }+
217
+ # ===================================================================== #
218
+ # === Ruby Return Values.
219
+ #
220
+ # qtrue tag siehe eins darunter.
221
+ #
222
+ # return tag. qnil tag. qfalse tag.
223
+ # ===================================================================== #
224
+ h4('Ruby Return Values',HEADER_CSS,'return_values',HEADER_BORDER)+
225
+ e('Ein VALUE (wie die folgenden) auf der C Seite ist das Äquivalent
226
+ zu einem Object auf Ruby Seite.')+
227
+ br+
228
+ e('Hat man eine Funktion vom void type, gibt man <b>return Qnil</b>
229
+ zurück.')+
230
+ br+
231
+ cmd(' return Qtrue;')+
232
+ cmd(' return Qfalse;')+
233
+ cmd(' return Qnil;')+
234
+ cmd(' return Qundef;')+
235
+ br+
236
+ # ===================================================================== #
237
+ # === RUBY METHODEN DEFINIEREN in C via rb_define_method tag
238
+ #
239
+ # method tag
240
+ # METHODEN tag. rf embedded ruby_methods
241
+ # ===================================================================== #
242
+ h4('Methoden - Ruby Methoden definieren in RUBY C, (es wird eine Klasse
243
+ gebraucht)', HEADER_CSS, 'ruby_methods', HEADER_BORDER)+
244
+ e('In Ruby erklärt man eine Methode mittels
245
+ <b class="darkblue">def</b>.')+
246
+ br+
247
+ e('Auf C Seite geschieht das mittels <b>rb_define_method</b>.')+
248
+ br+
249
+ e('Jede Methode in Ruby-C, die etwas bestimmtes mit Ruby Pointern
250
+ macht, muss als erstes Argument <b>VALUE self</b> erhalten.')+
251
+ br+
252
+ e('Beispiel:')+
253
+ br+
254
+ cmd(' static VALUE t_add(VALUE self, VALUE anObject);')+
255
+ br+
256
+ e('Instanz Methoden in Ruby-C setzt man mittels
257
+ <b>rb_define_method</b>:')+
258
+ br+
259
+ cmd(' static VALUE der_klassen_pointer;')+
260
+ cmd(' rb_define_method(dieRubyKlasse, const char * methodName, VALUE(*) cFunc, int numArgs);')+
261
+ cmd(' rb_define_method(der_klassen_pointer, "add", t_add, 1);')+
262
+ cmd(' rb_define_method(cTest, "initialize", t_init, 0);')+
263
+ cmd(' rb_define_method(cSimpleClass, "add_to_array", t_add, 1 // akzeptiert 1 Argument);')+
264
+ cmd(' rb_define_method(cSimpleClass, "show_var", t_show_var, 0);')+
265
+ cmd(' rb_define_method(cCircle, "area", Circle_area, 3 // akzeptiert 3 Argumente);')+
266
+ cmd(' rb_define_method(rb_mKernel, "nil?", rb_false, 0);')+
267
+ cmd(' rb_define_method(rb_cMeine_klasse, "methoden_name_in_ruby",
268
+ name_der_c_funktion, anzahl_der_argumente_als_int);')+
269
+ br+
270
+ e('Das erste Argument ist also immer die Klasse, an der die Methode anhaftet -
271
+ das letzte Argument sagt einem, wie viele Argumente die Methode erhalten
272
+ soll.')+
273
+ br+
274
+ e('Nun ein kurzer Ausflug nach array.c, um anzusehen,
275
+ wie es implementiert ist auf C Ebene:')+
276
+ br+
277
+ cmd('rb_define_method(rb_cArray,"to_s", rb_ary_to_s, 0);')+
278
+ br+
279
+ e('Um die <b>method_id</b> zu bekommen verwendet man rb_intern:')+
280
+ br+
281
+ cmd(' rb_intern("method_name");')+
282
+ br+
283
+ e('Noch ein kompletteres Beispiel, wie so eine Methode dann
284
+ aussieht:')+
285
+ br+
286
+ cmd(' VALUE your_method(VALUE self) {')+
287
+ cmd2(' int x = 10;')+
288
+ cmd2(' return INT2NUM(x')+
289
+ cmd(' }')+
290
+ br+
291
+ # ===================================================================== #
292
+ # === CONSTANTS AND RUBY const tag constants tag
293
+ # rf rubyembedded ruby_constants
294
+ # ===================================================================== #
295
+ h4('Constants und Ruby',HEADER_CSS,'ruby_constants',HEADER_BORDER)+
296
+ e('Eine globale Konstante kann man in Ruby so definieren:')+
297
+ br+
298
+ cmd(' rb_define_global_const("RELEASE_DATE", d);')+
299
+ br+
300
+ e('wobei d in etwa so definiert wäre:')+
301
+ br+
302
+ cmd(' VALUE d = rb_obj_freeze(rb_str_new2(ruby_release_date);')+
303
+ cmd(' const char ruby_release_date[] = RUBY_RELEASE_DATE;')+
304
+ br+
305
+ e('Eine <b>normale Konstante</b> in Ruby folgt diesen Regeln:')+
306
+ br+
307
+ cmd(' rb_define_const(klass, name_of_our_constant, value);')+
308
+ cmd(' rb_define_const(module_or_class, "NAME", value);' )+
309
+ br+
310
+ e('name_of_our_constant ist der Name unserer Konstanten.')+
311
+ br+
312
+ e('Weitere, konkrete Beispiele für Konstanten:')+
313
+ br+
314
+ cmd(' rb_define_const("RELEASE_DATE", d);')+
315
+ cmd(' rb_define_const(module, "Value", rb_str_new2("Hello World"));')+
316
+ cmd(' rb_define_const(rb_mProcess, "PRIO_PROCESS", INT2FIX(PRIO_PROCESS);')+
317
+ cmd(' rb_define_const(rb_mProcess, "PRIO_PGRP", INT2FIX(PRIO_PGRP);')+
318
+ cmd(' rb_define_const(rb_mProcess, "PRIO_USER", INT2FIX(PRIO_USER);')+
319
+ cmd(' rb_define_const(mRubygame,"INIT_TIMER",INT2NUM(SDL_INIT_TIMER);')+
320
+ cmd(' rb_define_const(cCD,"STOPPED",INT2NUM(CD_STOPPED);')+
321
+ cmd(' rb_define_const(cCD,"PLAYING",INT2NUM(CD_PLAYING);')+
322
+ cmd(' rb_define_const(cCD,"PAUSED",INT2NUM(CD_PAUSED);')+
323
+ cmd(' rb_define_const(cCD,"ERROR",INT2NUM(CD_ERROR);')+
324
+ cmd(' rb_define_const(mVte, "BUILD_VERSION);",
325
+ rb_ary_new3(3, INT2FIX(VTE_MAJOR_VERSION),
326
+ INT2FIX(VTE_MINOR_VERSION), INT2FIX(VTE_MICRO_VERSION)));')+
327
+ br+
328
+ e('Innerhalb einer ifdef Schleife geht dies so:')+
329
+ br+
330
+ cmd(' ifdef RLIMIT_CORE')+
331
+ cmd2(' rb_define_const(rb_mProcess, "RLIMIT_CORE", INT2FIX(RLIMIT_CORE)')+
332
+ cmd(' #endif')+
333
+ br+
334
+ # ===================================================================== #
335
+ # === Ruby False tag
336
+ # ===================================================================== #
337
+ h4('Ruby False',HEADER_CSS,'false',HEADER_BORDER)+
338
+ e('In ruby können wir <b>false</b> wie folgt verwenden:')+
339
+ br+
340
+ cmd('VALUE some_function(VALUE mod)')+
341
+ cmd('{')+
342
+ cmd2(' return Qfalse;')+
343
+ cmd('}')+
344
+ br+
345
+ # ===================================================================== #
346
+ # === RUBY OBJEKTE IN C
347
+ #
348
+ # Ruby_objekte. # rf embedded Ruby_objekte
349
+ # ===================================================================== #
350
+ h4('Ruby Objekte in C',HEADER_CSS,'Ruby_objekte',HEADER_BORDER)+
351
+ e('In Ruby wird jeder Inhalt eines Objektes mittels
352
+ einer <b>C Structure</b> beschrieben.')+
353
+ br+
354
+ e('Dies wird mittels <b>pointer</b> realisiert.')+
355
+ br+
356
+ e('Jede Klasse hat eine andere <b>struct</b>, der Pointer Type ist
357
+ aber immer <b>VALUE</b>. Mit anderen Worten, ein VALUE auf C
358
+ Ebene ist ein Objekt auf Ruby Ebene.')+
359
+ br+
360
+ img('PC/RUBY/ch_object_value.png','bblack1 mars1em')+
361
+ br+
362
+ e('<b>VALUE</b> wiederum findet man in <b>ruby.h</b>')+
363
+ br+
364
+ e('vim $PROGRAMS/Ruby/Current/lib/ruby/1.8/i686-linux/ruby.h','BO s3em')+
365
+ br+
366
+ e('Dort gibt es viele besondere Structs, wie zum Beispiel:')+
367
+ br+
368
+ cmd2(' struct RData')+
369
+ cmd2(' struct RBasic')+
370
+ cmd2(' struct RObject')+
371
+ cmd2(' struct RClass ')+
372
+ cmd2(' struct RHash')+
373
+ cmd2(' struct RFile')+
374
+ cmd2(' struct RFloat')+
375
+ cmd2(' struct RString # siehe Anhang für ein beispiel')+
376
+ cmd2(' struct RArray ')+
377
+ cmd2(' struct RRegexp')+
378
+ br+
379
+ e('Und <b>VALUE</b> hat diese Struktur:')+
380
+ br+
381
+ cmd('typedef unsigned long VALUE;')+
382
+ br+
383
+ e('Folgendes Beispiel zeigt eine <b>Initialierung eines Ruby
384
+ Array</b> (entspräche dem Ruby Code <b>def initialize</b>):')+
385
+ br+
386
+ cmd('static VALUE t_init(VALUE self) //# def initialize')+
387
+ cmd('{')+
388
+ cmd2(' VALUE array;')+
389
+ cmd2(' array = rb_ary_new();')+
390
+ cmd2(' rb_iv_set(self, "@array", array);')+
391
+ cmd2(' return self;')+
392
+ cmd('}')+
393
+ br+
394
+ e('Genauer betrachtet ist .new in Ruby-C etwas komplizierter,
395
+ wie folgendes Beispiel illustriert:')+
396
+ br+
397
+ cmd(' info = Data_Make_Struct(cTest, MP3Info, 0, free, one);')+
398
+ br+
399
+ cmd(' rb_obj_call_init(info, argc, argv);')+
400
+ br+
401
+ e('Klassen sind in Ruby ein <b>zentrales Element</b>,
402
+ die zuerst deklariert werden müssen, bevor man sie
403
+ verwenden kann.','padl1em')+
404
+ br+
405
+ e('Folgendes Beispiel illustriert dies anhand der
406
+ cTest Klasse:')+
407
+ br+
408
+ cmd('VALUE cTest;')+
409
+ br+
410
+ cmd('void Init_my_test() {')+
411
+ cmd2('cTest = rb_define_class("MyTest", rb_cObject')+
412
+ br+
413
+ e('Jede C-Extension definiert eine globale C Funktion
414
+ namens <b>Init_</b>, der Name der Extension wird
415
+ angehängt.')+
416
+ br+
417
+ e('Mit anderen Worten, die allgemein Syntax ist:')+
418
+ br+
419
+ cmd('Init_moduleName')+
420
+ br+
421
+ e('Lädt man zb eine Datei namens <b>hello_world.so</b>,
422
+ so ist die dazugehörige Init funktion diese:')+
423
+ br+
424
+ cmd(' Init_hello_world')+
425
+ br+
426
+ e('Diese <b>muss</b> soweit mir bekannt immer vom <b>void</b>
427
+ Typ sein, nicht static oder irgendwas sonst. Beispiel:')+
428
+ br+
429
+ cmd(' void Init_global_variables();')+
430
+ cmd(' void Init_hello_world();')+
431
+ cmd(' void Init_genx4r();')+
432
+ br+
433
+ e('Diese Funktion wird aufgerufen wenn der Interpreter
434
+ die <b>Extension ladet</b>.')+
435
+ br+
436
+ e('Ausserdem kann man das ganze in eine schöne Methode
437
+ verpacken, in Verbindung mit Data_Make_Struct. Siehe
438
+ dazu folgendes Beispiel:')+
439
+ br+
440
+ cmd(' VALUE mp3_info_new() {')+
441
+ cmd2(' VALUE info;')+
442
+ cmd2(' MP3Info *one;')+
443
+ cmd2(' info = Data_Make_Struct(cTest, MP3Info, 0, free, one')+
444
+ cmd2(' rb_obj_call_init(info, 0, 0')+
445
+ cmd2(' return info;')+
446
+ cmd(' }')+
447
+ br+
448
+ # ===================================================================== #
449
+ # === rb_class2name
450
+ # ===================================================================== #
451
+ h4('Ruby Class2Name Konversion',HEADER_CSS,'rb_class2name',HEADER_BORDER)+
452
+ e('Die reverse function von rb_class2Name() ist so:')+
453
+ br+
454
+ cmd(' rb_path2class(path);')+
455
+ br+
456
+ # ===================================================================== #
457
+ # === Define ruby attr Ruby C
458
+ # ===================================================================== #
459
+ h4('Ruby Attr in C',HEADER_CSS,'rb_define_attr',HEADER_BORDER)+
460
+ e('Attr Methoden gehen einfach, wobei ein Wert von 1 ein <b>ja</b>
461
+ bedeutet.')+
462
+ br+
463
+ e('Zuerst kommt read, dann write.')+
464
+ br+
465
+ cmd(' rb_define_attr( die_klass_für_das_attr, ihr_attr_name, read, write)')+
466
+ cmd(' rb_define_attr( cLoader, "families", 1, 1 );')+
467
+ cmd(' rb_define_attr( cprivateType, "value", 1, 1 );')+
468
+ cmd(' rb_define_attr( cJukebox, "value", 1, 1 );')+
469
+ cmd(' rb_define_attr( cparser, "options", 1, 1 );')+
470
+ cmd(' rb_define_attr( cTest, "test_var", 1, 0 );')+
471
+ br+
472
+ # ===================================================================== #
473
+ # === rb_scan_args tag. rf embedded rb_scan_args
474
+ # ===================================================================== #
475
+ h4('Ruby und rb_scan_args',HEADER_CSS,'rb_scan_args',HEADER_BORDER)+
476
+ e('rb_scan_args ist zu verwenden um Arguments zu counten.')+
477
+ br+
478
+ e('Beispiel:')+
479
+ br+
480
+ cmd(' static VALUE my_function(int argc, VALUE* argv, VALUE self)')+
481
+ cmd(' {')+
482
+ cmd2(' VALUE v_name, v_age; // die argumente')+
483
+ br+
484
+ cmd2('rb_scan_args(argc, argv, "11", &v_name, &v_age')+
485
+ br+
486
+ e('Zudem kann man rb_scan_args verwenden um default values zu
487
+ setzen:')+
488
+ in_ruby+
489
+ e('def foobar(arg=1)')+
490
+ e('end')+
491
+ br+
492
+ in_ruby_c+
493
+ cmd(' rb_define_method(myclass, "method_name", meth_fnc, -1);')+
494
+ cmd(' rb_define_method_function(module, "name", c_function, argc);')+
495
+ br+
496
+ e('In your method use rb_scan_args to scan the argument list.')+
497
+ br+
498
+ e('If you dont get enough arguments, use the default values instead.')+
499
+ br+
500
+ div {
501
+ h2('Random Tidbits')+
502
+ e('Ruby stores ivars for immutable object types (e.g. Fixnum/Symbol)
503
+ in external hashes (see generic_ivar_* in variable.c for
504
+ ruby/trunk).')
505
+ }+
506
+ div {
507
+ frage('Was ist rb_funcall2?')
508
+ }+
509
+ div {
510
+ frage('Wie erhalte ich den Namen einer Klasse in Ruby-C?')+
511
+ cmd(' class Bar; end; Object.const_get("bar".capitalize).new')+
512
+ cmd(' VALUE time_klass = rb_const_get( rb_cObject, rb_intern("Time") );')
513
+ }+
514
+ div {
515
+ e('Hier eine Liste mit C code und Ruby code:')+
516
+ br+
517
+ table2('s1em','','',
518
+ 'rb_current_realfilepath', '== __FILE__'
519
+ )
520
+ }+
521
+ e('From 1.8 to 1.9...')+
522
+ e('bitsweat> change RSTRING(...)->ptr to RSTRING_PTR(...)')+
523
+ e('bitsweat> and same for ->len to _LEN')+
524
+ br+
525
+ e('Damit die .c Beispiele funktionieren, müssen sie allesamt
526
+ eine <b class="FI darkblue">Init Funktion</b> deklarieren,
527
+ wie zum Beispiel so:')+
528
+ br+
529
+ cmd(' void Init_genx4r();')+
530
+ cmd(' void Init_ruby_fstab();')+
531
+ cmd(' void Init_hello();')+
532
+ br+
533
+ e('Die Init Funktionen geben <b>nichts zurück</b> via return.')+
534
+ br+
535
+ anm('Der Name der Init Funktionen ist immer <b>der Name der
536
+ Extension</b>, also zum Beispiel:','FW4')+
537
+ br+
538
+ cmd(' void Init_extname();')+
539
+ br+
540
+ e('// void Init_jukebox() // wie man hier sieht, muss
541
+ der Name nach Init_ <b>klein</b> geschrieben werden.')+
542
+ br+
543
+ # ===================================================================== #
544
+ # === Data Wrap Tag. Wrap tag. struct tag.
545
+ # ===================================================================== #
546
+ div {
547
+ h4('Ruby Data_Wrap_Struct',HEADER_CSS,'rb_data_wrap_struct',HEADER_BORDER)+
548
+ e('Ruby-C stellt eine besonderen Data Type bereit, mit dem man Pointers
549
+ zu C und C++ Speicher nutzen kann. Der Ruby Interpreter glaubt, das es
550
+ sich um echte Ruby Klassen handelt.')+
551
+ br+
552
+ e('API des Makro ist:')+
553
+ br+
554
+ cmd(' VALUE Data_Wrap_Struct(VALUE class, void (*mark_func) (void *),
555
+ void (*free_func) (void *), void *ptr')+
556
+ br+
557
+ e('Der ptr nimmt einen Pointer zu einer Speicherort auf.')+
558
+ br+
559
+ e('Typischerweise sieht der Code dann in etwa so aus:')+
560
+ br+
561
+ lem(' CompoundShape *ptr;')+
562
+ lem(' VALUE obj;')+
563
+ br+
564
+ lem(' ptr = CreateCompoundShape(')+
565
+ lem(' obj = Data_Wrap_Struct(cCompoundShape, CompoundShape_mark,
566
+ CompoundShape_free, ptr')+
567
+ br+
568
+ e('Es gibt eine ähnliche Form dieses Funktion, und zwar wird hierbei
569
+ eine neue Instanz des C struczt erstellt, und erst danach wird die
570
+ <b>Data_Wrap_Struct()</b> Aktion durchgeführt:')+
571
+ br+
572
+ lem(' VALUE Data_Make_Struct(VALUE class, type, void
573
+ (*mark_func)(void *), void (*free_func)(void *), void
574
+ *ptr')+
575
+ br+
576
+ e('Nutzt man diesen Code, dann wird der Speicher mittels Rubys
577
+ ALLOC macro alloziiert. Dieser Makro ruft wiederum malloc() auf,
578
+ und wenn Speicher limitiert ist, ruft er Rubys Garbage Collector
579
+ auf bevor er malloc() aufruft.')+
580
+ br+
581
+ e('Anmerkung: dieser Speicher sollte mit free() befreit werden.')+
582
+ br+
583
+ e('Zudem muss man jedes Mal wenn man Data_Make_Struct() oder
584
+ <b>Data_Wrap_Struct()</b> verwendet, pointers zur C Funktion
585
+ schicken, die die mark und free Phasen sehen.')
586
+ }+
587
+ # ===================================================================== #
588
+ # === ruby_singleton_methods
589
+ # ===================================================================== #
590
+ h4('Definieren von Singleton Methods:',HEADER_CSS,
591
+ 'ruby_singleton_methods',HEADER_BORDER)+
592
+ cmd('rb_define_singleton_method')+
593
+ br+
594
+ # ===================================================================== #
595
+ # === OBJECT ID tag
596
+ #
597
+ # von http://www.oreillynet.com/ruby/blog/2006/02/ruby_values_and_object_ids.html
598
+ # ===================================================================== #
599
+ h4('Object ID von Ruby Objekten',HEADER_CSS,'ruby_object_id',HEADER_BORDER)+
600
+ e('Ruby kalkuliert Objekt IDs (object_id) wie folgt:')+ # drbrain: see rb_obj_id for how the object_id is computed
601
+ br+
602
+ cmd(' VALUE rb_obj_id(VALUE obj)')+
603
+ cmd(' {')+
604
+ cmd2(' if (SPECIAL_CONST_pobj)) {')+
605
+ cmd3(' return LONG2NUM((long)obj')+
606
+ cmd2(' }')+
607
+ cmd2(' return (VALUE)((long)obj|FIXNUM_FLAG')+
608
+ cmd('}')+
609
+ br+
610
+ e('nil.object_id zb gibt immer <b>4</b> zurück.')+
611
+ br+
612
+ # ===================================================================== #
613
+ # === Check_Type
614
+ # ===================================================================== #
615
+ h4('Herausfinden was was ist mit Check_Type',
616
+ HEADER_CSS,'ruby_check_type',HEADER_BORDER
617
+ )+
618
+ e('Finde heraus, was was ist mittels Check_Type(VALUE val, int type)')+
619
+ br+
620
+ cmd(' Check_Type(val, T_STRING); // Ist es ein String?')+
621
+ cmd(' Check_Type(val, T_OBJECT); // Ist es ein Object?')+
622
+ br+
623
+ # ===================================================================== #
624
+ # === STRUCTS TAG
625
+ # ===================================================================== #
626
+ h4('Hier ein Beispiel von Struct Usage',HEADER_CSS,'ruby_struct',HEADER_BORDER)+
627
+ cmd('struct time_object {')+
628
+ br+
629
+ cmd2(' struct timeval tv;')+
630
+ cmd2(' struct tm tm;')+
631
+ cmd2(' int gmt;')+
632
+ cmd2(' int tm_got;')+
633
+ br+
634
+ cmd('};')+
635
+ br+
636
+ cmd(' struct time_object *tobj;')+
637
+ cmd(' obj = Data_Make_Struct(klass, struct time_object, 0, time_free, tobj')+
638
+ cmd(' tobj->tm_got = 0;')+
639
+ cmd(' tobj->tv.tv_sec = 0;')+
640
+ cmd('tobj->tv.tv_usec = 0;')+
641
+ br+
642
+ # ===================================================================== #
643
+ # === COMPILEN VON RUBY C CODE STRUKTUREN. compile tag
644
+ #
645
+ # Makefile tag.
646
+ # rf embedded compiling
647
+ # ===================================================================== #
648
+ h4('Compilen von Ruby C Code Strukturen mittels mkmf / Makefile:',
649
+ HEADER_CSS,'compiling',HEADER_BORDER)+
650
+ e('Zum Compilen muss man zb dies hier machen:')+
651
+ br+
652
+ cmd('-lruby')+
653
+ br+
654
+ e('Hier ein Beispiel dazu:')+
655
+ br+
656
+ cmd('gcc test.c -lruby -o embedded','extconf')+
657
+ br+
658
+ cmd("gcc -o embeddedRuby embeddedRuby.o -O2 -fpic \\")+
659
+ cmd("-I/usr/lib/ruby/1.6/i386-linux -rdynamic
660
+ -L/usr/lib/ruby/1.6/i386-linux \\")+
661
+ cmd('-lruby -lm -ldl')+
662
+ br+
663
+ anm('Der einfachste Weg zum Kompilieren ist es aber
664
+ <b>extconf.rb</b> zu nutzen.')+
665
+ br+
666
+ e('Typische Struktur bzw Commands dazu folgt wobei wir mit
667
+ extconf.rb anfangen:')+
668
+ br+
669
+ cmd(' vim $RSRC/C/extconf.rb')+
670
+ cmd(' bl $RSRC/C/extconf.rb')+
671
+ br+
672
+ e('<b>extconf.rb</b> erlaubt einige Besonderheiten,
673
+ wie zum Beispiel <b>dir_config("some_dir")</b>.')+
674
+ br+
675
+ e('Soweit ich weiss, nutzt dies alle vorhandenen .c Dateien in
676
+ einem Verzeichnis, wird also besonders gerne angewandt bei
677
+ Verzeichnissen in <b>non-standard directories</b>.')+
678
+ br+
679
+ e('Folgend sehen wir ein kompletteres Beispiel für
680
+ <b>extconf.rb</b>:')+
681
+ br+
682
+ cmd2(" require('mkmf')")+
683
+ br+
684
+ cmd2(' dir_config("genx4r")')+
685
+ br+
686
+ cmd2(' abort "need stdio.h" unless have_header("stdio.h") # aborten geht auch')+
687
+ cmd2(" have_library('libraryName', 'libraryFunction')")+
688
+ br+
689
+ e('dir_config hat übrigens 2 weitere Argumente - Nr 2 gibt
690
+ include Paths an, Nr 3 gibt Library Paths an.')+
691
+ br+
692
+ ee('Eine weitere Methode ist <b>create_makefile</b>, Docu hierzu
693
+ sieht man ')+
694
+ a('http://www.ruby-doc.org/core/files/lib/mkmf_rb.src/M000067.html',
695
+ content: 'hier', css_class: 'BO marl2em')+
696
+ br+
697
+ br+
698
+ cmd2(' create_makefile("my_test") # my_test is the name of
699
+ your c. file')+
700
+ br+
701
+ e('Es gehen auch mehrere Argumente, wobei ich aber noch nicht
702
+ weiss, was die weiteren Argumente bewirken.')+
703
+ br+
704
+ e('Beispiel:')+
705
+ br+
706
+ cmd(" create_makefile('inotify', 'ext')")+
707
+ br+
708
+ cmd2('// or this create_makefile("genx4r")')+
709
+ br+
710
+ e('<b>dir_config</b> sagt Ruby, das man alle .c Dateien im aktuellen
711
+ Verzeichnis nutzen soll, um eine Extension namens genx4r zu
712
+ erstellen.')+
713
+ br+
714
+ anm('Danach kann man ruby extconf.rb anwenden; dies erstellt
715
+ dann eine Makefile Datei.')+
716
+ br+
717
+ e('Ob ein Computer System bestimmte <b>Headers</b> hat, kann
718
+ man so abfragen:')+
719
+ br+
720
+ cmd(" have_header('linux/inotify.h')")+
721
+ br+
722
+ e('Dies würde zb so eine Zeile ausgeben:')+
723
+ br+
724
+ cmd(' checking for linux/inotify.h... no')+
725
+ br+
726
+ e('Hier ein "chained" Beispiel dazu:')+
727
+ br+
728
+ cmd(' if have_header("readline/readline.h") and
729
+ have_header("readline/history.h") and have_library("readline", "readline")'
730
+ )+
731
+ e('Das ganze alleine bricht aber nicht ab, wenn man einen Abbruch
732
+ möchte, dann muss man ein <b>if</b> davor schalten.')+
733
+ br+
734
+ e('Mehrere headers überprüfen kann man zb so:')+
735
+ br+
736
+ cmd(" if have_header('X11/Xlib.h') and find_library('X11', 'XOpenDisplay',
737
+ '/usr/X11R6/lib') and find_library('Xpm', 'XpmCreatePixmapFromData',
738
+ '/usr/X11R6/lib') and find_library('Xext', 'XShapeCombineMask',
739
+ '/usr/X11R6/lib')")+
740
+ cmd2(" create_makefile('dockapp')")+
741
+ cmd(' end')+
742
+ br+
743
+ e('Das Übergeben einer bestimmten Bibliothek geht so:')+
744
+ br+
745
+ cmd(" have_library('foo') # -lfoo")+
746
+ cmd(" have_library('m') # -lm")+
747
+ br+
748
+ e('Will man hier gleich mehrer Libaries zugleich abfragen, geht
749
+ dies zum Beispiel so:')+
750
+ br+
751
+ cmd('if have_library("ole32") and have_library("oleaut32")')+
752
+ br+
753
+ e('Einen <b class="darkblue">speziellen Namen </b> kann man
754
+ seiner Extension auch geben (sehr zu empfehlen):')+
755
+ br+
756
+ cmd(" extension_name = 'mytest'")+
757
+ br+
758
+ e('Ein Win-Makefile kann man so erstellen:')+
759
+ br+
760
+ cmd(' create_win32ole_makefile')+
761
+ cmd2(' # To create it, run: ')+
762
+ cmd2(' ruby extconf.rb;make(')+
763
+ br+
764
+ e('Nun kommt eine Meldung "<b>creating Makefile</b>", die sehr
765
+ schnell beendet sein sollte - ansonsten handelt es sich wohl
766
+ um einen Syntax Fehler.')+
767
+ br+
768
+ e('Danach <b>make</b> aufrufen')+
769
+ br+
770
+ e('Übrigens, nicht auf <b>Init_</b> vergessen!')+
771
+ br+
772
+ e('Dies erstellt zb foobar.so (shared library), und kann dann so
773
+ genutzt werden (die <b>.so Extension</b> muss nicht angegeben
774
+ werden):')+
775
+ cmd(" require('foobar'")+
776
+ cmd(" require('global_variables'")+
777
+ br+
778
+ e('Man kann übrigens nur require verwenden, load
779
+ funktioniert nur mit .rb Dateien.')+
780
+ br+
781
+ e('Ok, folgend nun ein paar Code Beispiele für C:')+
782
+ br+
783
+ cmd(' VALUE callback(void) ')+
784
+ cmd(' {')+
785
+ cmd2(' printf("C callback\n"')+
786
+ cmd2(' return T_TRUE;')+
787
+ cmd(' }')+
788
+ br+
789
+ # ===================================================================== #
790
+ # === FIXNUMS UND RUBY (Fixnum tag, Fixnums tag.
791
+ # ===================================================================== #
792
+ h4('Fixnums und Ruby',HEADER_CSS,'ruby_fixnums',HEADER_BORDER)+
793
+ e('Fixnum, Symbol, true, false, und nil werden direkt in VALUE
794
+ gespeichert, und sind keine Pointers. Man nennt sie auch
795
+ <b>immediate values</b>.')+
796
+ br+
797
+ e('Um zu überprüfen, ob es sich bei einem Wert um einen
798
+ <b>Fixnum</b> handelt, kann man zb dies hier tun:')+
799
+ br+
800
+ cmd('FIXNUM_pvalue)')+
801
+ br+
802
+ e('Dies gibt einen Wert von <b>nicht 0</b> zurück wenn es
803
+ sich um einen Fixnum Wert handelt. Ähnliches geht auch mit
804
+ SYMBOL_P für symbols, NIL_P für nil Werte, und RTEST für Werte
805
+ die weder nil noch false sind.')+
806
+ br+
807
+ e('Im Anhang A gibts ein Listing, ansonsten folgen hier
808
+ noch einige Beispiele:')+
809
+ br+
810
+ e('/* structure for ordinary objects */')+
811
+ br+
812
+ cmd('struct RObject {')+
813
+ br+
814
+ cmd2(' struct RBasic basic;')+
815
+ cmd2(' struct st_table *iv_tbl;')+
816
+ br+
817
+ cmd('};')+
818
+ br+
819
+ e('/* structure for strings (instance of String) */')+
820
+ br+
821
+ cmd('struct RString {')+
822
+ cmd(' struct RBasic basic;')+
823
+ cmd(' long len;')+
824
+ cmd(' char *ptr;')+
825
+ cmd(' union {')+
826
+ cmd2(' long capa;')+
827
+ cmd2(' VALUE shared;')+
828
+ cmd(' } aux;')+
829
+ e(' }')+
830
+ br+
831
+ cmd('/* structure for arrays (instance of Array) */')+
832
+ br+
833
+ cmd(' struct RArray {')+
834
+ cmd2(' struct RBasic basic;')+
835
+ cmd2(' long len;')+
836
+ cmd(' union {')+
837
+ cmd2(' long capa;')+
838
+ cmd2(' VALUE shared;')+
839
+ cmd2(' } aux;')+
840
+ cmd(' VALUE *ptr;')+
841
+ cmd(' };')+
842
+ br+
843
+ e('Jede Extension in Ruby definiert eine globale C Funktion, die
844
+ so aussieht:')+
845
+ br+
846
+ cmd('Init_<i>name</i>')+
847
+ br+
848
+ e('Wie oben beschrieben definiert man den Namen einer Klasse in
849
+ C-Ruby so:')+
850
+ br+
851
+ cmd('VALUE der_klassen_pointer;')+
852
+ cmd('der_klassen_pointer = <b>rb_define_class</b>("MeineKlasse",
853
+ rb_cObject);')+
854
+ br+
855
+ # ===================================================================== #
856
+ # === Class Method. define a c method or class method.
857
+ # ===================================================================== #
858
+ h4('Class Methods',HEADER_CSS,'ruby_class_methods',HEADER_BORDER)+
859
+ cmd('define_c_method')+
860
+ br+
861
+ # ===================================================================== #
862
+ # === ruby modules tag mod tag module tag.
863
+ # ===================================================================== #
864
+ h4('Definieren von Ruby Modules', HEADER_CSS,'ruby_modules',HEADER_BORDER)+
865
+ br+
866
+ e('Es ist anzuraten, ein kleines <b>m</b> voranzustellen, um
867
+ darauf hinzuweisen, das es sich um ein Modul handelt.')+
868
+ br+
869
+ e('Dies ist eine gute Konvention in Ruby.')+
870
+ br +
871
+ cmd(' VALUE mNcurses;')+
872
+ br+
873
+ cmd(' static VALUE mWtmp;')+
874
+ cmd(' mWtmp = rb_define_module("Wtmp"); // the argument is the module name')+
875
+ cmd(' VALUE module = rb_define_module("name");' )+
876
+ cmd(' rb_mGenX = rb_define_module ("GenX");')+
877
+ br+
878
+ anm('Anmerkung: Ein module in Ruby-C gibt <b>immer</b> ein VALUE
879
+ zurück.')+
880
+ br+
881
+ cmd(' rb_define_method_function(module, "name", c_function, argc);')+
882
+ cmd(' rb_define_method_function')+
883
+ br+
884
+ e('Noch ein Beispiel:')+
885
+ br+
886
+ cmd(' static VALUE rb_mHello, mShapes;')+
887
+ cmd(' rb_mHello = rb_define_module("Hello");')+
888
+ cmd(' mShapes = rb_define_module("Shape");')+
889
+ br+
890
+ e('Module innerhalb anderer Module zu definieren geht so:')+
891
+ br+
892
+ cmd(' VALUE mRubygame;')+
893
+ br+
894
+ cmd(' mRubygame = rb_define_module("Rubygame");')+
895
+ br+
896
+ e('Hier noch wie das Modul Enumerable definiert wurde:')+
897
+ br+
898
+ cmd(' VALUE rb_mEnumerable;')+
899
+ br+
900
+ cmd(' rb_mEnumerable = rb_define_module("Enumerable");')+
901
+ br+
902
+ e('Um Module Functions zu definieren siehe')+
903
+ br+
904
+ a('#ruby_module_functions', content: 'hier')+
905
+ br+
906
+ # ===================================================================== #
907
+ # === rb_require tag
908
+ # ===================================================================== #
909
+ h4('Ruby Require',HEADER_CSS,'rb_require',HEADER_BORDER)+
910
+ cmd(' rb_require("./embedding.rb"); // Ruby-Modul laden')+
911
+ br+
912
+ # ===================================================================== #
913
+ # === rb_class_new_instance tag
914
+ # ===================================================================== #
915
+ h4('Ruby und rb_class_new_instance',HEADER_CSS, 'rb_class_new_instance',HEADER_BORDER)+
916
+ e('Beispiel:')+
917
+ br+
918
+ cmd(' VALUE entry = rb_class_new_instance (0, 0, cEntry);')+
919
+ br+
920
+ e('Was macht rb_class_new_instance?')+
921
+ br+
922
+ cmd(' obj = rb_obj_alloc(klass);')+
923
+ cmd(' rb_obj_call_init(obj, argc, argv);')+
924
+ br+
925
+ e('Man findet es in object.c')+
926
+ br+
927
+ # ===================================================================== #
928
+ # === Dynamic Libraries.
929
+ # ===================================================================== #
930
+ div('FS1em','dynamic_libraries'){
931
+ br+
932
+ e('C libraries can usually be accessed via <b>dynamic linker</b>.
933
+ Die Ruby dl-Bibliothek vereinfacht dies ungemein:')+
934
+ br+
935
+ cmd(" require('dl'")+
936
+ cmd(" require('dl/import'")+
937
+ br+
938
+ cmd(" module Libc")+
939
+ cmd(" extend DL::Importable")+
940
+ cmd(" dlload '/lib/libc.so.6'")+
941
+ cmd(" extern 'char* ttyname(int)'")+
942
+ cmd(' end')+
943
+ br+
944
+ cmd(" puts Libc.ttyname(0)")
945
+ }+
946
+ # ===================================================================== #
947
+ # === Ruby Array Entry tag.
948
+ # ===================================================================== #
949
+ h4('Ruby Array Entry',HEADER_CSS,'rb_ary_entry',HEADER_BORDER)+
950
+ cmd(' VALUE rb_ary_entry(VALUE ary, long offset)')+
951
+ cmd(' [1,2,3][2]')+
952
+ cmd(' [1,2,3].at(2)')+
953
+ br+
954
+ e('Der C Code sieht so aus:')+
955
+ br+
956
+ cmd(' VALUE num;')+
957
+ cmd(' num = rb_ary_entry(ary, offset);')+
958
+ cmd(' printf("%d\n", FIX2INT(num));')+
959
+ cmd(' VALUE num = RARRAY(ary)->ptr[offset]);')+
960
+ br+
961
+ div {
962
+ cmd('static VALUE sendeGrussAnC(VALUE self, VALUE str)')+
963
+ cmd(' {')+
964
+ cmd2(' printf("Ruby hat uns den Gruss gesendet: %s\n",')+
965
+ cmd2(' StringValuePtr(str)')+
966
+ cmd('}')+
967
+ br+
968
+ cmd('int main (int argv[], int argc)')+
969
+ cmd('{')+
970
+ cmd2(' VALUE cModul;')+
971
+ cmd2(' VALUE gruss;')
972
+ }+
973
+ br+
974
+ cmd(' printf("Ein Hallo von C\n");')+
975
+ cmd(' ruby_init; // Dieser Aufruf ist zwingend')+
976
+ cmd(' cModul = rb_define_module("CModul");')+
977
+ cmd(' rb_define_module_function(cModul,')+
978
+ cmd(' "sendeGrussAnC", sendeGrussAnC, 1);')+
979
+ br+
980
+ # ===================================================================== #
981
+ # === C HASH DEFINIEREN in C. (hash tag, hashes tag). #Hashes
982
+ # ===================================================================== #
983
+ h4('Ruby Hash definieren in RUBY C',HEADER_CSS,'Hashes',HEADER_BORDER)+
984
+ cmd(' cEntry = rb_define_class_under (mWtmp, "Entry", rb_cHash);')+
985
+ br+
986
+ e('<b>hash = Hash.new</b> geht so:')+
987
+ br+
988
+ cmd(' VALUE hash; hash = rb_hash_new(); // Hash.new # Wir erstellen
989
+ einen neuen Hash')+
990
+ br+
991
+ e('<b>.select</b> in Hash:')+
992
+ br+
993
+ cmd(' rb_hash_select')+
994
+ br+
995
+ e('<b>.values_at</b> in Hash:')+
996
+ br+
997
+ cmd(' rb_hash_values_at')+
998
+ br+
999
+ e('<b>.reject!</b> in Hash:')+
1000
+ br+
1001
+ cmd(' rb_hash_reject_bang')+
1002
+ br+
1003
+ e('<b>.freeze</b> in Hash:')+
1004
+ br+
1005
+ cmd(' rb_hash_freeze')+
1006
+ br+
1007
+ e('<b>.each</b> in Hash:')+
1008
+ br+
1009
+ cmd(' rb_hash_foreach # iterate over a hash')+
1010
+ cmd(' rb_define_alloc_func hash_alloc;')+
1011
+ cmd(' "[]", rb_hash_s_create, -1')+
1012
+ cmd(' "initialize", rb_hash_initialize, -1')+
1013
+ cmd(' "initialize_copy", rb_hash_replace, 1')+
1014
+ cmd(' "rehash", rb_hash_rehash, 0')+
1015
+ cmd(' "to_hash", rb_hash_to_hash, 0')+
1016
+ cmd(' "to_a", rb_hash_to_a, 0')+
1017
+ cmd(' "to_s", rb_hash_to_s, 0')+
1018
+ cmd(' "inspect", rb_hash_inspect, 0')+
1019
+ cmd(' "==", rb_hash_equal, 1')+
1020
+ br+
1021
+ e('Um gespeicherte Einträge aus einem Hash zu <b>holen</b>,
1022
+ geht dies hier:')+
1023
+ in_ruby+
1024
+ cmd(" hash = { :foo => 'blah' }")+
1025
+ br+
1026
+ e('In Ruby-C:')+
1027
+ br+
1028
+ cmd(' hash = rb_hash_new();')+
1029
+ cmd(' foo = rb_hash_aref(hash, ID2SYM(rb_intern("foo")));')+
1030
+ br+
1031
+ e('bzw (etwas länger)')+
1032
+ br+
1033
+ cmd(' int age;')+
1034
+ cmd(' hash = rb_hash_new();')+
1035
+ cmd(' key = rb_str_new2("Oscar");')+
1036
+ cmd(' value = rb_hash_aref(hash, key);')+
1037
+ cmd(' age = NUM2INT(value); // Should return 6, Siehe oben bei
1038
+ INT2NUM')+
1039
+ br+
1040
+ anm('NUM2INT und INT2FIX sind Möglichkeiten wie man Nummer in
1041
+ Ruby erstellt.')+
1042
+ br+
1043
+ anm('rb_hash_aref gibt Qnil wieder wenn der angegebene
1044
+ Key nicht im Hash drinnen is. Argumente an rb_hash_aset
1045
+ und rb_hash_aref müssen vom type VALUE sein.')+
1046
+ br+
1047
+ e('Das heisst auch, das ein Hash, der strings als Keys verwenden,
1048
+ diese zuerst in Ruby Strings konvertieren muss:')+
1049
+ br+
1050
+ cmd(' VALUE string_key, value;')+
1051
+ br+
1052
+ cmd(' string_key = rb_str_new2("Some key");')+
1053
+ cmd(' value = rb_hash_aref(hash, string_key)')+
1054
+ in_ruby+
1055
+ cmd(' h = { "a" => 100, "b" => 200 }; h.fetch("a")')+
1056
+ in_ruby_c+
1057
+ cmd(' foo = rb_hash_fetch(hash, ID2SYM(rb_intern("foo"))')+
1058
+ br+
1059
+ e('Um <b>neue</b> Einträge (key, value) in einen Hash
1060
+ reinzugeben verwendet man rb_hash_aset():')+
1061
+ br+
1062
+ e('Beispiel:')+
1063
+ br+
1064
+ in_ruby+
1065
+ cmd(' hash << "foo"')+
1066
+ in_ruby_c+
1067
+ cmd(' h = { "a" => 100, "b" => 200 }; h.fetch("a")')+
1068
+ cmd(' hash = rb_hash_new();')+
1069
+ cmd(' key = rb_str_new2("Oscar");')+
1070
+ cmd(' value = INT2NUM(6);')+
1071
+ cmd(' rb_hash_aset(hash, key, value));')+
1072
+ br+
1073
+ e('Weiter geht es:')+
1074
+ br+
1075
+ cmd(' "store", rb_hash_aset, 2')+
1076
+ cmd(' "default", rb_hash_default, -1')+
1077
+ cmd(' "default=", rb_hash_set_default, 1')+
1078
+ cmd(' "default_proc", rb_hash_default_proc, 0')+
1079
+ cmd(' "index", rb_hash_index, 1')+
1080
+ cmd(' "indexes", rb_hash_indexes, -1')+
1081
+ cmd(' "indices", rb_hash_indexes, -1')+
1082
+ cmd(' "size", rb_hash_size, 0')+
1083
+ cmd(' "length", rb_hash_size, 0')+
1084
+ cmd(' "empty?", rb_hash_empty_p, 0')+
1085
+ cmd(' "each", rb_hash_each, 0')+
1086
+ cmd(' "each_value", rb_hash_each_value, 0')+
1087
+ cmd(' "each_key", rb_hash_each_key, 0')+
1088
+ cmd(' "each_pair", rb_hash_each_pair, 0')+
1089
+ br+
1090
+ e('Sortieren geht in Ruby so:')+
1091
+ in_ruby+
1092
+ cmd(' h = { "c"=> 300, "a" => 100, "b" => 200 }; h.sort')+
1093
+ in_ruby_c+
1094
+ cmd(' "sort", rb_hash_sort, 0')+
1095
+ cmd(' "keys", rb_hash_keys, 0')+
1096
+ cmd(' "values", rb_hash_values, 0')+
1097
+ cmd(' "values_at", rb_hash_values_at, -1')+
1098
+ cmd(' "shift", rb_hash_shift, 0')+
1099
+ cmd(' "delete", rb_hash_delete, 1')+
1100
+ cmd(' "delete_if", rb_hash_delete_if, 0')+
1101
+ cmd(' "select", rb_hash_select, -1')+
1102
+ cmd(' "reject", rb_hash_reject, 0')+
1103
+ cmd(' "reject!", rb_hash_reject_bang, 0')+
1104
+ cmd(' "clear", rb_hash_clear, 0')+
1105
+ cmd(' "invert", rb_hash_invert, 0')+
1106
+ cmd(' "update", rb_hash_update, 1')+
1107
+ cmd(' "replace", rb_hash_replace, 1')+
1108
+ cmd(' "merge!", rb_hash_update, 1')+
1109
+ cmd(' "merge", rb_hash_merge, 1')+
1110
+ cmd(' "include?", rb_hash_has_key, 1')+
1111
+ cmd(' "member?", rb_hash_has_key, 1')+
1112
+ cmd(' "has_key?", rb_hash_has_key, 1')+
1113
+ cmd(' "has_value?", rb_hash_has_value, 1')+
1114
+ cmd(' "key?", rb_hash_has_key, 1')+
1115
+ cmd(' "value?", rb_hash_has_value, 1')+
1116
+ cmd(' "[]", rb_f_getenv, 1')+
1117
+ cmd(' "fetch", env_fetch, -1')+
1118
+ cmd(' "[]=", env_aset, 2')+
1119
+ cmd(' "store", env_aset, 2')+
1120
+ cmd(' "each", env_each, 0')+
1121
+ cmd(' "each_pair", env_each_pair, 0')+
1122
+ cmd(' "each_key", env_each_key, 0')+
1123
+ cmd(' "each_value", env_each_value, 0')+
1124
+ cmd(' "delete", env_delete_m, 1')+
1125
+ cmd(' "delete_if", env_delete_if, 0')+
1126
+ cmd(' "clear", env_clear, 0')+
1127
+ cmd(' "reject", env_reject, 0')+
1128
+ cmd(' "reject!", env_reject_bang, 0')+
1129
+ cmd(' "select", env_select, -1')+
1130
+ cmd(' "shift", env_shift, 0')+
1131
+ cmd(' "invert", env_invert, 0')+
1132
+ cmd(' "replace", env_replace, 1')+
1133
+ cmd(' "update", env_update, 1')+
1134
+ cmd(' "inspect", env_inspect, 0')+
1135
+ cmd(' "rehash", env_none, 0')+
1136
+ cmd(' "to_a", env_to_a, 0')+
1137
+ cmd(' "to_s", env_to_s, 0')+
1138
+ cmd(' "index", env_index, 1')+
1139
+ cmd(' "indexes", env_indexes, -1')+
1140
+ cmd(' "indices", env_indexes, -1')+
1141
+ cmd(' "size", env_size, 0')+
1142
+ cmd(' "length", env_size, 0')+
1143
+ cmd(' "empty?", env_empty_p, 0')+
1144
+ cmd(' "keys", env_keys, 0')+
1145
+ cmd(' "values", env_values, 0')+
1146
+ cmd(' "values_at", env_values_at, -1')+
1147
+ cmd(' "include?", env_has_key, 1')+
1148
+ cmd(' "member?", env_has_key, 1')+
1149
+ cmd(' "has_key?", env_has_key, 1')+
1150
+ cmd(' "has_value?", env_has_value, 1')+
1151
+ cmd(' "key?", env_has_key, 1')+
1152
+ cmd(' "value?", env_has_value, 1')+
1153
+ cmd(' "to_hash", env_to_hash, 0')+
1154
+ br+
1155
+ # ======================================================================= #
1156
+ # === Arrays in C (ruby c)
1157
+ #
1158
+ # C ARRAY DEFINIEREN in C. array tag.
1159
+ #
1160
+ # rf embedded Array_definieren
1161
+ # ======================================================================= #
1162
+ h4('Ruby Array definieren in RUBY C',
1163
+ HEADER_CSS,'Array_definieren',HEADER_BORDER)+
1164
+ cmd(' VALUE array; array = rb_ary_new();')+
1165
+ cmd(' VALUE hardware_list; hardware_list = rb_ary_new();')+
1166
+ br+
1167
+ e('Intern ruft rb_ary_new übrigens rb_ary_new2 auf
1168
+ (ist in <i class="darkblue">
1169
+ <a href="http://www.ruby-doc.org/doxygen/1.8.4/array_8c.html">
1170
+ array.c </a></i> beschrieben):')+
1171
+ br+
1172
+ cmd(' return rb_ary_new2(ARY_DEFAULT_SIZE')+
1173
+ br+
1174
+ e('Wie man sieht genügt die Deklaration <b>VALUE array_name</b>')+
1175
+ br+
1176
+ e('Weitere Manipulationen mit Arrays gehen so:')+
1177
+ br+
1178
+ cmd(' rb_ary_push(VALUE ary, VALUE val); // <b>.push</b> fügt am
1179
+ Ende des Array ein neues Element hinzu')+
1180
+ br+
1181
+ e(' rb_ary_push(hardware_list, rb_str_new2("\"HDD1\"=>\"/dev/hdc1\"")',
1182
+ 'marl4em')+
1183
+ br+
1184
+ cmd(' rb_ary_pop(VALUE ary); // <b>.pop</b> entfernt das letzte
1185
+ Element eines Array und gibt ihn wieder')+
1186
+ br+
1187
+ cmd(' rb_ary_shift(VALUE ary) // Entfernt das erste Element
1188
+ eines Arrays und gibt es wieder')+
1189
+ br+
1190
+ cmd(' rb_ary_unshift(VALUE ary, VALUE val) // das Gegenteil
1191
+ von shift - fügt den Eintrag vorne an')+
1192
+ br+
1193
+ e('Hier noch die wichtigsten Funktionen als <b>Übersicht</b>:')+
1194
+ br+
1195
+ table3('marl1em','','',
1196
+ 'C Function','Equivalent Ruby Statement','Description',
1197
+
1198
+ 'VALUE rb_ary_new()','anArray = [] (or anArray = Array.new())','Returns
1199
+ a new empty array. Internally, it will create an array
1200
+ with a default capacity, which is 16 elements.',
1201
+ 'VALUE rb_ary_new2(long size)','anArray = Array.new(size)','Returns
1202
+ a new array with size elements; each element is initialized to
1203
+ Qnil, which is Rubys way of nil. The advantage is that
1204
+ this function is faster than rb_ary_new, however you must
1205
+ know how big your array will be.',
1206
+
1207
+ 'VALUE rb_ary_new3(long size, VALUE arg1, VALUE arg2, ...)',
1208
+ 'anArray = [arg1, arg2, ...]','Returns a new array with size
1209
+ elements; each element is initialized with the corresponding
1210
+ argument passed into rb_ary_new3()+',
1211
+
1212
+ 'VALUE rb_ary_new4(long size, VALUE *values)','anArray = ["this",
1213
+ "that","other"]','Returns a new array with size elements; each
1214
+ element is initialized with the corresponding
1215
+ element in the values array.',
1216
+
1217
+ 'VALUE rb_ary_aref (int argc,
1218
+ VALUE *argv, VALUE array)','value = array[index]<br>
1219
+ value = array[start, length]<br>
1220
+ value = Array[range]','This is the implementation of the
1221
+ Array class [] method and accepts three different forms of
1222
+ inputs; here, argv is a C array of the input argument
1223
+ values and argc is the number of arguments in that array.
1224
+ If there is only one input argument, it is evaluated
1225
+ as either a Fixnum index into the array or a
1226
+ Range of indices. If there are
1227
+ two arguments, they are evaluated
1228
+ as Fixnums indiciating the starting index and
1229
+ length of the subarray.',
1230
+
1231
+ 'void rb_ary_store(VALUE array, long index, VALUE value)',
1232
+ 'array[index] = value',
1233
+ 'Stores value in the specified array slot (where index is zero-based)',
1234
+
1235
+ 'VALUE rb_ary_entry(VALUE array, long index)','value = array[index]',
1236
+ 'Dies gibt das Element am spezifizierten Index wieder',
1237
+
1238
+ 'VALUE rb_ary_push(VALUE array, VALUE value)','array.push(value)',
1239
+ 'pushes value onto the end of array and returns a reference to it.',
1240
+
1241
+ 'VALUE rb_ary_popVALUE array)','value = array.pop','Pops value
1242
+ onto the end of array and returns a reference to it.',
1243
+
1244
+ 'VALUE rb_ary_shift(VALUE array)','array.shift','Removes and
1245
+ returns the first element from array.',
1246
+
1247
+ 'VALUE rb_ary_unshift(VALUE array, VALUE value)','array.unshift(value)',
1248
+ 'Pushes value onto the front of array and returns a reference to
1249
+ value.',
1250
+
1251
+ 'VALUE rb_ary_each(VALUE array)','array.each','Calls rb_yield() on each
1252
+ element of the array in turn and returns a reference to the array as
1253
+ its result',
1254
+
1255
+ 'VALUE rb_ary_join(VALUE array, VALUE sep)','array.join(sep)','Returns
1256
+ a new string whose contents are formed by joining the array elements
1257
+ with the specified string separator',
1258
+
1259
+ 'VALUE rb_ary_reverse(VALUE array)','array.reverse','Returns a
1260
+ reference to a new array whose elements are the same as those of
1261
+ array, in reverse order.',
1262
+
1263
+ 'VALUE rb_ary_sort(VALUE array)','array.sort','Returns a reference
1264
+ to a new array whose elements are the same as those
1265
+ of array, in sorted order.',
1266
+
1267
+ 'VALUE rb_ary_sort_bang(VALUE array)','array.sort!','
1268
+ performs an in-place sort of array and returns a reference to the
1269
+ array. Example: <br>
1270
+ <b>rb_funcall(ary, rb_intern("sort!"), 0</b>',
1271
+
1272
+ 'VALUE rb_ary_delete(VALUE array, VALUE value)',
1273
+ 'array.delete(value)','Deletes all occurrences of value
1274
+ from array and returns a reference to value.',
1275
+
1276
+ 'VALUE rb_ary_delete_at(VALUE array, long index)','array.delete_at(index)','
1277
+ deletes the array element at the specified index.',
1278
+
1279
+ 'VALUE rb_ary_clear(VALUE array)','array.clear','Removes
1280
+ all elements from the array and returns a reference to the array',
1281
+
1282
+ 'VALUE rb_ary_plus(VALUE array, VALUE other)','array.concat(other)',
1283
+ 'adds the contents of other onto the end of array and returns a
1284
+ reference to the array. Unlike rb_ary_plus(), this function
1285
+ does modify the first array',
1286
+
1287
+ 'VALUE rb_ary_includes(VALUE array, VALUE value)','array.include?(value)','
1288
+ returns Qtrue or Qfalse, depending on whether value is found in array.',
1289
+
1290
+ 'VALUE rb_ary_length(VALUE array)','array.length','Returns the legnth of
1291
+ the array as a Fixnum. An alternatvie method for determinign the
1292
+ length of an array is to use RARRAY(array)->len',
1293
+
1294
+ 'VALUE rb_ary_empty_pVALUE array)','array.empty?','returns
1295
+ Qtrue if the array lenght is zero, Qfalse otherwise.
1296
+ An alternative is to check the array length directly
1297
+ with RARRAY(array)->len'
1298
+ )+
1299
+ # ===================================================================== #
1300
+ # === ruby und .dup
1301
+ # ===================================================================== #
1302
+ h4('Ruby und .dup',HEADER_CSS,'ruby_dup',HEADER_BORDER)+
1303
+ cmd(' rb_str_dupstr')+
1304
+ br+
1305
+ e('(Allerdings mag dies nicht mehr aktuell sein.)')+
1306
+ br+
1307
+ # ===================================================================== #
1308
+ # === Globale Variables in Ruby
1309
+ # ===================================================================== #
1310
+ h4('Globale Variablen in Ruby',HEADER_CSS,'ruby_global_vars',HEADER_BORDER)+
1311
+ e('Anmerkung: Man sollte seine globalen Variablen mit dem $
1312
+ Prefix prependen.','s0_5em')+
1313
+ br+
1314
+ e('Allgemein deklarieren wir eine Variable in C-Ruby so (mit
1315
+ Beispiel):')+
1316
+ br+
1317
+ cmd(' rb_define_variable();')+
1318
+ cmd(' rb_define_variable("$gvars", &hardware_list);')+
1319
+ cmd(' rb_define_variable("$String", &MyString);')+
1320
+ br+
1321
+ e('Folgender BeispielCode zeigt an, wie man globale Variablen in
1322
+ Ruby-C definiert:')+
1323
+ br+
1324
+ cmd(' static VALUE hardware_list;')+
1325
+ cmd(' static VALUE MyString;')+
1326
+ cmd(' MyString = rb_str_new(')+
1327
+ cmd(' static VALUE Init_SysInfo() {')+
1328
+ cmd2(' rb_define_class(....')+
1329
+ cmd2(' hardware_list = rb_ary_new();')+
1330
+ cmd2(' rb_define_variable("$hardware", &hardware_list')+
1331
+ cmd2(' rb_ary_push(hardware_list, rb_str_new2("DVD")')+
1332
+ cmd2(' rb_ary_push(hardware_list, rb_str_new2("CDPlayer1")')+
1333
+ cmd2(' rb_ary_push(hardware_list, rb_str_new2("CDPlayer2")')+
1334
+ cmd('}')+
1335
+ br+
1336
+ # ====================================================================== #
1337
+ # === RUBY ERRORS TAG ERROR TAG
1338
+ #
1339
+ # rb_raise tag.
1340
+ # rf embedded ruby_errors
1341
+ # ===================================================================== #
1342
+ h4('Ruby Errors',HEADER_CSS,'ruby_errors',HEADER_BORDER)+
1343
+ e('Gezielte Errors erzielt man mittels <b>rb_raise</b> so:')+
1344
+ br+
1345
+ cmd('rb_raise(rb_eRangeError, "0x%lx is recycled object", p0')+
1346
+ br+
1347
+ e('Ein anderer Fehler zb so:')+
1348
+ br+
1349
+ cmd(' rb_raise(rb_eTypeError, "wrong argument type %s
1350
+ (expected %s)", etype, type->name);')+
1351
+ br+
1352
+ cmd(' rb_raise(rb_eTypeError, "operand is not valid type");')+
1353
+ br+
1354
+ cmd(' rb_raise(rb_eTypeError, "cannot convert
1355
+ %s into String", rb_obj_classname(arg1));')+
1356
+ br+
1357
+ cmd(' rb_raise(rb_eArgError, "no stream to tell");')+
1358
+ br+
1359
+ cmd(' rb_raise(rb_eNameError, "undefined method %s
1360
+ in super", rb_id2name(id));')+
1361
+ br+
1362
+ cmd(' rb_raise(rb_eTypeError, "type of arg must be Matrix");')+
1363
+ br+
1364
+ e('Wie man übrigens sieht, werden Errors mit <b>rb_e</b>
1365
+ prepended.')+
1366
+ br+
1367
+ # ===================================================================== #
1368
+ # === RUBY CLASS DEFINIEREN in C class tag
1369
+ # ===================================================================== #
1370
+ h4('Ruby Classes definieren in RUBY C',HEADER_CSS,'Class_definieren',HEADER_BORDER)+
1371
+ e('Eine Klasse in ruby-C definieren geht über <b>static VALUE</b>:')+
1372
+ br+
1373
+ cmd(' static VALUE rb_cGenX;')+
1374
+ cmd(' static VALUE rb_cGenXWriter;')+
1375
+ cmd(' static VALUE rb_cFstabAppender;')+
1376
+ cmd(' static VALUE rb_cTest;')+
1377
+ br+
1378
+ e('Hier nochmals letzteres Beispiel kombiniert, um zu demonstrieren
1379
+ wie wir eine Klasse in <b>Ruby-C</b> definieren:')+
1380
+ br+
1381
+ cmd(' static VALUE cTest; cTest = rb_define_class("Test",
1382
+ <b>rb_cObject</b>); // <b class="red">class Test</b>')+
1383
+ br+
1384
+ cmd(' rb_cFstabAppender = rb_define_class("FstabAppender",
1385
+ rb_cObject);')+
1386
+ br+
1387
+ e('Das zweite Argument (also <b>rb_cObject</b>) zeigt an,
1388
+ das unsere Klasse eine <b>Subklasse von Object</b> ist. ')+
1389
+ br+
1390
+ e('Object wird durch rb_cObject dargestellt. Den Rest
1391
+ findet man in ruby.h, bzw in Anhang D.')+
1392
+ br+
1393
+ e('Um eine Klasse innerhalb zb eines Modules zu definieren
1394
+ muss man folgendes verwenden:')+
1395
+ br+
1396
+ cmd(' cTest = rb_define_class_under("Test", rb_cObject);')+
1397
+ cmd(' rb_cMyFile = rb_define_class_under(rb_mHello,"MyFile", rb_cObject);')+
1398
+ cmd(' rb_cGenXWriter = rb_define_class_under (rb_mGenX,
1399
+ "Writer", rb_cObject);')+
1400
+ br+
1401
+ e('Die Klasse kann man dann einfach benutzen nachdem man die
1402
+ .so-SharedLib geladen hat.')+
1403
+ br+
1404
+ e('Verwendungs Beispiel:')+
1405
+ br+
1406
+ cmd(' x = Test.new')+
1407
+ cmd(' x = Jukebox.new')+
1408
+ cmd(' x = SimpleClass.new')+
1409
+ br+
1410
+ # ===================================================================== #
1411
+ # === rb define alloc func
1412
+ # ===================================================================== #
1413
+ h4('Ruby Alloc',HEADER_CSS,'rb_define_alloc_func',HEADER_BORDER)+
1414
+ e('Noch keine Info dazu erhältlich.')+
1415
+ br+
1416
+ cmd(' rb_define_alloc_func();')+
1417
+ br+
1418
+ # ===================================================================== #
1419
+ # rb iv set tag. #rb_iv_set
1420
+ # rf embedded rb_iv_set
1421
+ # ===================================================================== #
1422
+ h4('rb_iv_set',HEADER_CSS,'rb_iv_set',HEADER_BORDER)+
1423
+ e('Eine Instanz Variable kann man auch setzen, und zwar so:')+
1424
+ br+
1425
+ cmd('VALUE rb_iv_set(VALUE obj, char *name, VALUE value)')+
1426
+ br+
1427
+ e('Dies setzt den Wert der <b>InstanzVariablen</b> namens name,
1428
+ also <b>@name</b> in ruby code, im Objekt auf value,
1429
+ welcher auch zurückgeliefert wird.')+
1430
+ br+
1431
+ e('Konkrete Beispiele:')+
1432
+ br+
1433
+ cmd(' rb_iv_set(self, "@array", array);')+
1434
+ cmd(' rb_iv_set(self, "@msg", rb_str_new2("Hello, World !") // String Beispiel')+
1435
+ br+
1436
+ # ===================================================================== #
1437
+ # === Ruby Symbols
1438
+ # ===================================================================== #
1439
+ h4('Ruby Symbols in RUBY C',HEADER_CSS,'Symbols_definieren',HEADER_BORDER)+
1440
+ e('Das Erstellen eines Symbols ist leicht:')+
1441
+ br+
1442
+ cmd(' ID2SYM( rb_intern("verbose") ); '+ruby('/* In Ruby :verbose */'))+
1443
+ cmd(' ID2SYM( rb_intern("noop") ); '+ruby('/* In Ruby :noop */'))+
1444
+ br+
1445
+ e('rb_intern() gibt einem eine ID, die lediglich eine C Nummer ist.
1446
+ Man muss diese Nummer in ein Ruby Symbol Objekt verändern mittels
1447
+ des <b>ID2SYM() macro</b>.')+
1448
+ br+
1449
+ e('Hierzu nun ein kompletteres Beispiel:')+
1450
+ br+
1451
+ cmd(' ID2SYM(rb_intern("name")); ')+
1452
+ cmd(' node_name = ID2SYM(rb_intern("ICKY"));')+
1453
+ cmd(' ID method = rb_intern("<<");')+
1454
+ br+
1455
+ e('creates a symbol :name for the string name.')+
1456
+ br+
1457
+ e('Hat man die ID kann man <b>rb_id2name</b> verwenden um
1458
+ den Namen zu rekonstruieren.')+
1459
+ br+
1460
+ e('Diese Nummer verwandelt man in ein Ruby Symbol Object
1461
+ indem man das ID2SYM() macro verwendet.')+
1462
+ br+
1463
+ e('Den ID Wert eines Strings innerhalb von C erhält man
1464
+ allgemein so:')+
1465
+ br+
1466
+ cmd(' rb_intern(const char *name);')+
1467
+ br+
1468
+ header('class Thread')+
1469
+ cmd('VALUE rb_thread_create(VALUE *func, void *data)')+
1470
+ e('Dies erstellt ein neues Thread.')+
1471
+ br+
1472
+ # ===================================================================== #
1473
+ # === rb_obj_is_instance_of
1474
+ # ===================================================================== #
1475
+ div(id: 'rb_obj_is_instance_of'){
1476
+ h2('rb_obj_is_instance_of')+
1477
+ cmd('rb_obj_is_instance_of')+
1478
+ br
1479
+ }+
1480
+ # ===================================================================== #
1481
+ # === Ruby Nil tag
1482
+ # ===================================================================== #
1483
+ h4('Ruby Nil',HEADER_CSS,'nil',HEADER_BORDER)+
1484
+ e('Es scheint so zu sein, das man in Ruby Qnil als Ergebnis zu
1485
+ liefern hat, auch wenn die Methode an sich nix macht...')+
1486
+ br+
1487
+ cmd(' VALUE some_function(int argc, VALUE *argv, VALUE classmod)')+
1488
+ cmd(' {')+
1489
+ cmd2(' return Qnil;')+
1490
+ cmd(' }')+
1491
+ br+
1492
+ # ===================================================================== #
1493
+ # === ruby_inline
1494
+ # ===================================================================== #
1495
+ div(id: 'ruby_inline'){
1496
+ e('Mittels ruby inline kann man C code in .rb Dateien einbetten.')+
1497
+ br +
1498
+ e('Dies kann oft zu schnellerem Code führen.')+
1499
+ br+
1500
+ cmd(" require('inline'")+
1501
+ cmd(' class << self')+
1502
+ cmd2(' inline do |builder|')+
1503
+ cmd3(' builder.c "')+
1504
+ cmd4(' int dummy(int input) {')+
1505
+ cmd5(' int i = 1;')+
1506
+ cmd5(' while (input >= 1) { input--; i *= 2; }')+
1507
+ cmd5(' return i;')+
1508
+ cmd4(' }')+
1509
+ cmd3(' "')+
1510
+ cmd2(' end')+
1511
+ cmd(' end')+
1512
+ br+
1513
+ cmd(' puts dummy(8)')
1514
+ }+
1515
+ # ===================================================================== #
1516
+ # === String tag strings tag.
1517
+ #
1518
+ # rb_eval_string tag. rf embedded rb_eval_string
1519
+ #
1520
+ # ===================================================================== #
1521
+ div(id: 'rb_eval_string'){
1522
+ h2("rb_eval_string und weitere String Functions",'','strings')+
1523
+ e('Mittels rb eval kann man bequem Ruby Code testen:','','','Strings')+
1524
+ cmd('rb_eval_string("anObject.each{|x| x.clearFlag }"')+
1525
+ br+
1526
+ e('Will man eine spezielle Methode aufrufen (sollte schneller gehen
1527
+ als eval), so ist folgendes zu empfehlen:')+
1528
+ br+
1529
+ cmd(' rb_funcall(receiver, method_id, argc, ...)')+
1530
+ br+
1531
+ e('Hier noch die andere String Functions:')+
1532
+ br+
1533
+ h2('String functions')+
1534
+ br+
1535
+ e(' rb_str_new(const char *ptr, long len);')+
1536
+ e(' --Creates a new Ruby string.')+
1537
+ e(' rb_str_new2(const char *ptr);')+
1538
+ e(' -- Creates a new Ruby string from a C string.
1539
+ This is equivalent to rb_str_new(ptr, strlen(ptr))')+
1540
+ e(' rb_tainted_str_new(const char *ptr, long len)')+
1541
+ e(' -- Creates a new tainted Ruby string.
1542
+ Strings from external data sources should be tainted.')+
1543
+ br+
1544
+ e(' rb_tainted_str_new2(const char *ptr);')+
1545
+ e(' -- Creates a new tainted Ruby string from a C string.')+
1546
+ br+
1547
+ e(' rb_str_cat(VALUE str, const char *ptr, long len);')+
1548
+ e(' -- Appends len bytes of data from ptr to the Ruby string.')+
1549
+ br+
1550
+ # =================================================================== #
1551
+ # === rb_define_module_function
1552
+ # =================================================================== #
1553
+ div(id: 'rb_define_module_function'){
1554
+ e('Dies nutzt man um module_function zu implementieren.')+
1555
+ br+
1556
+ cmd('rb_define_module_function')
1557
+ }+
1558
+ # =================================================================== #
1559
+ # === Strings in Ruby
1560
+ # =================================================================== #
1561
+ h4('Ruby Strings auf C Ebene', HEADER_CSS,'ruby_str_new',HEADER_BORDER)+
1562
+ e('Strings in Ruby werden so verwendet:')+
1563
+ br+
1564
+ cmd(' rb_str_new2')+
1565
+ br+
1566
+ e('Dies is die typische Art von Ruby, wie man Strings nutzt')+
1567
+ br+
1568
+ cmd(' VALUE str = rb_str_new2(p);')+
1569
+ cmd(' return str;')+
1570
+ cmd(' result = xmlBufferCreate();')+
1571
+ cmd(' ret = rb_str_new2(result->content);')+
1572
+ br+
1573
+ e('Noch ein Beispiel:')+
1574
+ br+
1575
+ cmd(' VALUE roebe;')+
1576
+ cmd(' roebe = rb_str_new2("Roebe war hier");')+
1577
+ cmd(' printf("%s <--",roebe);')+
1578
+ br+
1579
+ e('Noch ein Beispiel:')+
1580
+ br+
1581
+ cmd(' VALUE string;')+
1582
+ cmd(' string = rb_str_new2("Dein String");')+
1583
+ e('Will man die Information von einem Ruby String als einen C
1584
+ String repräsentieren, verwendet man das STR2CSTR Makro.')+
1585
+ br+
1586
+ cmd(' VALUE stringObj;')+
1587
+ cmd(' char *cstr;')+
1588
+ cmd(' cstr = STR2CSTR(stringObj);')+
1589
+ br+
1590
+ anm('Dieses Makro gibt einem einen Pointer zurück, der die
1591
+ aktuelle String Daten hat - es ist also keine Kopie, und man
1592
+ sollte genau schauen was man damit macht.')+
1593
+ br+
1594
+ e('Will man die echte Länge eines Ruby String wissen, inklusive der
1595
+ NULL bytes und so weiter, kann man dies verwenden:')+
1596
+ br+
1597
+ cmd(' VALUE stringObj;')+
1598
+ cmd(' char *cstr;')+
1599
+ cmd(' int stringLength;')+
1600
+ cmd(' cstr = rb_str2cstr(stringObj, &stringLength);')+
1601
+ br+
1602
+ e('Statt diesem Weg gibt es einen noch schnelleren Weg:')+
1603
+ br+
1604
+ cmd(' VALUE stringObj;')+
1605
+ cmd(' int stringLength;')+
1606
+ cmd(' stringLength = RSTRING(stringObj)->len;')+
1607
+ p {
1608
+ e('Hier noch Funktionen um einen neuen String zu
1609
+ erstellen (String.new):')+
1610
+ br+
1611
+ table2('','','',
1612
+ 'VALUE rb_str_new(const char *str, long size)','Returns a
1613
+ new string whose contents are copied from the first size
1614
+ characters pointed to by str.',
1615
+ 'VALUE rb_str_ne2 (const char *cstr)','Returns a new Ruby string
1616
+ whose contents are copied from the NULL-terminated C string cstr.'
1617
+ )+
1618
+ br+
1619
+ e('Und hier Funktionen, mit denen wir mit Strings arbeiten:')+
1620
+ br+
1621
+ table3('','','',
1622
+ 'C Funktion','Äquivalentes Ruby Statement','Beschreibung',
1623
+ 'VALUE rb_str_to_str(VALUE obj)','obj.to_str', 'Attempts to
1624
+ convert the original object to a string by calling its to_str method.',
1625
+ 'VALUE rb_str_dup VALUE str)','String.new(str)','Returns a
1626
+ new string that is a duplicate of the original',
1627
+ 'VALUE rb_str_plus(VALUE str1, VALUE str2)','str1+str2.to_str',
1628
+ 'returns a new string formed by concatenating the contents of str1
1629
+ and str2; neither of the original strings is modified. Note
1630
+ that if str2 is not a string but is a string-like object
1631
+ that implements a to_str method, Ruby will first call that
1632
+ objects to_str method to get a string representation
1633
+ of str2',
1634
+ 'VALUE rb_str_times(VALUE str, VALUE count)','str * count',
1635
+ 'Returns a new string which is formed by repeating the
1636
+ original string count times.',
1637
+ 'VALUE rb_str_substr(VALUE str, long start, long length)',
1638
+ 'str[start, length]','Returns a new string which is the
1639
+ substring of str, beginning at position start and with
1640
+ specified length.',
1641
+ 'VALUE rb_str_cat(VALUE str, const char *str, long size)',
1642
+ 'str += "another string"','Modifies the original string
1643
+ by adding the first size characters pointed to by str to
1644
+ the end of this string. Returns a reference to
1645
+ the modified string.',
1646
+ 'VALUE rb_str_cat2(VALUE str, const char *cstr)','','
1647
+ same as rb_str_cat(), but assumes that cstr is a
1648
+ NULL-terminated C string.',
1649
+ 'VALUE rb_str_append(VALUE str1, VALUE str2)','str1 += str2.to_str',
1650
+ 'Modifies str1 by appending str2 to it. Note that if str2 is not
1651
+ astring but is a string-like object that
1652
+ implements a to_str method, Ruby will first call that objects
1653
+ to_str method to get a string representation of str',
1654
+ 'VALUE rb_str_concat(VALUE str1, VALUE str2)','str1 << str2',
1655
+ 'Modifies str1 by concatenating it with str2. If str2 is a Fixnum,
1656
+ it is interpreted as an ASCII character code; otherwise, the
1657
+ same rules used for rb_str_append() apply.',
1658
+ 'int rb_str_hash(VALUE str)','str.hash','returns the hash code for str',
1659
+ 'int rb_str_cmpVALUE str1, VALUE str2)','str1 <=> str','Compares
1660
+ the contents of the two strings and returns -1 if str1 is lexicographically
1661
+ less than str2, 1 if str1 is greater than str2, or 0 if they are equial.',
1662
+ 'VALUE rb_str_match(VALUE str, VALUE obj)','str =~ obj','Uses obj as a pattern
1663
+ to match against str. If obj is either a Regexp or String instance,
1664
+ rb_str_match() will return a Fixnum containing the match position or
1665
+ Qnil if no match is found. If obj is some other type that doesnt
1666
+ implement a =~ method, rb_str_match() will return QFalse',
1667
+ 'VALUE rb_str_split(VALUE str, const char *pattern)','str.split(pattern)',
1668
+ 'Returns a new array formed by splitting the input string at delimiters
1669
+ specified in the pattern string. If pattern is not a single
1670
+ character string (for example, a comma) it is evaluated as a
1671
+ regular expression.',
1672
+ 'VALUE rb_str_length(VALUE str)','str.length','Returns the length of str.',
1673
+ 'VALUE rb_str_empty(VALUE str)','str.empty?','Returns Qtrue if str
1674
+ is empty (its size = 0), otherwise it returns Qfalse'
1675
+ )
1676
+ }
1677
+ }+
1678
+ # ===================================================================== #
1679
+ # === ANHANG TAG
1680
+ #
1681
+ # ANHANG A
1682
+ # ===================================================================== #
1683
+ div('mart3em s0_5em'){
1684
+ h1('Anhang zu Embedding and Extending Ruby','','','Anhang')+
1685
+ h2('Anhang A - bitte alfabetisch ordnen. ')+
1686
+ h3('Structs:')+
1687
+ br+
1688
+ table2('s2em','','anhang_a',
1689
+ '<b>struct RArray</b>','array',
1690
+ '<b>struct RBignum</b>','big integers (one of the three numeric types)',
1691
+ '<b>struct RClass</b>','class object, also has
1692
+ an m_tbl (a symbol table for storing methods)
1693
+ and a superclass (pointer to a superclass)',
1694
+ '<b>struct RData</b>','all the classes defined at C level,
1695
+ except the ones mentioned above',
1696
+ '<b>struct RFile</b>','IO, File, Socket, etc',
1697
+ '<b>struct RFloat</b>','small numbers',
1698
+ '<b>struct RHash</b>','hash table',
1699
+ '<b>struct RObject</b>','all things for which none of
1700
+ the following applies',
1701
+ '<b>struct RRegexp</b>','regular expression',
1702
+ '<b>struct RString</b>','string class',
1703
+ '<b>struct RStruct</b>',"Ruby's Struct class"
1704
+ )
1705
+ }+
1706
+ # ===================================================================== #
1707
+ # === Anhang B - Makros und Methoden zum Konvertieren
1708
+ #
1709
+ # MAKROS TAG
1710
+ # rf rembedded anhang_b
1711
+ # ===================================================================== #
1712
+ h3('Anhang B - Makros und Methoden zum Konvertieren')+
1713
+ table2('s2em','','anhang_b',
1714
+ '<b>INT2FIX(long or int)</b>','Integer nach Fixnum
1715
+ Konvertierung (faster) [Beispiel: v_age = INT2FIX(25]',
1716
+ '<b>INT2NUM(int)</b>','Fixnum or Bignum',
1717
+ '<b>INT2NUM(long or int)</b>','Fixnum or Bignum',
1718
+ '<b>LL2NUM</b>','conversion for 64bit',
1719
+ '<b>LONG2FIX</b>','',
1720
+ '<b>rb_str_new2(char *)</b>','String',
1721
+ '<b>rb_float_new(double)</b>','Float, wird zum
1722
+ Beispiel so eingesetzt:
1723
+ <b>return rb_float_new(qp_get_frame_rate(movie_ctx)</b>'
1724
+ )+
1725
+ # ===================================================================== #
1726
+ # === Anhang C
1727
+ #
1728
+ # CHECKS TAG
1729
+ # ===================================================================== #
1730
+ h3('Anhang C - Checks (Pointer ist zum Beispiel
1731
+ <b>unsigned long ptr</b>, p0; p0 =
1732
+ ptr = NUM2ULONG(objid)')+
1733
+ table2('s2em','','anhang_c',
1734
+ 'if (ptr == Qtrue)', 'return Qtrue;',
1735
+ 'if (ptr == Qfalse)','return Qfalse;',
1736
+ 'if (ptr == Qnil)', 'return Qnil;'
1737
+ )+
1738
+ # ===================================================================== #
1739
+ # === CLASS VARS TAG
1740
+ # ===================================================================== #
1741
+ h3('Anhang D - Vordefinierte Klassenvariablen, bitte <b>alphabetisch</b>
1742
+ ordnen.')+
1743
+ table2('s2em', '','anhang_d',
1744
+ 'rb_cArray;', '',
1745
+ 'rb_cBignum;', '',
1746
+ 'rb_cClass;', '',
1747
+ 'rb_cDir;', '',
1748
+ 'rb_cData;', '',
1749
+ 'rb_cFalseClass;','',
1750
+ 'rb_cFile;', '',
1751
+ 'rb_cFixnum;', '',
1752
+ 'rb_cFloat;', '',
1753
+ 'rb_cHash;', '',
1754
+ 'rb_cInteger;', 'oder <b>rb_int_new(</b><br>
1755
+ rb_define_const(iFP, "MAX_PATHLEN", rb_int_new(IFP_MAXPATHLEN)',
1756
+ 'rb_cIO;', '',
1757
+ 'rb_cModule;', '',
1758
+ 'rb_cNilClass;', '',
1759
+ 'rb_cNumeric;', '',
1760
+ 'rb_cObject;', '',
1761
+ 'rb_cproc;', '',
1762
+ 'rb_cRange;', '',
1763
+ 'rb_cRegexp;', '',
1764
+ 'rb_cString;', '',
1765
+ 'rb_cStruct;', '',
1766
+ 'rb_cSymbol;', '',
1767
+ 'rb_cThread;', '',
1768
+ 'rb_cTime;', '',
1769
+ 'rb_cTrueClass;', ''
1770
+ )+
1771
+ # ===================================================================== #
1772
+ # === Anhang E - Data Types für Ruby
1773
+ # ===================================================================== #
1774
+ h3('Anhang E - Data Types für Ruby (<b>alphabetisch</b> geordnet)')+
1775
+ table2('BO mars4px s2em','','anhang_e',
1776
+ 'T_ARRAY', 'array',
1777
+ 'T_BIGNUM', 'multi precision integer',
1778
+ 'T_CLASS', 'class',
1779
+ 'T_DATA', 'data',
1780
+ 'T_FALSE', 'false',
1781
+ 'T_FILE', 'IO',
1782
+ 'T_FIXNUM', 'Fixnum(31bit integer)',
1783
+ 'T_FLOAT', 'floating point number',
1784
+ 'T_HASH', 'associative array',
1785
+ 'T_MODULE', 'module',
1786
+ 'T_NIL', 'nil',
1787
+ 'T_OBJECT', 'ordinary object',
1788
+ 'T_REGEXP', 'regular expression',
1789
+ 'T_STRING', 'string',
1790
+ 'T_STRUCT', '(Ruby) structure',
1791
+ 'T_SYMBOL ','symbol',
1792
+ 'T_TRUE', 'true'
1793
+ )+
1794
+ # ===================================================================== #
1795
+ # === Anhang F
1796
+ #
1797
+ # Functions for Working with Objects #anhang_f
1798
+ # ===================================================================== #
1799
+ h3('Anhang F - Funktionen zum Arbeiten mit Objekten
1800
+ (<b>alphabetisch</b> ordnen)')+
1801
+ table2('FW4 mars4px s2em','','anhang_f',
1802
+ 'void rb_obj_call_init (<b>VALUE</b> obj, int argc, VALUE *argv)',
1803
+ 'Calls the objects initialize method, passing the array
1804
+ of arguments, argv, with lengthc argc.array',
1805
+
1806
+ '<b>VALUE</b> rb_obj_is_instance_of(VALUE obj, VALUE klass)','Returns
1807
+ Qtrue (the C constant for rubys true) if obj is an instance of
1808
+ class klass.',
1809
+
1810
+ '<b>VALUE</b> rb_obj_is_kind_of (VALUE obj, VALUE klass)',
1811
+ 'Returns Qtrue if obj is an instance of class klass or one
1812
+ of its subclasses',
1813
+
1814
+ '<b>VALUE</b> rb_obj_clone (VALUE obj)','Returns the result of
1815
+ calling the objects <b>.clone</b> method',
1816
+
1817
+ '<b>VALUE</b> rb_obj_dup (VALUE obj)','Returns the result of
1818
+ calling the objects <b>.dup</b> method.',
1819
+
1820
+ '<b>VALUE</b> rb_any_to_s (VALUE obj)','Returns a string containing
1821
+ information about the object, the default <b>.to_s</b> method
1822
+ from Rubys Kernel module',
1823
+
1824
+ '<b>VALUE</b> rb_obj_as_string (VALUE obj)','returns a string
1825
+ representation of obj by first calling the objects <b>.to_s</b>
1826
+ method or, if that fails, by calling rb_any_to_s() on obj',
1827
+
1828
+ '<b>VALUE</b> rb_inspect (VALUE obj)','returns the result of
1829
+ calling the objects <b>.inspect</b> method'
1830
+ )+
1831
+ # ===================================================================== #
1832
+ # === Anhang G
1833
+ #
1834
+ # Functions for Conversion from Ruby Numeric Types into C
1835
+ #
1836
+ # Numeric Types.
1837
+ # ===================================================================== #
1838
+ h3('Anhang G - Funktionen zum Konvertieren von Ruby Numeric Types in
1839
+ C Numeric Types (<b>alphabetisch</b> ordnen)')+
1840
+ table2('FW4 mars4px s2em','','anhang_g',
1841
+ 'C Function/Macro','Beschreibung',
1842
+ 'int NUM2INT (VALUE aNumeric)','Converts the input Numeric
1843
+ value to a C int. If you know that the input value is a
1844
+ Fixnum, use the faster FIX2INT macro.',
1845
+
1846
+ 'int FIX2INT(VALUE aFixnum)','Converts the input
1847
+ Fixnum value to a C int.',
1848
+
1849
+ 'unsigned int NUM2UINT(VALUE aNumeric)','Converts the
1850
+ input Numeric value to a C unsigned int. If you know that
1851
+ the input value is a Fixnum, use the faster FIX2UINT macro.',
1852
+
1853
+ 'unsigned int FIX2UINT(VALUE aFixnum)','Converts the input
1854
+ Fixnum value to a C unsigned int.',
1855
+
1856
+ 'long NUM2LONG (VALUE aNumeric)','Converts the input Numeric
1857
+ value to a C long. If you know that the input value is
1858
+ a Fixnum, use the faster FIX2LONG macro',
1859
+
1860
+ 'long FIX2LONG (VALUE aFixnum)','Converts the input Fixnum
1861
+ value to a C long',
1862
+
1863
+ 'unsigned long NUM2ULONG (VALUE aNumeric)','Converts
1864
+ the input Numeric value to a C unsigned long',
1865
+
1866
+ 'char NUM2CHR (VALUE aNumeric)', 'converts the input
1867
+ Numeric value to a C char',
1868
+
1869
+ 'double NUM2DBL (VALUE aNumeric)','Converts the input
1870
+ Numeric value to a C double',
1871
+
1872
+ 'VALUE INT2NUM(int i) or VALUE INT2NUM(long l) ','converts
1873
+ the input int or long value into either a Fixnum or
1874
+ Bignum instance, depending on its size.',
1875
+
1876
+ 'VALUE INT2FIX(int i) or VALUE INT2FIX(long l)',' converts
1877
+ the input int or long alue into a Fixnum. If you are sure
1878
+ that the input value will fit into a Fixnumm, this macro
1879
+ is a little faster than the INT2NUM macro.',
1880
+
1881
+ 'VALUE CHR2FIX(char c)','converts the input char value
1882
+ into a fixnum.',
1883
+
1884
+ 'VALUE rb_float_new(double f) ','converts the input
1885
+ double value into a Float'
1886
+ )+
1887
+ # ===================================================================== #
1888
+ # === Anhang H
1889
+ # ===================================================================== #
1890
+ h3('Anhang H')+
1891
+ div {
1892
+ h3('Ruby API Accessing Variables')+
1893
+ e('rb_iv_get')+
1894
+ e('rb_ivar_get')+
1895
+ e('rb_iv_set')+
1896
+ e('rb_ivar_set')+
1897
+ e('rb_gv_set')+
1898
+ e('rb_gv_get')+
1899
+ e('rb_cvar_set')+
1900
+ e('rb_cvar_get')+
1901
+ e('rb_cvar_defined')+
1902
+ e('rb_cv_set')+
1903
+ e('rb_cv_get')
1904
+ }+
1905
+ # ========================================================================= #
1906
+ # === LINKS ZU EMBEDDED RUBY
1907
+ # ========================================================================= #
1908
+ div('marpad1em marl2_5em','','border:5px dotted grey'){
1909
+ h2('Links zu Embedded Ruby','mart2px')+
1910
+ p('marl1em ind0px'){
1911
+ a('http://www.onlamp.com/pub/a/onlamp/2004/11/18/extending_ruby.html',
1912
+ content: 'RubyOnLamp.com', css_class: 's1em'
1913
+ )+
1914
+ br+
1915
+ a('http://rhg.rubyforge.org/chapter02.html',
1916
+ content: 'A GREAT Tutorial', css_class: 's1em'
1917
+ )+
1918
+ br+
1919
+ a('http://www.ruby-doc.org/doxygen/1.8.4/classes.html',
1920
+ content: 'Die C Klassen von Ruby', css_class: 's1em'
1921
+ )+
1922
+ br+
1923
+ a('http://www.oreillynet.com/ruby/blog/2006/02/ruby_values_and_object_ids.html',
1924
+ content: 'Ruby VALUEs und .object_id', css_class: 's1em'
1925
+ )+
1926
+ br+
1927
+ a('http://eigenclass.org/hiki.rb?ruby+internals+guide',
1928
+ content: 'Ruby VALUEs und .object_id', css_class: 's1em'
1929
+ )+
1930
+ br+
1931
+ a('http://phrogz.net/ProgrammingRuby/ext_ruby.html',
1932
+ content: 'Auch gute Erklärungen', css_class: 's1em'
1933
+ )+
1934
+ br+
1935
+ a('http://www.oreillynet.com/ruby/blog/2007/04/c_extension_authors_use_rb_sca_1.html',
1936
+ content: 'Ruby-C Scan Arg Beispiel', css_class: 's1em'
1937
+ )+
1938
+ br+
1939
+ a('http://www.jaredrichardson.net/blog/2006/03/25/#C-extenstions',
1940
+ content: 'Ruby-C', css_class: 's1em'
1941
+ )+
1942
+ br+
1943
+ a('http://www.rubyist.net/~nobu/ruby/Ruby_Extension_Manual.html',
1944
+ content: 'Extending Ruby', css_class: 's1em'
1945
+ )+
1946
+ br+
1947
+ a('http://fixnum.org/ruby_c.html',
1948
+ content: 'Von Ruby zu C', css_class: 's1em'
1949
+ )+
1950
+ br+
1951
+ a('http://izumi.plan99.net/blog/index.php/2007/10/12/how-the-ruby-heap-is-implemented/',
1952
+ content: 'Ruby und Heap Management', css_class: 's1em'
1953
+ )+
1954
+ br+
1955
+ a('http://www.ruby-forum.com/',
1956
+ content: 'Ruby Forum', css_class: 's1em'
1957
+ )+
1958
+ br+
1959
+ a('http://blog.zenspider.com/archives/2006/08/writing_c_exten.html',
1960
+ content: 'Zenspider on Writing a C extension', css_class: 's1em'
1961
+ )+
1962
+ br+
1963
+ a('http://banisterfiend.wordpress.com/2008/10/25/the-secret-life-of-singletons/',
1964
+ content: 'The Secret of Singletons', css_class: 's1em'
1965
+ )+
1966
+ br+
1967
+ a('http://www.rubyfleebie.com/ruby-and-c-part-1/',
1968
+ content: 'Ruby and C', css_class: 's1em'
1969
+ )+
1970
+ br+
1971
+ a('http://coaxialhost.com/tutorials/writing_ruby_extensions.html',
1972
+ content: 'Ruby and C', css_class: 's1em'
1973
+ )+
1974
+ br+
1975
+ a('https://silverhammermba.github.io/emberb/c/',
1976
+ content: 'Ruby and C', css_class: 's1em'
1977
+ )+
1978
+ br+
1979
+ a(:c_language, content: 'Lokale C Page', css_class: 's1em')+
1980
+ br+
1981
+ a(:ruby_gtk, content: 'Lokale GTK Page', css_class: 's1em')+
1982
+ br
1983
+ }
1984
+ }
1985
+ }
1986
+ }
1987
+ end
1988
+
1989
+ end