democracy 0.0.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (647) hide show
  1. checksums.yaml +7 -0
  2. data/LIBERTY +310 -0
  3. data/README +310 -0
  4. data/README2 +14 -0
  5. data/READ_THIS_TO_CHANGE_THINGS +310 -0
  6. data/Resume.pdf +0 -0
  7. data/Ruby Installer.exe +0 -0
  8. data/VERSION_NUMBER +1 -0
  9. data/WE_NEEDNT_BE_ENSLAVED +310 -0
  10. data/_.html +460 -0
  11. data/__index.html +11 -0
  12. data/a.html +21 -0
  13. data/ac +73 -0
  14. data/all_code.cpp +280 -0
  15. data/all_code.js +30 -0
  16. data/app_topics +93 -0
  17. data/background.jpg +0 -0
  18. data/better_string +26 -0
  19. data/bin/abs +0 -0
  20. data/bin/ac +34 -0
  21. data/bin/add +0 -0
  22. data/bin/append +14 -0
  23. data/bin/args +0 -0
  24. data/bin/autorequire +85 -0
  25. data/bin/big_num +155 -0
  26. data/bin/black +0 -0
  27. data/bin/blue +0 -0
  28. data/bin/bold +0 -0
  29. data/bin/c_repl +76 -0
  30. data/bin/close +3 -0
  31. data/bin/copy +0 -0
  32. data/bin/count +0 -0
  33. data/bin/cpy +0 -0
  34. data/bin/cyan +0 -0
  35. data/bin/democracyinstall.exe +0 -0
  36. data/bin/div +0 -0
  37. data/bin/down_all_links +50 -0
  38. data/bin/dump +0 -0
  39. data/bin/email +127 -0
  40. data/bin/emerald-browser +0 -0
  41. data/bin/emoji +176 -0
  42. data/bin/executable +1 -0
  43. data/bin/exp +0 -0
  44. data/bin/files +0 -0
  45. data/bin/floor +0 -0
  46. data/bin/foreach +49 -0
  47. data/bin/g+ +557 -0
  48. data/bin/get_all_links +11 -0
  49. data/bin/github +55 -0
  50. data/bin/green +0 -0
  51. data/bin/gsearch +159 -0
  52. data/bin/gsub +0 -0
  53. data/bin/gsub_in_place +0 -0
  54. data/bin/last_nth +0 -0
  55. data/bin/lines +0 -0
  56. data/bin/magenta +0 -0
  57. data/bin/mkfile +47 -0
  58. data/bin/mul +0 -0
  59. data/bin/nth +0 -0
  60. data/bin/open +0 -0
  61. data/bin/play +0 -0
  62. data/bin/prepend +14 -0
  63. data/bin/processes +3 -0
  64. data/bin/qt_download +21 -0
  65. data/bin/record +121 -0
  66. data/bin/red +0 -0
  67. data/bin/replace_in_place +0 -0
  68. data/bin/replace_not_in_place +0 -0
  69. data/bin/selectlines +0 -0
  70. data/bin/sort_in_place +0 -0
  71. data/bin/splitfiles +16 -0
  72. data/bin/squeeze +17 -0
  73. data/bin/string +161 -0
  74. data/bin/strip_extensions +13 -0
  75. data/bin/sub +0 -0
  76. data/bin/t +63 -0
  77. data/bin/tracefile +555 -0
  78. data/bin/underline +0 -0
  79. data/bin/undump +0 -0
  80. data/bin/viu +0 -0
  81. data/bin/white +0 -0
  82. data/bin/yellow +0 -0
  83. data/bin/youtube_video +45 -0
  84. data/bin/youtube_video2 +45 -0
  85. data/code.js +28490 -0
  86. data/crystal-gobject/.git/HEAD +1 -0
  87. data/crystal-gobject/.git/config +11 -0
  88. data/crystal-gobject/.git/description +1 -0
  89. data/crystal-gobject/.git/hooks/applypatch-msg.sample +15 -0
  90. data/crystal-gobject/.git/hooks/commit-msg.sample +24 -0
  91. data/crystal-gobject/.git/hooks/fsmonitor-watchman.sample +109 -0
  92. data/crystal-gobject/.git/hooks/post-update.sample +8 -0
  93. data/crystal-gobject/.git/hooks/pre-applypatch.sample +14 -0
  94. data/crystal-gobject/.git/hooks/pre-commit.sample +49 -0
  95. data/crystal-gobject/.git/hooks/pre-merge-commit.sample +13 -0
  96. data/crystal-gobject/.git/hooks/pre-push.sample +53 -0
  97. data/crystal-gobject/.git/hooks/pre-rebase.sample +169 -0
  98. data/crystal-gobject/.git/hooks/pre-receive.sample +24 -0
  99. data/crystal-gobject/.git/hooks/prepare-commit-msg.sample +42 -0
  100. data/crystal-gobject/.git/hooks/update.sample +128 -0
  101. data/crystal-gobject/.git/index +0 -0
  102. data/crystal-gobject/.git/info/exclude +6 -0
  103. data/crystal-gobject/.git/logs/HEAD +1 -0
  104. data/crystal-gobject/.git/logs/refs/heads/main +1 -0
  105. data/crystal-gobject/.git/logs/refs/remotes/origin/HEAD +1 -0
  106. data/crystal-gobject/.git/objects/pack/pack-c21cfd88c6eef3076f2c2aebb658b750e87e10b6.idx +0 -0
  107. data/crystal-gobject/.git/objects/pack/pack-c21cfd88c6eef3076f2c2aebb658b750e87e10b6.pack +0 -0
  108. data/crystal-gobject/.git/packed-refs +15 -0
  109. data/crystal-gobject/.git/refs/heads/main +1 -0
  110. data/crystal-gobject/.git/refs/remotes/origin/HEAD +1 -0
  111. data/crystal-gobject/.github/workflows/ci.yml +22 -0
  112. data/crystal-gobject/.gitignore +14 -0
  113. data/crystal-gobject/LICENSE +27 -0
  114. data/crystal-gobject/README.md +143 -0
  115. data/crystal-gobject/samples/base_class_container.cr +15 -0
  116. data/crystal-gobject/samples/connect_after.cr +35 -0
  117. data/crystal-gobject/samples/crout/crout.cr +59 -0
  118. data/crystal-gobject/samples/e +0 -0
  119. data/crystal-gobject/samples/gdk_window.cr +36 -0
  120. data/crystal-gobject/samples/glist.cr +16 -0
  121. data/crystal-gobject/samples/greeter.cr +34 -0
  122. data/crystal-gobject/samples/greeter.glade +91 -0
  123. data/crystal-gobject/samples/gtk_accel_group.cr +13 -0
  124. data/crystal-gobject/samples/gtk_application.cr +12 -0
  125. data/crystal-gobject/samples/gtk_boxes.cr +44 -0
  126. data/crystal-gobject/samples/gtk_css_styling/css_window.cr +37 -0
  127. data/crystal-gobject/samples/gtk_css_styling/css_window.css +3 -0
  128. data/crystal-gobject/samples/gtk_css_styling/css_window.glade +104 -0
  129. data/crystal-gobject/samples/gtk_editable.cr +14 -0
  130. data/crystal-gobject/samples/gtk_entry.cr +10 -0
  131. data/crystal-gobject/samples/gtk_hello_world.cr +13 -0
  132. data/crystal-gobject/samples/gtk_menu_and_actions.cr +69 -0
  133. data/crystal-gobject/samples/gtk_message_dialog.cr +9 -0
  134. data/crystal-gobject/samples/gtk_subclasses.cr +30 -0
  135. data/crystal-gobject/samples/gtk_tree_view.cr +30 -0
  136. data/crystal-gobject/samples/gtk_tree_view.glade +44 -0
  137. data/crystal-gobject/samples/hello +0 -0
  138. data/crystal-gobject/samples/libgdk-3.a +0 -0
  139. data/crystal-gobject/samples/libgdk_pixbuf-2.0.a +0 -0
  140. data/crystal-gobject/samples/libgtk-3.a +0 -0
  141. data/crystal-gobject/samples/timeout.cr +34 -0
  142. data/crystal-gobject/script/ci.sh +17 -0
  143. data/crystal-gobject/script/release.sh +31 -0
  144. data/crystal-gobject/script/run_with_timeout.cr +14 -0
  145. data/crystal-gobject/script/test +7 -0
  146. data/crystal-gobject/shard.yml +16 -0
  147. data/crystal-gobject/spec/basic_spec.cr +46 -0
  148. data/crystal-gobject/spec/libsample/Makefile +28 -0
  149. data/crystal-gobject/spec/libsample/test-subject.c +107 -0
  150. data/crystal-gobject/spec/libsample/test-subject.h +65 -0
  151. data/crystal-gobject/spec/spec_helper.cr +5 -0
  152. data/crystal-gobject/src/atk/atk.cr +2 -0
  153. data/crystal-gobject/src/closure_data_manager.cr +62 -0
  154. data/crystal-gobject/src/crout.cr +601 -0
  155. data/crystal-gobject/src/g_i_repository/dumper.cr +116 -0
  156. data/crystal-gobject/src/g_i_repository/g_i_repository.cr +46 -0
  157. data/crystal-gobject/src/g_i_repository/info/arg_info.cr +157 -0
  158. data/crystal-gobject/src/g_i_repository/info/base_info.cr +169 -0
  159. data/crystal-gobject/src/g_i_repository/info/callable_info.cr +266 -0
  160. data/crystal-gobject/src/g_i_repository/info/callback_info.cr +54 -0
  161. data/crystal-gobject/src/g_i_repository/info/constant_info.cr +115 -0
  162. data/crystal-gobject/src/g_i_repository/info/enum_info.cr +88 -0
  163. data/crystal-gobject/src/g_i_repository/info/field_info.cr +97 -0
  164. data/crystal-gobject/src/g_i_repository/info/function_info.cr +237 -0
  165. data/crystal-gobject/src/g_i_repository/info/interface_info.cr +97 -0
  166. data/crystal-gobject/src/g_i_repository/info/object_info.cr +170 -0
  167. data/crystal-gobject/src/g_i_repository/info/property_info.cr +93 -0
  168. data/crystal-gobject/src/g_i_repository/info/registered_type_info.cr +62 -0
  169. data/crystal-gobject/src/g_i_repository/info/signal_info.cr +119 -0
  170. data/crystal-gobject/src/g_i_repository/info/struct_info.cr +139 -0
  171. data/crystal-gobject/src/g_i_repository/info/type_info.cr +326 -0
  172. data/crystal-gobject/src/g_i_repository/info/union_info.cr +136 -0
  173. data/crystal-gobject/src/g_i_repository/info/v_func_info.cr +33 -0
  174. data/crystal-gobject/src/g_i_repository/info/value_info.cr +62 -0
  175. data/crystal-gobject/src/g_i_repository/repository.cr +68 -0
  176. data/crystal-gobject/src/g_i_repository/wrapper_generator.cr +103 -0
  177. data/crystal-gobject/src/g_lib/error.cr +34 -0
  178. data/crystal-gobject/src/g_lib/g_lib.cr +81 -0
  179. data/crystal-gobject/src/g_lib/list_iterator.cr +81 -0
  180. data/crystal-gobject/src/g_lib/s_list_iterator.cr +54 -0
  181. data/crystal-gobject/src/g_object/closure.cr +40 -0
  182. data/crystal-gobject/src/g_object/g_object.cr +7 -0
  183. data/crystal-gobject/src/g_object/module_functions.cr +38 -0
  184. data/crystal-gobject/src/g_object/object.cr +104 -0
  185. data/crystal-gobject/src/g_object/type.cr +68 -0
  186. data/crystal-gobject/src/g_object/value.cr +308 -0
  187. data/crystal-gobject/src/gdk/event.cr +34 -0
  188. data/crystal-gobject/src/gdk/gdk.cr +35 -0
  189. data/crystal-gobject/src/generated/g_i_repository/argument.cr +130 -0
  190. data/crystal-gobject/src/generated/g_i_repository/array_type.cr +34 -0
  191. data/crystal-gobject/src/generated/g_i_repository/attribute_iter.cr +65 -0
  192. data/crystal-gobject/src/generated/g_i_repository/base_info.cr +134 -0
  193. data/crystal-gobject/src/generated/g_i_repository/direction.cr +33 -0
  194. data/crystal-gobject/src/generated/g_i_repository/field_info_flags.cr +34 -0
  195. data/crystal-gobject/src/generated/g_i_repository/function_info_flags.cr +38 -0
  196. data/crystal-gobject/src/generated/g_i_repository/g_i_repository.cr +7 -0
  197. data/crystal-gobject/src/generated/g_i_repository/info_type.cr +50 -0
  198. data/crystal-gobject/src/generated/g_i_repository/module_functions.cr +816 -0
  199. data/crystal-gobject/src/generated/g_i_repository/repository.cr +214 -0
  200. data/crystal-gobject/src/generated/g_i_repository/repository_class.cr +55 -0
  201. data/crystal-gobject/src/generated/g_i_repository/repository_error.cr +34 -0
  202. data/crystal-gobject/src/generated/g_i_repository/repository_load_flags.cr +33 -0
  203. data/crystal-gobject/src/generated/g_i_repository/repository_private.cr +46 -0
  204. data/crystal-gobject/src/generated/g_i_repository/scope_type.cr +34 -0
  205. data/crystal-gobject/src/generated/g_i_repository/transfer.cr +33 -0
  206. data/crystal-gobject/src/generated/g_i_repository/type_tag.cr +52 -0
  207. data/crystal-gobject/src/generated/g_i_repository/typelib.cr +61 -0
  208. data/crystal-gobject/src/generated/g_i_repository/unresolved_info.cr +45 -0
  209. data/crystal-gobject/src/generated/g_i_repository/v_func_info_flags.cr +36 -0
  210. data/crystal-gobject/src/generated/g_object/param_flags.cr +44 -0
  211. data/crystal-gobject/src/generated/g_object/signal_flags.cr +42 -0
  212. data/crystal-gobject/src/generated/lib_g_i_repository.cr +302 -0
  213. data/crystal-gobject/src/generated/lib_g_lib.cr +2261 -0
  214. data/crystal-gobject/src/generated/lib_g_object.cr +874 -0
  215. data/crystal-gobject/src/generator/build_namespace.cr +22 -0
  216. data/crystal-gobject/src/generator/doc.cr +259 -0
  217. data/crystal-gobject/src/generator/dump.cr +55 -0
  218. data/crystal-gobject/src/generator/generator.cr +22 -0
  219. data/crystal-gobject/src/generator/namespace.cr +192 -0
  220. data/crystal-gobject/src/generator/stage2.cr +113 -0
  221. data/crystal-gobject/src/generator/stage3.cr +3 -0
  222. data/crystal-gobject/src/gio/gio.cr +4 -0
  223. data/crystal-gobject/src/gobject.cr +54 -0
  224. data/crystal-gobject/src/gtk/autorun.cr +16 -0
  225. data/crystal-gobject/src/gtk/gtk.cr +61 -0
  226. data/crystal-gobject/src/notify/notification.cr +158 -0
  227. data/crystal-gobject/src/notify/notify.cr +4 -0
  228. data/crystal-gobject/src/pointer_iterator.cr +49 -0
  229. data/crystal-gobject/src/wrapped_type.cr +53 -0
  230. data/democracy.gemspec +14 -0
  231. data/dictate +183 -0
  232. data/emerald-browser/.qmake.stash +23 -0
  233. data/emerald-browser/Makefile +469 -0
  234. data/emerald-browser/OUT +90 -0
  235. data/emerald-browser/a.out +0 -0
  236. data/emerald-browser/empty +0 -0
  237. data/emerald-browser/empty.c +1 -0
  238. data/emerald-browser/open +0 -0
  239. data/emerald-browser/open.c +57 -0
  240. data/emerald-browser/qmake.pro +23 -0
  241. data/emerald-browser/src/OUT +438 -0
  242. data/emerald-browser/src/a.cpp +303 -0
  243. data/emerald-browser/src/a.out +0 -0
  244. data/emerald-browser/src/ss.h +12 -0
  245. data/emerald-browser/src/t/fullscreennotification.cpp +98 -0
  246. data/emerald-browser/src/t/fullscreennotification.h +72 -0
  247. data/emerald-browser/src/t/fullscreenwindow.cpp +99 -0
  248. data/emerald-browser/src/t/fullscreenwindow.h +76 -0
  249. data/emerald-browser/src/t/main.cpp +64 -0
  250. data/emerald-browser/src/t/mainwindow.cpp +83 -0
  251. data/emerald-browser/src/t/mainwindow.h +75 -0
  252. data/emerald-browser/test/a.cpp +2 -0
  253. data/f +0 -0
  254. data/faster_googler +31 -0
  255. data/favicon.ico +0 -0
  256. data/foo +80 -0
  257. data/foo.c +39 -0
  258. data/foo.cpp +36 -0
  259. data/foo.js +25 -0
  260. data/free_icons/site/bulb +0 -0
  261. data/free_icons/site/chess +0 -0
  262. data/free_icons/site/compiz.svg +463 -0
  263. data/free_icons/site/cursor.svg +1 -0
  264. data/free_icons/site/dock +0 -0
  265. data/free_icons/site/gnu +0 -0
  266. data/free_icons/site/info.svg +200 -0
  267. data/free_icons/site/iphone.svg +222 -0
  268. data/free_icons/site/laptop +0 -0
  269. data/free_icons/site/magic.svg +856 -0
  270. data/free_icons/site/man +0 -0
  271. data/free_icons/site/mint +0 -0
  272. data/free_icons/site/mouse +0 -0
  273. data/free_icons/site/paint.svg +2640 -0
  274. data/free_icons/site/present +0 -0
  275. data/free_icons/site/python +0 -0
  276. data/free_icons/site/reality +0 -0
  277. data/free_icons/site/ruby +0 -0
  278. data/free_icons/site/skeptic +0 -0
  279. data/free_icons/site/terminal +0 -0
  280. data/free_icons/site/video.svg +358 -0
  281. data/free_icons/site/warning +0 -0
  282. data/free_icons/site/wikipedia.svg +553 -0
  283. data/free_icons/site/write.svg +287 -0
  284. data/g +0 -0
  285. data/graphical_help.c +6 -0
  286. data/gregory_coreutils/DOC +14 -0
  287. data/gregory_coreutils/build/Makefile +12 -0
  288. data/gregory_coreutils/build/code +1 -0
  289. data/gregory_coreutils/build/functions +465 -0
  290. data/gregory_coreutils/build/make +93 -0
  291. data/gregory_coreutils/build/mk +74 -0
  292. data/gregory_coreutils/build/regex +2 -0
  293. data/gregory_coreutils/build/ruby_functions +0 -0
  294. data/gregory_coreutils/utilities/abs +0 -0
  295. data/gregory_coreutils/utilities/add +0 -0
  296. data/gregory_coreutils/utilities/args +0 -0
  297. data/gregory_coreutils/utilities/black +0 -0
  298. data/gregory_coreutils/utilities/blue +0 -0
  299. data/gregory_coreutils/utilities/bold +0 -0
  300. data/gregory_coreutils/utilities/copy +0 -0
  301. data/gregory_coreutils/utilities/count +0 -0
  302. data/gregory_coreutils/utilities/cpy +0 -0
  303. data/gregory_coreutils/utilities/cyan +0 -0
  304. data/gregory_coreutils/utilities/div +0 -0
  305. data/gregory_coreutils/utilities/dump +0 -0
  306. data/gregory_coreutils/utilities/exp +0 -0
  307. data/gregory_coreutils/utilities/files +0 -0
  308. data/gregory_coreutils/utilities/floor +0 -0
  309. data/gregory_coreutils/utilities/green +0 -0
  310. data/gregory_coreutils/utilities/gsub +0 -0
  311. data/gregory_coreutils/utilities/gsub_in_place +0 -0
  312. data/gregory_coreutils/utilities/last_nth +0 -0
  313. data/gregory_coreutils/utilities/lines +0 -0
  314. data/gregory_coreutils/utilities/magenta +0 -0
  315. data/gregory_coreutils/utilities/mul +0 -0
  316. data/gregory_coreutils/utilities/nth +0 -0
  317. data/gregory_coreutils/utilities/red +0 -0
  318. data/gregory_coreutils/utilities/replace_in_place +0 -0
  319. data/gregory_coreutils/utilities/replace_not_in_place +0 -0
  320. data/gregory_coreutils/utilities/selectlines +0 -0
  321. data/gregory_coreutils/utilities/sort_in_place +0 -0
  322. data/gregory_coreutils/utilities/sub +0 -0
  323. data/gregory_coreutils/utilities/underline +0 -0
  324. data/gregory_coreutils/utilities/undump +0 -0
  325. data/gregory_coreutils/utilities/white +0 -0
  326. data/gregory_coreutils/utilities/yellow +0 -0
  327. data/gtk +3 -0
  328. data/html_file +0 -0
  329. data/html_file.html +92 -0
  330. data/i +181 -0
  331. data/index.html +38 -0
  332. data/index2.html +344 -0
  333. data/inspect.rb +209 -0
  334. data/lib/README +310 -0
  335. data/lib/__index.html +11 -0
  336. data/lib/because.rb +41 -0
  337. data/lib/code.js +28490 -0
  338. data/lib/compile +5 -0
  339. data/lib/conjunction.rb +49 -0
  340. data/lib/evidence.rb +45 -0
  341. data/lib/graphical_help +90 -0
  342. data/lib/however.rb +42 -0
  343. data/lib/index.html +49 -0
  344. data/lib/index2.html +344 -0
  345. data/lib/inputreceiver.rb +135 -0
  346. data/lib/item.rb +77 -0
  347. data/lib/itemlist.rb +50 -0
  348. data/lib/negative.rb +43 -0
  349. data/lib/neutral.rb +43 -0
  350. data/lib/outputter.rb +60 -0
  351. data/lib/p.rb +71 -0
  352. data/lib/positive.rb +41 -0
  353. data/lib/script.js +423 -0
  354. data/lib/string__.rb +110 -0
  355. data/lib/sub/file +5 -0
  356. data/man/foo.rb +6 -0
  357. data/man/gtk.html +1 -0
  358. data/man/out +7288 -0
  359. data/more/ac.desktop +12 -0
  360. data/more/res +1 -0
  361. data/more/web-speech-api/.git/HEAD +1 -0
  362. data/more/web-speech-api/.git/config +11 -0
  363. data/more/web-speech-api/.git/description +1 -0
  364. data/more/web-speech-api/.git/hooks/applypatch-msg.sample +15 -0
  365. data/more/web-speech-api/.git/hooks/commit-msg.sample +24 -0
  366. data/more/web-speech-api/.git/hooks/fsmonitor-watchman.sample +109 -0
  367. data/more/web-speech-api/.git/hooks/post-update.sample +8 -0
  368. data/more/web-speech-api/.git/hooks/pre-applypatch.sample +14 -0
  369. data/more/web-speech-api/.git/hooks/pre-commit.sample +49 -0
  370. data/more/web-speech-api/.git/hooks/pre-merge-commit.sample +13 -0
  371. data/more/web-speech-api/.git/hooks/pre-push.sample +53 -0
  372. data/more/web-speech-api/.git/hooks/pre-rebase.sample +169 -0
  373. data/more/web-speech-api/.git/hooks/pre-receive.sample +24 -0
  374. data/more/web-speech-api/.git/hooks/prepare-commit-msg.sample +42 -0
  375. data/more/web-speech-api/.git/hooks/update.sample +128 -0
  376. data/more/web-speech-api/.git/index +0 -0
  377. data/more/web-speech-api/.git/info/exclude +6 -0
  378. data/more/web-speech-api/.git/logs/HEAD +1 -0
  379. data/more/web-speech-api/.git/logs/refs/heads/master +1 -0
  380. data/more/web-speech-api/.git/logs/refs/remotes/origin/HEAD +1 -0
  381. data/more/web-speech-api/.git/objects/pack/pack-4d2adae000c513b287d53e24937e9e836954f901.idx +0 -0
  382. data/more/web-speech-api/.git/objects/pack/pack-4d2adae000c513b287d53e24937e9e836954f901.pack +0 -0
  383. data/more/web-speech-api/.git/packed-refs +2 -0
  384. data/more/web-speech-api/.git/refs/heads/master +1 -0
  385. data/more/web-speech-api/.git/refs/remotes/origin/HEAD +1 -0
  386. data/more/web-speech-api/CODE_OF_CONDUCT.md +15 -0
  387. data/more/web-speech-api/LICENSE +116 -0
  388. data/more/web-speech-api/README.md +23 -0
  389. data/more/web-speech-api/index.html +25 -0
  390. data/more/web-speech-api/phrase-matcher/index.html +30 -0
  391. data/more/web-speech-api/phrase-matcher/script.js +124 -0
  392. data/more/web-speech-api/phrase-matcher/style.css +54 -0
  393. data/more/web-speech-api/speak-easy-synthesis/img/ws128.png +0 -0
  394. data/more/web-speech-api/speak-easy-synthesis/img/ws512.png +0 -0
  395. data/more/web-speech-api/speak-easy-synthesis/index.html +43 -0
  396. data/more/web-speech-api/speak-easy-synthesis/manifest.webapp +14 -0
  397. data/more/web-speech-api/speak-easy-synthesis/script.js +87 -0
  398. data/more/web-speech-api/speak-easy-synthesis/style.css +74 -0
  399. data/more/web-speech-api/speech-color-changer/img/ws128.png +0 -0
  400. data/more/web-speech-api/speech-color-changer/img/ws512.png +0 -0
  401. data/more/web-speech-api/speech-color-changer/index.html +26 -0
  402. data/more/web-speech-api/speech-color-changer/manifest.webapp +23 -0
  403. data/more/web-speech-api/speech-color-changer/script.js +58 -0
  404. data/more/web-speech-api/speech-color-changer/style.css +38 -0
  405. data/opensrc +68 -0
  406. data/out +39 -0
  407. data/playsrc +14 -0
  408. data/program.c +11 -0
  409. data/program.prog +568 -0
  410. data/proj/a +0 -0
  411. data/proj/a.c +1 -0
  412. data/proj/a.o +0 -0
  413. data/proj/a.rs +18 -0
  414. data/proj/b.rs +22 -0
  415. data/proj/linker.sh +8 -0
  416. data/proj/save_last +4 -0
  417. data/push +16 -0
  418. data/q.cpp +175 -0
  419. data/qt/.qmake.stash +23 -0
  420. data/qt/Qt5Core.dll +0 -0
  421. data/qt/Qt5Gui.dll +0 -0
  422. data/qt/Qt5Multimedia.dll +0 -0
  423. data/qt/Qt5MultimediaWidgets.dll +0 -0
  424. data/qt/Qt5Network.dll +0 -0
  425. data/qt/Qt5PrintSupport.dll +0 -0
  426. data/qt/Qt5Qml.dll +0 -0
  427. data/qt/Qt5QmlModels.dll +0 -0
  428. data/qt/Qt5Quick.dll +0 -0
  429. data/qt/Qt5Sensors.dll +0 -0
  430. data/qt/Qt5WebChannel.dll +0 -0
  431. data/qt/Qt5WebKit.dll +0 -0
  432. data/qt/Qt5WebKitWidgets.dll +0 -0
  433. data/qt/Qt5Widgets.dll +0 -0
  434. data/qt/a.cpp +39 -0
  435. data/qt/a.out +0 -0
  436. data/qt/a.sh +7 -0
  437. data/qt/icudt66.dll +0 -0
  438. data/qt/icuin66.dll +0 -0
  439. data/qt/icuuc66.dll +0 -0
  440. data/qt/libbz2.dll +0 -0
  441. data/qt/libcrypto-1_1-x64.dll +0 -0
  442. data/qt/libfreetype-6.dll +0 -0
  443. data/qt/libgcc_s_seh-1.dll +0 -0
  444. data/qt/libglib-2.0-0.dll +0 -0
  445. data/qt/libharfbuzz-0.dll +0 -0
  446. data/qt/libiconv-2.dll +0 -0
  447. data/qt/libintl-8.dll +0 -0
  448. data/qt/libjpeg-9.dll +0 -0
  449. data/qt/liblzma-5.dll +0 -0
  450. data/qt/libpcre-1.dll +0 -0
  451. data/qt/libpcre2-16-0.dll +0 -0
  452. data/qt/libpng16-16.dll +0 -0
  453. data/qt/libsqlite3-0.dll +0 -0
  454. data/qt/libssl-1_1-x64.dll +0 -0
  455. data/qt/libstdc++-6.dll +0 -0
  456. data/qt/libwebp-7.dll +0 -0
  457. data/qt/libwinpthread-1.dll +0 -0
  458. data/qt/libxml2-2.dll +0 -0
  459. data/qt/libxslt-1.dll +0 -0
  460. data/qt/libzstd.dll +0 -0
  461. data/qt/prog +1 -0
  462. data/qt/qwindows.dll +0 -0
  463. data/qt/zlib1.dll +0 -0
  464. data/quickjs/.git/HEAD +1 -0
  465. data/quickjs/.git/config +11 -0
  466. data/quickjs/.git/description +1 -0
  467. data/quickjs/.git/hooks/applypatch-msg.sample +15 -0
  468. data/quickjs/.git/hooks/commit-msg.sample +24 -0
  469. data/quickjs/.git/hooks/fsmonitor-watchman.sample +109 -0
  470. data/quickjs/.git/hooks/post-update.sample +8 -0
  471. data/quickjs/.git/hooks/pre-applypatch.sample +14 -0
  472. data/quickjs/.git/hooks/pre-commit.sample +49 -0
  473. data/quickjs/.git/hooks/pre-merge-commit.sample +13 -0
  474. data/quickjs/.git/hooks/pre-push.sample +53 -0
  475. data/quickjs/.git/hooks/pre-rebase.sample +169 -0
  476. data/quickjs/.git/hooks/pre-receive.sample +24 -0
  477. data/quickjs/.git/hooks/prepare-commit-msg.sample +42 -0
  478. data/quickjs/.git/hooks/update.sample +128 -0
  479. data/quickjs/.git/index +0 -0
  480. data/quickjs/.git/info/exclude +6 -0
  481. data/quickjs/.git/logs/HEAD +1 -0
  482. data/quickjs/.git/logs/refs/heads/master +1 -0
  483. data/quickjs/.git/logs/refs/remotes/origin/HEAD +1 -0
  484. data/quickjs/.git/objects/pack/pack-744a13dba8773a756b22372ba65ded3aca50cdeb.idx +0 -0
  485. data/quickjs/.git/objects/pack/pack-744a13dba8773a756b22372ba65ded3aca50cdeb.pack +0 -0
  486. data/quickjs/.git/packed-refs +2 -0
  487. data/quickjs/.git/refs/heads/master +1 -0
  488. data/quickjs/.git/refs/remotes/origin/HEAD +1 -0
  489. data/quickjs/.obj/.d +1 -0
  490. data/quickjs/.obj/cutils.nolto.o +0 -0
  491. data/quickjs/.obj/cutils.o +0 -0
  492. data/quickjs/.obj/cutils.o.d +1 -0
  493. data/quickjs/.obj/hello.o +0 -0
  494. data/quickjs/.obj/hello.o.d +1 -0
  495. data/quickjs/.obj/libbf.nolto.o +0 -0
  496. data/quickjs/.obj/libbf.o +0 -0
  497. data/quickjs/.obj/libbf.o.d +1 -0
  498. data/quickjs/.obj/libregexp.nolto.o +0 -0
  499. data/quickjs/.obj/libregexp.o +0 -0
  500. data/quickjs/.obj/libregexp.o.d +2 -0
  501. data/quickjs/.obj/libunicode.nolto.o +0 -0
  502. data/quickjs/.obj/libunicode.o +0 -0
  503. data/quickjs/.obj/libunicode.o.d +1 -0
  504. data/quickjs/.obj/qjs.check.o +0 -0
  505. data/quickjs/.obj/qjs.check.o.d +1 -0
  506. data/quickjs/.obj/qjs.o +0 -0
  507. data/quickjs/.obj/qjs.o.d +1 -0
  508. data/quickjs/.obj/qjsc.o +0 -0
  509. data/quickjs/.obj/qjsc.o.d +1 -0
  510. data/quickjs/.obj/qjscalc.o +0 -0
  511. data/quickjs/.obj/qjscalc.o.d +1 -0
  512. data/quickjs/.obj/quickjs-libc.nolto.o +0 -0
  513. data/quickjs/.obj/quickjs-libc.o +0 -0
  514. data/quickjs/.obj/quickjs-libc.o.d +2 -0
  515. data/quickjs/.obj/quickjs.check.o +0 -0
  516. data/quickjs/.obj/quickjs.check.o.d +2 -0
  517. data/quickjs/.obj/quickjs.nolto.o +0 -0
  518. data/quickjs/.obj/quickjs.o +0 -0
  519. data/quickjs/.obj/quickjs.o.d +2 -0
  520. data/quickjs/.obj/repl.o +0 -0
  521. data/quickjs/.obj/repl.o.d +1 -0
  522. data/quickjs/.obj/run-test262.o +0 -0
  523. data/quickjs/.obj/run-test262.o.d +2 -0
  524. data/quickjs/COMPILE_WIN +1 -0
  525. data/quickjs/Changelog +148 -0
  526. data/quickjs/LICENSE +22 -0
  527. data/quickjs/Makefile +470 -0
  528. data/quickjs/TODO +70 -0
  529. data/quickjs/VERSION +1 -0
  530. data/quickjs/a.c +50038 -0
  531. data/quickjs/a.js +26075 -0
  532. data/quickjs/a.rb +3 -0
  533. data/quickjs/cutils.c +631 -0
  534. data/quickjs/cutils.h +297 -0
  535. data/quickjs/doc/jsbignum.texi +589 -0
  536. data/quickjs/doc/quickjs.texi +1097 -0
  537. data/quickjs/examples/fib.c +72 -0
  538. data/quickjs/examples/fib_module.js +10 -0
  539. data/quickjs/examples/hello +0 -0
  540. data/quickjs/examples/hello.js +1 -0
  541. data/quickjs/examples/hello_module.js +6 -0
  542. data/quickjs/examples/pi_bigdecimal.js +68 -0
  543. data/quickjs/examples/pi_bigfloat.js +66 -0
  544. data/quickjs/examples/pi_bigint.js +118 -0
  545. data/quickjs/examples/point.c +151 -0
  546. data/quickjs/examples/test_fib.js +6 -0
  547. data/quickjs/examples/test_point.js +40 -0
  548. data/quickjs/hello.c +44 -0
  549. data/quickjs/libbf.c +8466 -0
  550. data/quickjs/libbf.h +535 -0
  551. data/quickjs/libquickjs.a +0 -0
  552. data/quickjs/libquickjs.lto.a +0 -0
  553. data/quickjs/libregexp-opcode.h +58 -0
  554. data/quickjs/libregexp.c +2610 -0
  555. data/quickjs/libregexp.h +92 -0
  556. data/quickjs/libunicode-table.h +4368 -0
  557. data/quickjs/libunicode.c +1556 -0
  558. data/quickjs/libunicode.h +124 -0
  559. data/quickjs/libwinpthread-1.dll +0 -0
  560. data/quickjs/list.h +100 -0
  561. data/quickjs/out.c +24 -0
  562. data/quickjs/out55.c +59 -0
  563. data/quickjs/out56.c +79 -0
  564. data/quickjs/out57.c +24 -0
  565. data/quickjs/out58.c +4 -0
  566. data/quickjs/p.exe +0 -0
  567. data/quickjs/qjs +0 -0
  568. data/quickjs/qjs.c +570 -0
  569. data/quickjs/qjsc +0 -0
  570. data/quickjs/qjsc.c +762 -0
  571. data/quickjs/qjsc.exe +0 -0
  572. data/quickjs/qjscalc.c +4005 -0
  573. data/quickjs/qjscalc.js +2657 -0
  574. data/quickjs/quickjs-atom.h +273 -0
  575. data/quickjs/quickjs-libc.c +3927 -0
  576. data/quickjs/quickjs-libc.h +59 -0
  577. data/quickjs/quickjs-opcode.h +365 -0
  578. data/quickjs/quickjs.c +54036 -0
  579. data/quickjs/quickjs.h +1049 -0
  580. data/quickjs/readme.txt +1 -0
  581. data/quickjs/release.sh +158 -0
  582. data/quickjs/repl.c +2020 -0
  583. data/quickjs/repl.js +1566 -0
  584. data/quickjs/run-test262 +0 -0
  585. data/quickjs/run-test262.c +2107 -0
  586. data/quickjs/test262.conf +199 -0
  587. data/quickjs/test262_errors.txt +35 -0
  588. data/quickjs/test262o.conf +410 -0
  589. data/quickjs/test262o_errors.txt +0 -0
  590. data/quickjs/tests/bjson.c +96 -0
  591. data/quickjs/tests/microbench.js +1065 -0
  592. data/quickjs/tests/test262.patch +71 -0
  593. data/quickjs/tests/test_bignum.js +326 -0
  594. data/quickjs/tests/test_bjson.js +191 -0
  595. data/quickjs/tests/test_builtin.js +685 -0
  596. data/quickjs/tests/test_closure.js +221 -0
  597. data/quickjs/tests/test_language.js +547 -0
  598. data/quickjs/tests/test_loop.js +368 -0
  599. data/quickjs/tests/test_op_overloading.js +207 -0
  600. data/quickjs/tests/test_qjscalc.js +256 -0
  601. data/quickjs/tests/test_std.js +281 -0
  602. data/quickjs/tests/test_worker.js +62 -0
  603. data/quickjs/tests/test_worker_module.js +31 -0
  604. data/quickjs/unicode_download.sh +19 -0
  605. data/quickjs/unicode_gen.c +3057 -0
  606. data/quickjs/unicode_gen_def.h +284 -0
  607. data/readline +3 -0
  608. data/rm_com +1 -0
  609. data/run.sh +13 -0
  610. data/scaling +6 -0
  611. data/script.js +572 -0
  612. data/server_creator/__ +307 -0
  613. data/server_creator/a/a (1).tar.gz +0 -0
  614. data/server_creator/a/a.out +0 -0
  615. data/server_creator/a/hello_world +0 -0
  616. data/server_creator/a/help +57 -0
  617. data/server_creator/a/main_v1.cpp +83 -0
  618. data/server_creator/a/my_libs_gregory/.deps +0 -0
  619. data/server_creator/a/my_libs_gregory/.libs/mod_my_libs_gregory.lai +41 -0
  620. data/server_creator/a/my_libs_gregory/.libs/mod_my_libs_gregory.o +0 -0
  621. data/server_creator/a/my_libs_gregory/.libs/mod_my_libs_gregory.so +0 -0
  622. data/server_creator/a/my_libs_gregory/mod_my_libs_gregory.c +72 -0
  623. data/server_creator/a/my_libs_gregory/mod_my_libs_gregory.la +41 -0
  624. data/server_creator/a/my_libs_gregory/mod_my_libs_gregory.lo +12 -0
  625. data/server_creator/a/my_libs_gregory/mod_my_libs_gregory.slo +0 -0
  626. data/server_creator/a/nginx.conf +32 -0
  627. data/server_creator/a/six +1 -0
  628. data/server_creator/a.out +0 -0
  629. data/server_creator/all_code.cpp +448 -0
  630. data/server_creator/all_code.js +27 -0
  631. data/server_creator/code +510 -0
  632. data/server_creator/make_application +64 -0
  633. data/server_creator/prog.cpp +33 -0
  634. data/server_creator/prog.js +22 -0
  635. data/server_creator/program.js +745 -0
  636. data/server_creator/rm_com +1 -0
  637. data/server_creator/test.sh +82 -0
  638. data/speakcat.rb +9 -0
  639. data/string +48 -0
  640. data/super_trans +83 -0
  641. data/test.sh +21 -0
  642. data/todo +8 -0
  643. data/version_decrement +3 -0
  644. data/viu_license +21 -0
  645. data/windows/program.c +21 -0
  646. data/windows/program.exe +0 -0
  647. metadata +759 -0
@@ -0,0 +1,22 @@
1
+ require "../crout"
2
+ require "../g_i_repository"
3
+ require "./namespace"
4
+
5
+ name = ARGV[0]
6
+ version = ARGV[1]?
7
+ namespace = Namespace.new(name, version)
8
+
9
+ Crout.build(STDOUT) do |builder|
10
+ section do
11
+ namespace.dependencies.each do |dependency, version|
12
+ if version
13
+ line call("require_gobject", literal(dependency), literal(version))
14
+ else
15
+ line call("require_gobject", literal(dependency))
16
+ end
17
+ end
18
+ end
19
+
20
+ namespace.lib_definition(builder)
21
+ namespace.wrapper_definitions(builder)
22
+ end
@@ -0,0 +1,259 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Democracy software compilation VERSION 0.0., created on 2021-11-14 17:41:33 -0500
4
+ # Get all of this code, and all of these files, with
5
+ # gem install democracy
6
+ # Linux ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux-gnu]
7
+ #
8
+ # Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.
9
+ #
10
+ # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
11
+
12
+
13
+
14
+
15
+
16
+ # 5 of 16 source files
17
+ module Crystal::Config
18
+ require_relative "string__"
19
+ require_relative "./crystal"
20
+ require_relative "./repository"
21
+ def self.path
22
+ Crystal::PATH
23
+ end
24
+
25
+ def self.library_path
26
+ {{env("CRYSTAL_CONFIG_LIBRARY_PATH") || env("CRYSTAL_LIBRARY_PATH") || `crystal env CRYSTAL_LIBRARY_PATH`.stringify}} || previous_def
27
+ end
28
+ end
29
+
30
+ struct Crystal::CrystalPath
31
+ def self.default_path
32
+ default = previous_def
33
+ "#{default}#{Process::PATH_DELIMITER}#{gobject_path}"
34
+ end
35
+
36
+ def self.gobject_path
37
+ File.expand_path(File.join(__DIR__, "..", "..", "samples", "lib")) # darn hack, is there a better way?
38
+ end
39
+ end
40
+
41
+ class Crystal::Doc::Type
42
+ setter doc : String?
43
+
44
+ def doc
45
+ previous_def || @doc
46
+ end
47
+ end
48
+
49
+ class Crystal::Doc::Method
50
+ setter doc : String?
51
+
52
+ def doc
53
+ previous_def || @doc
54
+ end
55
+ end
56
+
57
+ class Crystal::Doc::Constant
58
+ setter doc : String?
59
+
60
+ def doc
61
+ previous_def || @doc
62
+ end
63
+ end
64
+
65
+ class Generator < Crystal::Doc::Generator
66
+ @girs = {} of String => XML::Node?
67
+ @gir_namespace_cache = {} of String => Bool
68
+
69
+ setter gir_namespaces : Array(String) = [] of String
70
+ setter gir_search_paths : Array(String) = ["/usr/share/gir-1.0"]
71
+
72
+ def is_gir_namespace?(name : String)
73
+ return @gir_namespace_cache[name] if @gir_namespace_cache.has_key?(name)
74
+
75
+ could_load = !GIRepository::Repository.instance.require(name).nil? rescue false
76
+ @gir_namespace_cache[name] = could_load
77
+ could_load
78
+ end
79
+
80
+ def must_include?(location : Crystal::Location)
81
+ return true if is_gir_namespace?(location.filename.to_s)
82
+
83
+ super
84
+ end
85
+
86
+ def gir(namespace : String)
87
+ @girs[namespace] ||= begin
88
+ file = Namespace.new(namespace).girname
89
+ path = @gir_search_paths.map { |path| File.join(path, file) }.find { |path| File.exists?(path) }
90
+ if path
91
+ File.open(path, &->XML.parse(IO)).first_element_child
92
+ else
93
+ STDERR.puts "Couldn't find #{file} in #{@gir_search_paths.join(":")}"
94
+ exit 1
95
+ end
96
+ end
97
+ end
98
+
99
+ def gir(type : Crystal::Doc::Type)
100
+ return gir(type.name) if is_gir_namespace?(type.name)
101
+ namespace = type.namespace
102
+ gir(namespace) if namespace
103
+ end
104
+
105
+ def gir(method : Crystal::Doc::Method)
106
+ gir(method.type)
107
+ end
108
+
109
+ def gir(constant : Crystal::Doc::Constant)
110
+ gir(constant.type)
111
+ end
112
+
113
+ def parse_docstring(doc)
114
+ doc.gsub(/^#/m, " #")
115
+ end
116
+
117
+ def doc(type : Crystal::Doc::Type)
118
+ set_doc(type, {"class", "record", "union", "enumeration", "bitfield"})
119
+
120
+ super
121
+ end
122
+
123
+ def doc(method : Crystal::Doc::Method)
124
+ if method.type.kind == :enum
125
+ set_doc(method, {"member"}, Tuple.new, method.type, {"enumeration", "bitfield"})
126
+ elsif method.type.kind == :module
127
+ set_doc(method, {"function"}, {"get_"}, method.type, {"namespace"})
128
+ else
129
+ set_doc(method, {"method", "function", "field"}, {"get_"},
130
+ method.type, {"class", "record", "union"})
131
+ end
132
+
133
+ super
134
+ end
135
+
136
+ def doc(constant : Crystal::Doc::Constant)
137
+ if constant.type.enum?
138
+ set_doc(constant, {"member"}, Tuple.new, constant.type, {"enumeration", "bitfield"}, item_case: :lower)
139
+ else
140
+ set_doc(constant, {"constant"})
141
+ end
142
+
143
+ super
144
+ end
145
+
146
+ def set_doc(item, gir_kinds, prefixes = Tuple.new, item_namespace = nil, item_gir_kinds = {"*"}, *, item_case = :given)
147
+ if item.doc.nil?
148
+ gir = gir(item)
149
+ if gir
150
+ namespace = gir.namespace
151
+ namespaces = {"gir" => namespace.href} if namespace
152
+ prefixes = Tuple.new("", *prefixes)
153
+ name = item.name.rchop('?')
154
+ name = name.downcase if item_case == :lower
155
+ kinds = gir_kinds.map { |kind| "self::gir:#{kind}" }.join(" or ")
156
+ names = prefixes.map { |prefix| "@name='#{prefix}#{name}'" }.join(" or ")
157
+ xpath = "//gir:*[#{kinds}][#{names}]/gir:doc/text()"
158
+
159
+ if item_namespace
160
+ kinds = item_gir_kinds.map { |kind| "self::gir:#{kind}" }.join(" or ")
161
+ xpath = "//gir:*[#{kinds}][@name='#{item_namespace.name}']#{xpath}"
162
+ end
163
+
164
+ doc = gir.xpath_node(xpath, namespaces).try &.content
165
+ item.doc = parse_docstring(doc) if doc
166
+ end
167
+ end
168
+ end
169
+
170
+ def compute_repository
171
+ end
172
+
173
+ def read_readme
174
+ "# Documentation for #{@gir_namespaces.join(", ")} and dependencies"
175
+ end
176
+
177
+ def relative_location(location : Crystal::Location?)
178
+ location
179
+ end
180
+
181
+ def relative_filename(location)
182
+ filename = location.filename
183
+ return unless filename.is_a?(String)
184
+ filename
185
+ end
186
+
187
+ def relative_locations(type)
188
+
189
+ locations = [] of Crystal::Doc::RelativeLocation
190
+ type.locations.try &.each do |location|
191
+ location = relative_location location
192
+ next unless location
193
+
194
+ filename = relative_filename location
195
+ next unless filename
196
+
197
+ locations << Crystal::Doc::RelativeLocation.new(filename, location.line_number)
198
+ end
199
+
200
+ locations
201
+ end
202
+ end
203
+
204
+ opt_namespaces = nil
205
+ output_directory = "docs/gobject"
206
+ gir_search_paths = nil
207
+
208
+ OptionParser.parse do |p|
209
+ p.banner = "Usage: gi-doc [opts] NAMESPACE ..."
210
+ p.on("-o DIR", "--output=DIR", "Output directory (defaults to docs/gobject") { |dir| output_directory = dir }
211
+ p.on("-g DIR:DIR:...", "--girs=DIR:DIR:...", "Colon separated list of directories to search .gir files in (defaults to /usr/share/gir-1.0/)") do |paths|
212
+ gir_search_paths = paths.split(":")
213
+ end
214
+ p.on("-h", "--help", "Show this help") do
215
+ puts p
216
+ exit
217
+ end
218
+ p.unknown_args do |args|
219
+ opt_namespaces = args
220
+ end
221
+ end
222
+
223
+ namespaces = opt_namespaces
224
+ namespaces = nil if namespaces && namespaces.empty?
225
+
226
+ unless namespaces
227
+ STDERR.puts "Please give one or more GIR namespaces!"
228
+ exit 1
229
+ end
230
+
231
+ namespaces = namespaces.map { |namespace| Namespace.new(namespace) }
232
+ compiler = Crystal::Compiler.new
233
+ sources = [Crystal::Compiler::Source.new("require", %(require "gobject"))]
234
+ sources.concat namespaces.map { |namespace|
235
+ Crystal::Compiler::Source.new(namespace.name, %(require_gobject "#{namespace.name}"))
236
+ }
237
+ included_dirs = namespaces.map { |namespace| File.dirname(namespace.typelib_path) }
238
+ included_dirs << Crystal::CrystalPath.gobject_path
239
+ compiler.flags << "docs"
240
+ compiler.wants_doc = true
241
+ result = compiler.top_level_semantic sources
242
+
243
+ generator = Generator.new(result.program, included_dirs, output_directory, "html", nil, "", "",
244
+ Crystal::Doc::ProjectInfo.new(namespaces.map(&.name).join(", "), namespaces.map(&.girname).join("/")))
245
+ generator.gir_namespaces = namespaces.map(&.name)
246
+ if paths = gir_search_paths
247
+ generator.gir_search_paths = paths
248
+ end
249
+ generator.run
250
+ puts "Docs written to #{output_directory}"
251
+
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+ # Feedback and donation to gregorycohen2@gmail.com (money transfer or Paypal)
@@ -0,0 +1,55 @@
1
+ require "option_parser"
2
+ require "../crout"
3
+ require "../g_i_repository"
4
+
5
+ opt_root = nil
6
+ max_nesting = 3
7
+ all = false
8
+ opt_namespace = nil
9
+
10
+ OptionParser.parse do |p|
11
+ p.banner = "Usage: gi-dump [opts] NAMESPACE[-VERSION]"
12
+ p.on("-r NAME", "--root=NAME", "Only print given toplevel info instead of all") { |name| opt_root = name }
13
+ p.on("-n LIMIT", "--nesting=LIMIT", "Stop after LIMIT recursions (default 3)") { |limit| max_nesting = limit.to_i? }
14
+ p.on("-a", "--all", "Don't limit nesting, print all") { all = true }
15
+ p.on("-h", "--help", "Show this help") do
16
+ puts p
17
+ exit
18
+ end
19
+ p.unknown_args do |args|
20
+ opt_namespace = args.first?
21
+ if args.size > 1
22
+ STDERR.puts "Too many arguments"
23
+ exit 1
24
+ end
25
+ end
26
+ end
27
+
28
+ unless namespace = opt_namespace
29
+ STDERR.puts "Missing namespace"
30
+ exit 1
31
+ end
32
+
33
+ unless max_nesting
34
+ STDERR.puts "Invalid recursion limit"
35
+ exit 1
36
+ end
37
+
38
+ namespace, version = namespace.split("-", 2) if namespace.includes?('-')
39
+
40
+ repo = GIRepository::Repository.instance
41
+ repo.require namespace, version
42
+ dumper = GIRepository::Dumper.new(STDOUT, all ? nil : max_nesting)
43
+ if root = opt_root
44
+ info = repo.find_by_name(namespace, root)
45
+ if info
46
+ info.dump(dumper)
47
+ else
48
+ puts "Couldn't find any info named #{root} in #{namespace}"
49
+ exit 1
50
+ end
51
+ else
52
+ repo.all_infos(namespace).each do |info|
53
+ info.dump(dumper)
54
+ end
55
+ end
@@ -0,0 +1,22 @@
1
+ require "file_utils"
2
+ require "../crout"
3
+ require "./namespace"
4
+
5
+ generation_dir = "src/generated-next"
6
+ target_dir = "src/generated"
7
+
8
+ name = "GIRepository"
9
+ namespace = Namespace.new(name)
10
+ print "Generate #{name}... "
11
+ namespace.dependencies.each do |dependency, version|
12
+ dependency_namespace = Namespace.new(dependency)
13
+ dependency_namespace.write_lib generation_dir
14
+ if dependency == "GObject"
15
+ dependency_namespace.write_wrapper generation_dir, "ParamFlags"
16
+ dependency_namespace.write_wrapper generation_dir, "SignalFlags"
17
+ end
18
+ end
19
+ namespace.write generation_dir
20
+ puts "done."
21
+ FileUtils.rm_r target_dir
22
+ File.rename generation_dir, target_dir
@@ -0,0 +1,192 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Democracy software compilation VERSION 0.0., created on 2021-11-14 17:41:33 -0500
4
+ # Get all of this code, and all of these files, with
5
+ # gem install democracy
6
+ # Linux ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux-gnu]
7
+ #
8
+ # Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.
9
+ #
10
+ # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
11
+
12
+
13
+
14
+
15
+
16
+ # 4 of 16 source files
17
+ module_functions_definition(builder)
18
+ require_relative "string__"
19
+ require_relative "./repository"
20
+
21
+ each_info do |info|
22
+ info.wrapper_definition(builder, libname)
23
+ end
24
+ end
25
+ end
26
+
27
+ def write_wrapper(directory, name)
28
+ prefix = File.join(directory, GIRepository.filename(@namespace))
29
+ Dir.mkdir_p prefix
30
+
31
+ info = GIRepository::Repository.instance.find_by_name(@namespace, name)
32
+ if info
33
+ wrapper_path = File.join(directory, GIRepository.filename(@namespace), "#{GIRepository.filename(info.name)}.cr")
34
+ write_wrapper(wrapper_path, info) { |builder| info.wrapper_definition(builder, libname) }
35
+ else
36
+ STDERR.puts "Warning: Couldn't find #{@namespace}/#{name}"
37
+ end
38
+ end
39
+
40
+ def write_wrappers(directory)
41
+ prefix = File.join(directory, GIRepository.filename(@namespace))
42
+ Dir.mkdir_p prefix
43
+
44
+ wrapper_path = File.join(prefix, "#{GIRepository.filename(@namespace)}.cr")
45
+ File.open(wrapper_path, "w") do |io|
46
+ io.puts %(require "../../g_object/wrapped_type")
47
+ io.puts %(require "../#{lib_filename}")
48
+ io.puts
49
+ GIRepository::Repository.instance.dependencies(@namespace).each do |dependency|
50
+ namespace, version = dependency
51
+ name = Namespace.new(namespace).wrapper_filename
52
+ path = "../../#{name}" if File.exists? File.join(directory, "..", name) # Overrides
53
+ path ||= "../#{name}" if File.exists? File.join(directory, name) # Wrapper
54
+ io.puts %(require "#{path}") if path
55
+ end
56
+ io.puts
57
+ io.puts %(require "./*")
58
+ end
59
+
60
+ each_info do |info|
61
+ wrapper_path = File.join(directory, GIRepository.filename(@namespace), "#{GIRepository.filename(info.name)}.cr")
62
+ write_wrapper(wrapper_path, info) { |builder| info.wrapper_definition(builder, libname) }
63
+ end
64
+
65
+ write_module_functions_wrapper(directory)
66
+ end
67
+
68
+ def write_module_functions_wrapper(directory)
69
+ prefix = File.join(directory, GIRepository.filename(@namespace))
70
+ Dir.mkdir_p prefix
71
+ write_wrapper(File.join(prefix, "module_functions.cr")) { |builder| module_functions_definition(builder) }
72
+ end
73
+
74
+ private def each_info
75
+ infos = GIRepository::Repository.instance.all_infos(@namespace).select { |info|
76
+ next false if skip_info? info
77
+ next false if info.is_a? GIRepository::FunctionInfo
78
+ next false if info.is_a? GIRepository::ConstantInfo
79
+ true
80
+ }
81
+
82
+ sort_childs_after_parents(infos)
83
+
84
+ infos.each do |info|
85
+ yield info
86
+ end
87
+ end
88
+
89
+ private def sort_childs_after_parents(infos)
90
+ names = infos.map { |info|
91
+ info.full_constant if info.is_a?(GIRepository::ObjectInfo) || info.is_a?(GIRepository::InterfaceInfo)
92
+ }
93
+
94
+ parents = infos.map { |info|
95
+ parent_names = [] of String
96
+ if info.is_a?(GIRepository::ObjectInfo)
97
+ parent = info.parent
98
+ parent_names << parent.full_constant if parent
99
+ parent_names.concat info.interfaces.map(&.full_constant)
100
+ end
101
+
102
+ parent_names
103
+ }
104
+
105
+ child_index = 0
106
+ while child_index < names.size
107
+ next child_index += 1 if names[child_index].nil?
108
+
109
+ swapped = false
110
+ child_index.upto(names.size - 1) do |index|
111
+ if parents[child_index].includes? names[index]
112
+ swap(infos, child_index, index)
113
+ swap(names, child_index, index)
114
+ swap(parents, child_index, index)
115
+ swapped = true
116
+ break
117
+ end
118
+ end
119
+
120
+ child_index += 1 unless swapped
121
+ end
122
+ end
123
+
124
+ private def swap(items, a, b)
125
+ tmp = items[a]
126
+ items[a] = items[b]
127
+ items[b] = tmp
128
+ end
129
+
130
+ private def module_functions_definition(builder)
131
+ builder.section do
132
+ GIRepository::Repository.instance.all_infos(@namespace).select { |info|
133
+ info.is_a?(GIRepository::ConstantInfo)
134
+ }.each(&.wrapper_definition(builder, libname))
135
+ end
136
+
137
+ GIRepository::Repository.instance.all_infos(@namespace).select { |info|
138
+ next false if skip_info?(info)
139
+ info.is_a?(GIRepository::FunctionInfo) ? !info.method? : false
140
+ }.each(&.wrapper_definition(builder, libname))
141
+ end
142
+
143
+ private def write_wrapper(path, info = nil)
144
+ File.open(path, "w") do |io|
145
+ Crout.build(io) do |builder|
146
+ if info && info.is_a?(GIRepository::ObjectInfo)
147
+ parent = info.parent
148
+ if parent && parent.namespace == @namespace
149
+ io.puts %(require "./#{GIRepository.filename(parent.name)}")
150
+ io.puts
151
+ end
152
+ end
153
+
154
+ wrapper_definition(builder) { |builder| yield builder }
155
+ end
156
+ end
157
+ end
158
+
159
+ private def wrapper_definition(builder, source_path = nil)
160
+ if source_path
161
+ builder.source_location(source_path) do
162
+ builder.def_module(Namespace.constant(@namespace)) { yield builder }
163
+ end
164
+ else
165
+ builder.def_module(Namespace.constant(@namespace)) { yield builder }
166
+ end
167
+ end
168
+
169
+ def self.constant(string)
170
+ "#{string[0].upcase}#{string[1..-1]}"
171
+ end
172
+
173
+ private def skip_info?(info)
174
+ case info
175
+ when GIRepository::EnumInfo
176
+ name = info.name
177
+ return true unless name
178
+ return true unless 'A' <= name[0] <= 'Z' # Bug in typelib?
179
+ else
180
+ false
181
+ end
182
+ end
183
+ end
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+
192
+ # Feedback and donation to gregorycohen2@gmail.com (money transfer or Paypal)
@@ -0,0 +1,113 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Democracy software compilation VERSION 0.0., created on 2021-11-14 17:41:33 -0500
4
+ # Get all of this code, and all of these files, with
5
+ # gem install democracy
6
+ # Linux ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux-gnu]
7
+ #
8
+ # Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.
9
+ #
10
+ # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
11
+
12
+
13
+
14
+
15
+
16
+ # 3 of 16 source files
17
+ module GLib
18
+ require_relative "string__"
19
+ require_relative ".//"
20
+ require_relative "./repository"
21
+ class Error < Exception
22
+ def self.assert(error)
23
+ raise new(error) if error
24
+ end
25
+
26
+ def initialize(gerror : LibGLib::GError*)
27
+ super String.new(gerror.value.message)
28
+ end
29
+ end
30
+ end
31
+
32
+ macro each_converted(prefix, basename, type, plural = nil)
33
+ def each_{{basename.id}}
34
+ n = LibGIRepository.{{prefix.id}}_get_n_{{plural ? plural.id : "#{basename}s".id}}(self)
35
+ 0.upto(n-1) do |index|
36
+ yield {{type.id}}.new LibGIRepository.{{prefix.id}}_get_{{basename.id}}(self, index)
37
+ end
38
+ end
39
+ end
40
+
41
+
42
+ module GIRepository
43
+ class BaseInfo
44
+ def initialize(@ptr)
45
+ end
46
+
47
+ def to_unsafe
48
+ @ptr
49
+ end
50
+ end
51
+
52
+ class Repository
53
+ include GObject::WrappedType
54
+
55
+ def initialize(@ptr)
56
+ end
57
+
58
+ def to_unsafe
59
+ @ptr
60
+ end
61
+
62
+ def require(namespace, version, flags)
63
+ __error = Pointer(LibGLib::Error).null
64
+ __return_value = LibGIRepository.repository_require((to_unsafe as LibGIRepository::Repository*), namespace, version, flags, pointerof(__error))
65
+ GLib::Error.assert __error
66
+ end
67
+
68
+ def dependencies(namespace)
69
+ __return_value = LibGIRepository.repository_get_dependencies((to_unsafe as LibGIRepository::Repository*), namespace)
70
+ GObject::PointerIterator.new(__return_value) { |__item_76| raise "Expected string but got null" unless __item_76; String.new(__item_76) }
71
+ end
72
+
73
+ def shared_library(namespace)
74
+ __return_value = LibGIRepository.repository_get_shared_library((to_unsafe as LibGIRepository::Repository*), namespace)
75
+ raise "Expected string but got null" unless __return_value; String.new(__return_value)
76
+ end
77
+
78
+ def n_infos(namespace)
79
+ __return_value = LibGIRepository.repository_get_n_infos((to_unsafe as LibGIRepository::Repository*), namespace)
80
+ __return_value
81
+ end
82
+
83
+ def info(namespace, index)
84
+ __return_value = LibGIRepository.repository_get_info((to_unsafe as LibGIRepository::Repository*), namespace, Int32.new(index))
85
+ GIRepository::BaseInfo.new(__return_value)
86
+ end
87
+
88
+ def c_prefix(namespace)
89
+ __return_value = LibGIRepository.repository_get_c_prefix((to_unsafe as LibGIRepository::Repository*), namespace)
90
+ raise "Expected string but got null" unless __return_value; String.new(__return_value)
91
+ end
92
+
93
+ def self.default
94
+ new LibGIRepository.repository_get_default
95
+ end
96
+ end
97
+
98
+ def self.filename(filename)
99
+ filename.gsub(/[A-Z][a-z]*(?=[A-Z])/) { |m| "#{m.downcase}_" }
100
+ .gsub(/::/, "_")
101
+ .downcase
102
+ end
103
+ end
104
+
105
+
106
+
107
+
108
+
109
+
110
+
111
+
112
+
113
+ # Feedback and donation to gregorycohen2@gmail.com (money transfer or Paypal)
@@ -0,0 +1,3 @@
1
+ require "../g_i_repository"
2
+ require "./generator"
3
+
@@ -0,0 +1,4 @@
1
+ require "../g_object"
2
+
3
+ require "../gobject"
4
+ require_gobject "Gio"