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.
- checksums.yaml +7 -0
- data/LIBERTY +310 -0
- data/README +310 -0
- data/README2 +14 -0
- data/READ_THIS_TO_CHANGE_THINGS +310 -0
- data/Resume.pdf +0 -0
- data/Ruby Installer.exe +0 -0
- data/VERSION_NUMBER +1 -0
- data/WE_NEEDNT_BE_ENSLAVED +310 -0
- data/_.html +460 -0
- data/__index.html +11 -0
- data/a.html +21 -0
- data/ac +73 -0
- data/all_code.cpp +280 -0
- data/all_code.js +30 -0
- data/app_topics +93 -0
- data/background.jpg +0 -0
- data/better_string +26 -0
- data/bin/abs +0 -0
- data/bin/ac +34 -0
- data/bin/add +0 -0
- data/bin/append +14 -0
- data/bin/args +0 -0
- data/bin/autorequire +85 -0
- data/bin/big_num +155 -0
- data/bin/black +0 -0
- data/bin/blue +0 -0
- data/bin/bold +0 -0
- data/bin/c_repl +76 -0
- data/bin/close +3 -0
- data/bin/copy +0 -0
- data/bin/count +0 -0
- data/bin/cpy +0 -0
- data/bin/cyan +0 -0
- data/bin/democracyinstall.exe +0 -0
- data/bin/div +0 -0
- data/bin/down_all_links +50 -0
- data/bin/dump +0 -0
- data/bin/email +127 -0
- data/bin/emerald-browser +0 -0
- data/bin/emoji +176 -0
- data/bin/executable +1 -0
- data/bin/exp +0 -0
- data/bin/files +0 -0
- data/bin/floor +0 -0
- data/bin/foreach +49 -0
- data/bin/g+ +557 -0
- data/bin/get_all_links +11 -0
- data/bin/github +55 -0
- data/bin/green +0 -0
- data/bin/gsearch +159 -0
- data/bin/gsub +0 -0
- data/bin/gsub_in_place +0 -0
- data/bin/last_nth +0 -0
- data/bin/lines +0 -0
- data/bin/magenta +0 -0
- data/bin/mkfile +47 -0
- data/bin/mul +0 -0
- data/bin/nth +0 -0
- data/bin/open +0 -0
- data/bin/play +0 -0
- data/bin/prepend +14 -0
- data/bin/processes +3 -0
- data/bin/qt_download +21 -0
- data/bin/record +121 -0
- data/bin/red +0 -0
- data/bin/replace_in_place +0 -0
- data/bin/replace_not_in_place +0 -0
- data/bin/selectlines +0 -0
- data/bin/sort_in_place +0 -0
- data/bin/splitfiles +16 -0
- data/bin/squeeze +17 -0
- data/bin/string +161 -0
- data/bin/strip_extensions +13 -0
- data/bin/sub +0 -0
- data/bin/t +63 -0
- data/bin/tracefile +555 -0
- data/bin/underline +0 -0
- data/bin/undump +0 -0
- data/bin/viu +0 -0
- data/bin/white +0 -0
- data/bin/yellow +0 -0
- data/bin/youtube_video +45 -0
- data/bin/youtube_video2 +45 -0
- data/code.js +28490 -0
- data/crystal-gobject/.git/HEAD +1 -0
- data/crystal-gobject/.git/config +11 -0
- data/crystal-gobject/.git/description +1 -0
- data/crystal-gobject/.git/hooks/applypatch-msg.sample +15 -0
- data/crystal-gobject/.git/hooks/commit-msg.sample +24 -0
- data/crystal-gobject/.git/hooks/fsmonitor-watchman.sample +109 -0
- data/crystal-gobject/.git/hooks/post-update.sample +8 -0
- data/crystal-gobject/.git/hooks/pre-applypatch.sample +14 -0
- data/crystal-gobject/.git/hooks/pre-commit.sample +49 -0
- data/crystal-gobject/.git/hooks/pre-merge-commit.sample +13 -0
- data/crystal-gobject/.git/hooks/pre-push.sample +53 -0
- data/crystal-gobject/.git/hooks/pre-rebase.sample +169 -0
- data/crystal-gobject/.git/hooks/pre-receive.sample +24 -0
- data/crystal-gobject/.git/hooks/prepare-commit-msg.sample +42 -0
- data/crystal-gobject/.git/hooks/update.sample +128 -0
- data/crystal-gobject/.git/index +0 -0
- data/crystal-gobject/.git/info/exclude +6 -0
- data/crystal-gobject/.git/logs/HEAD +1 -0
- data/crystal-gobject/.git/logs/refs/heads/main +1 -0
- data/crystal-gobject/.git/logs/refs/remotes/origin/HEAD +1 -0
- data/crystal-gobject/.git/objects/pack/pack-c21cfd88c6eef3076f2c2aebb658b750e87e10b6.idx +0 -0
- data/crystal-gobject/.git/objects/pack/pack-c21cfd88c6eef3076f2c2aebb658b750e87e10b6.pack +0 -0
- data/crystal-gobject/.git/packed-refs +15 -0
- data/crystal-gobject/.git/refs/heads/main +1 -0
- data/crystal-gobject/.git/refs/remotes/origin/HEAD +1 -0
- data/crystal-gobject/.github/workflows/ci.yml +22 -0
- data/crystal-gobject/.gitignore +14 -0
- data/crystal-gobject/LICENSE +27 -0
- data/crystal-gobject/README.md +143 -0
- data/crystal-gobject/samples/base_class_container.cr +15 -0
- data/crystal-gobject/samples/connect_after.cr +35 -0
- data/crystal-gobject/samples/crout/crout.cr +59 -0
- data/crystal-gobject/samples/e +0 -0
- data/crystal-gobject/samples/gdk_window.cr +36 -0
- data/crystal-gobject/samples/glist.cr +16 -0
- data/crystal-gobject/samples/greeter.cr +34 -0
- data/crystal-gobject/samples/greeter.glade +91 -0
- data/crystal-gobject/samples/gtk_accel_group.cr +13 -0
- data/crystal-gobject/samples/gtk_application.cr +12 -0
- data/crystal-gobject/samples/gtk_boxes.cr +44 -0
- data/crystal-gobject/samples/gtk_css_styling/css_window.cr +37 -0
- data/crystal-gobject/samples/gtk_css_styling/css_window.css +3 -0
- data/crystal-gobject/samples/gtk_css_styling/css_window.glade +104 -0
- data/crystal-gobject/samples/gtk_editable.cr +14 -0
- data/crystal-gobject/samples/gtk_entry.cr +10 -0
- data/crystal-gobject/samples/gtk_hello_world.cr +13 -0
- data/crystal-gobject/samples/gtk_menu_and_actions.cr +69 -0
- data/crystal-gobject/samples/gtk_message_dialog.cr +9 -0
- data/crystal-gobject/samples/gtk_subclasses.cr +30 -0
- data/crystal-gobject/samples/gtk_tree_view.cr +30 -0
- data/crystal-gobject/samples/gtk_tree_view.glade +44 -0
- data/crystal-gobject/samples/hello +0 -0
- data/crystal-gobject/samples/libgdk-3.a +0 -0
- data/crystal-gobject/samples/libgdk_pixbuf-2.0.a +0 -0
- data/crystal-gobject/samples/libgtk-3.a +0 -0
- data/crystal-gobject/samples/timeout.cr +34 -0
- data/crystal-gobject/script/ci.sh +17 -0
- data/crystal-gobject/script/release.sh +31 -0
- data/crystal-gobject/script/run_with_timeout.cr +14 -0
- data/crystal-gobject/script/test +7 -0
- data/crystal-gobject/shard.yml +16 -0
- data/crystal-gobject/spec/basic_spec.cr +46 -0
- data/crystal-gobject/spec/libsample/Makefile +28 -0
- data/crystal-gobject/spec/libsample/test-subject.c +107 -0
- data/crystal-gobject/spec/libsample/test-subject.h +65 -0
- data/crystal-gobject/spec/spec_helper.cr +5 -0
- data/crystal-gobject/src/atk/atk.cr +2 -0
- data/crystal-gobject/src/closure_data_manager.cr +62 -0
- data/crystal-gobject/src/crout.cr +601 -0
- data/crystal-gobject/src/g_i_repository/dumper.cr +116 -0
- data/crystal-gobject/src/g_i_repository/g_i_repository.cr +46 -0
- data/crystal-gobject/src/g_i_repository/info/arg_info.cr +157 -0
- data/crystal-gobject/src/g_i_repository/info/base_info.cr +169 -0
- data/crystal-gobject/src/g_i_repository/info/callable_info.cr +266 -0
- data/crystal-gobject/src/g_i_repository/info/callback_info.cr +54 -0
- data/crystal-gobject/src/g_i_repository/info/constant_info.cr +115 -0
- data/crystal-gobject/src/g_i_repository/info/enum_info.cr +88 -0
- data/crystal-gobject/src/g_i_repository/info/field_info.cr +97 -0
- data/crystal-gobject/src/g_i_repository/info/function_info.cr +237 -0
- data/crystal-gobject/src/g_i_repository/info/interface_info.cr +97 -0
- data/crystal-gobject/src/g_i_repository/info/object_info.cr +170 -0
- data/crystal-gobject/src/g_i_repository/info/property_info.cr +93 -0
- data/crystal-gobject/src/g_i_repository/info/registered_type_info.cr +62 -0
- data/crystal-gobject/src/g_i_repository/info/signal_info.cr +119 -0
- data/crystal-gobject/src/g_i_repository/info/struct_info.cr +139 -0
- data/crystal-gobject/src/g_i_repository/info/type_info.cr +326 -0
- data/crystal-gobject/src/g_i_repository/info/union_info.cr +136 -0
- data/crystal-gobject/src/g_i_repository/info/v_func_info.cr +33 -0
- data/crystal-gobject/src/g_i_repository/info/value_info.cr +62 -0
- data/crystal-gobject/src/g_i_repository/repository.cr +68 -0
- data/crystal-gobject/src/g_i_repository/wrapper_generator.cr +103 -0
- data/crystal-gobject/src/g_lib/error.cr +34 -0
- data/crystal-gobject/src/g_lib/g_lib.cr +81 -0
- data/crystal-gobject/src/g_lib/list_iterator.cr +81 -0
- data/crystal-gobject/src/g_lib/s_list_iterator.cr +54 -0
- data/crystal-gobject/src/g_object/closure.cr +40 -0
- data/crystal-gobject/src/g_object/g_object.cr +7 -0
- data/crystal-gobject/src/g_object/module_functions.cr +38 -0
- data/crystal-gobject/src/g_object/object.cr +104 -0
- data/crystal-gobject/src/g_object/type.cr +68 -0
- data/crystal-gobject/src/g_object/value.cr +308 -0
- data/crystal-gobject/src/gdk/event.cr +34 -0
- data/crystal-gobject/src/gdk/gdk.cr +35 -0
- data/crystal-gobject/src/generated/g_i_repository/argument.cr +130 -0
- data/crystal-gobject/src/generated/g_i_repository/array_type.cr +34 -0
- data/crystal-gobject/src/generated/g_i_repository/attribute_iter.cr +65 -0
- data/crystal-gobject/src/generated/g_i_repository/base_info.cr +134 -0
- data/crystal-gobject/src/generated/g_i_repository/direction.cr +33 -0
- data/crystal-gobject/src/generated/g_i_repository/field_info_flags.cr +34 -0
- data/crystal-gobject/src/generated/g_i_repository/function_info_flags.cr +38 -0
- data/crystal-gobject/src/generated/g_i_repository/g_i_repository.cr +7 -0
- data/crystal-gobject/src/generated/g_i_repository/info_type.cr +50 -0
- data/crystal-gobject/src/generated/g_i_repository/module_functions.cr +816 -0
- data/crystal-gobject/src/generated/g_i_repository/repository.cr +214 -0
- data/crystal-gobject/src/generated/g_i_repository/repository_class.cr +55 -0
- data/crystal-gobject/src/generated/g_i_repository/repository_error.cr +34 -0
- data/crystal-gobject/src/generated/g_i_repository/repository_load_flags.cr +33 -0
- data/crystal-gobject/src/generated/g_i_repository/repository_private.cr +46 -0
- data/crystal-gobject/src/generated/g_i_repository/scope_type.cr +34 -0
- data/crystal-gobject/src/generated/g_i_repository/transfer.cr +33 -0
- data/crystal-gobject/src/generated/g_i_repository/type_tag.cr +52 -0
- data/crystal-gobject/src/generated/g_i_repository/typelib.cr +61 -0
- data/crystal-gobject/src/generated/g_i_repository/unresolved_info.cr +45 -0
- data/crystal-gobject/src/generated/g_i_repository/v_func_info_flags.cr +36 -0
- data/crystal-gobject/src/generated/g_object/param_flags.cr +44 -0
- data/crystal-gobject/src/generated/g_object/signal_flags.cr +42 -0
- data/crystal-gobject/src/generated/lib_g_i_repository.cr +302 -0
- data/crystal-gobject/src/generated/lib_g_lib.cr +2261 -0
- data/crystal-gobject/src/generated/lib_g_object.cr +874 -0
- data/crystal-gobject/src/generator/build_namespace.cr +22 -0
- data/crystal-gobject/src/generator/doc.cr +259 -0
- data/crystal-gobject/src/generator/dump.cr +55 -0
- data/crystal-gobject/src/generator/generator.cr +22 -0
- data/crystal-gobject/src/generator/namespace.cr +192 -0
- data/crystal-gobject/src/generator/stage2.cr +113 -0
- data/crystal-gobject/src/generator/stage3.cr +3 -0
- data/crystal-gobject/src/gio/gio.cr +4 -0
- data/crystal-gobject/src/gobject.cr +54 -0
- data/crystal-gobject/src/gtk/autorun.cr +16 -0
- data/crystal-gobject/src/gtk/gtk.cr +61 -0
- data/crystal-gobject/src/notify/notification.cr +158 -0
- data/crystal-gobject/src/notify/notify.cr +4 -0
- data/crystal-gobject/src/pointer_iterator.cr +49 -0
- data/crystal-gobject/src/wrapped_type.cr +53 -0
- data/democracy.gemspec +14 -0
- data/dictate +183 -0
- data/emerald-browser/.qmake.stash +23 -0
- data/emerald-browser/Makefile +469 -0
- data/emerald-browser/OUT +90 -0
- data/emerald-browser/a.out +0 -0
- data/emerald-browser/empty +0 -0
- data/emerald-browser/empty.c +1 -0
- data/emerald-browser/open +0 -0
- data/emerald-browser/open.c +57 -0
- data/emerald-browser/qmake.pro +23 -0
- data/emerald-browser/src/OUT +438 -0
- data/emerald-browser/src/a.cpp +303 -0
- data/emerald-browser/src/a.out +0 -0
- data/emerald-browser/src/ss.h +12 -0
- data/emerald-browser/src/t/fullscreennotification.cpp +98 -0
- data/emerald-browser/src/t/fullscreennotification.h +72 -0
- data/emerald-browser/src/t/fullscreenwindow.cpp +99 -0
- data/emerald-browser/src/t/fullscreenwindow.h +76 -0
- data/emerald-browser/src/t/main.cpp +64 -0
- data/emerald-browser/src/t/mainwindow.cpp +83 -0
- data/emerald-browser/src/t/mainwindow.h +75 -0
- data/emerald-browser/test/a.cpp +2 -0
- data/f +0 -0
- data/faster_googler +31 -0
- data/favicon.ico +0 -0
- data/foo +80 -0
- data/foo.c +39 -0
- data/foo.cpp +36 -0
- data/foo.js +25 -0
- data/free_icons/site/bulb +0 -0
- data/free_icons/site/chess +0 -0
- data/free_icons/site/compiz.svg +463 -0
- data/free_icons/site/cursor.svg +1 -0
- data/free_icons/site/dock +0 -0
- data/free_icons/site/gnu +0 -0
- data/free_icons/site/info.svg +200 -0
- data/free_icons/site/iphone.svg +222 -0
- data/free_icons/site/laptop +0 -0
- data/free_icons/site/magic.svg +856 -0
- data/free_icons/site/man +0 -0
- data/free_icons/site/mint +0 -0
- data/free_icons/site/mouse +0 -0
- data/free_icons/site/paint.svg +2640 -0
- data/free_icons/site/present +0 -0
- data/free_icons/site/python +0 -0
- data/free_icons/site/reality +0 -0
- data/free_icons/site/ruby +0 -0
- data/free_icons/site/skeptic +0 -0
- data/free_icons/site/terminal +0 -0
- data/free_icons/site/video.svg +358 -0
- data/free_icons/site/warning +0 -0
- data/free_icons/site/wikipedia.svg +553 -0
- data/free_icons/site/write.svg +287 -0
- data/g +0 -0
- data/graphical_help.c +6 -0
- data/gregory_coreutils/DOC +14 -0
- data/gregory_coreutils/build/Makefile +12 -0
- data/gregory_coreutils/build/code +1 -0
- data/gregory_coreutils/build/functions +465 -0
- data/gregory_coreutils/build/make +93 -0
- data/gregory_coreutils/build/mk +74 -0
- data/gregory_coreutils/build/regex +2 -0
- data/gregory_coreutils/build/ruby_functions +0 -0
- data/gregory_coreutils/utilities/abs +0 -0
- data/gregory_coreutils/utilities/add +0 -0
- data/gregory_coreutils/utilities/args +0 -0
- data/gregory_coreutils/utilities/black +0 -0
- data/gregory_coreutils/utilities/blue +0 -0
- data/gregory_coreutils/utilities/bold +0 -0
- data/gregory_coreutils/utilities/copy +0 -0
- data/gregory_coreutils/utilities/count +0 -0
- data/gregory_coreutils/utilities/cpy +0 -0
- data/gregory_coreutils/utilities/cyan +0 -0
- data/gregory_coreutils/utilities/div +0 -0
- data/gregory_coreutils/utilities/dump +0 -0
- data/gregory_coreutils/utilities/exp +0 -0
- data/gregory_coreutils/utilities/files +0 -0
- data/gregory_coreutils/utilities/floor +0 -0
- data/gregory_coreutils/utilities/green +0 -0
- data/gregory_coreutils/utilities/gsub +0 -0
- data/gregory_coreutils/utilities/gsub_in_place +0 -0
- data/gregory_coreutils/utilities/last_nth +0 -0
- data/gregory_coreutils/utilities/lines +0 -0
- data/gregory_coreutils/utilities/magenta +0 -0
- data/gregory_coreutils/utilities/mul +0 -0
- data/gregory_coreutils/utilities/nth +0 -0
- data/gregory_coreutils/utilities/red +0 -0
- data/gregory_coreutils/utilities/replace_in_place +0 -0
- data/gregory_coreutils/utilities/replace_not_in_place +0 -0
- data/gregory_coreutils/utilities/selectlines +0 -0
- data/gregory_coreutils/utilities/sort_in_place +0 -0
- data/gregory_coreutils/utilities/sub +0 -0
- data/gregory_coreutils/utilities/underline +0 -0
- data/gregory_coreutils/utilities/undump +0 -0
- data/gregory_coreutils/utilities/white +0 -0
- data/gregory_coreutils/utilities/yellow +0 -0
- data/gtk +3 -0
- data/html_file +0 -0
- data/html_file.html +92 -0
- data/i +181 -0
- data/index.html +38 -0
- data/index2.html +344 -0
- data/inspect.rb +209 -0
- data/lib/README +310 -0
- data/lib/__index.html +11 -0
- data/lib/because.rb +41 -0
- data/lib/code.js +28490 -0
- data/lib/compile +5 -0
- data/lib/conjunction.rb +49 -0
- data/lib/evidence.rb +45 -0
- data/lib/graphical_help +90 -0
- data/lib/however.rb +42 -0
- data/lib/index.html +49 -0
- data/lib/index2.html +344 -0
- data/lib/inputreceiver.rb +135 -0
- data/lib/item.rb +77 -0
- data/lib/itemlist.rb +50 -0
- data/lib/negative.rb +43 -0
- data/lib/neutral.rb +43 -0
- data/lib/outputter.rb +60 -0
- data/lib/p.rb +71 -0
- data/lib/positive.rb +41 -0
- data/lib/script.js +423 -0
- data/lib/string__.rb +110 -0
- data/lib/sub/file +5 -0
- data/man/foo.rb +6 -0
- data/man/gtk.html +1 -0
- data/man/out +7288 -0
- data/more/ac.desktop +12 -0
- data/more/res +1 -0
- data/more/web-speech-api/.git/HEAD +1 -0
- data/more/web-speech-api/.git/config +11 -0
- data/more/web-speech-api/.git/description +1 -0
- data/more/web-speech-api/.git/hooks/applypatch-msg.sample +15 -0
- data/more/web-speech-api/.git/hooks/commit-msg.sample +24 -0
- data/more/web-speech-api/.git/hooks/fsmonitor-watchman.sample +109 -0
- data/more/web-speech-api/.git/hooks/post-update.sample +8 -0
- data/more/web-speech-api/.git/hooks/pre-applypatch.sample +14 -0
- data/more/web-speech-api/.git/hooks/pre-commit.sample +49 -0
- data/more/web-speech-api/.git/hooks/pre-merge-commit.sample +13 -0
- data/more/web-speech-api/.git/hooks/pre-push.sample +53 -0
- data/more/web-speech-api/.git/hooks/pre-rebase.sample +169 -0
- data/more/web-speech-api/.git/hooks/pre-receive.sample +24 -0
- data/more/web-speech-api/.git/hooks/prepare-commit-msg.sample +42 -0
- data/more/web-speech-api/.git/hooks/update.sample +128 -0
- data/more/web-speech-api/.git/index +0 -0
- data/more/web-speech-api/.git/info/exclude +6 -0
- data/more/web-speech-api/.git/logs/HEAD +1 -0
- data/more/web-speech-api/.git/logs/refs/heads/master +1 -0
- data/more/web-speech-api/.git/logs/refs/remotes/origin/HEAD +1 -0
- data/more/web-speech-api/.git/objects/pack/pack-4d2adae000c513b287d53e24937e9e836954f901.idx +0 -0
- data/more/web-speech-api/.git/objects/pack/pack-4d2adae000c513b287d53e24937e9e836954f901.pack +0 -0
- data/more/web-speech-api/.git/packed-refs +2 -0
- data/more/web-speech-api/.git/refs/heads/master +1 -0
- data/more/web-speech-api/.git/refs/remotes/origin/HEAD +1 -0
- data/more/web-speech-api/CODE_OF_CONDUCT.md +15 -0
- data/more/web-speech-api/LICENSE +116 -0
- data/more/web-speech-api/README.md +23 -0
- data/more/web-speech-api/index.html +25 -0
- data/more/web-speech-api/phrase-matcher/index.html +30 -0
- data/more/web-speech-api/phrase-matcher/script.js +124 -0
- data/more/web-speech-api/phrase-matcher/style.css +54 -0
- data/more/web-speech-api/speak-easy-synthesis/img/ws128.png +0 -0
- data/more/web-speech-api/speak-easy-synthesis/img/ws512.png +0 -0
- data/more/web-speech-api/speak-easy-synthesis/index.html +43 -0
- data/more/web-speech-api/speak-easy-synthesis/manifest.webapp +14 -0
- data/more/web-speech-api/speak-easy-synthesis/script.js +87 -0
- data/more/web-speech-api/speak-easy-synthesis/style.css +74 -0
- data/more/web-speech-api/speech-color-changer/img/ws128.png +0 -0
- data/more/web-speech-api/speech-color-changer/img/ws512.png +0 -0
- data/more/web-speech-api/speech-color-changer/index.html +26 -0
- data/more/web-speech-api/speech-color-changer/manifest.webapp +23 -0
- data/more/web-speech-api/speech-color-changer/script.js +58 -0
- data/more/web-speech-api/speech-color-changer/style.css +38 -0
- data/opensrc +68 -0
- data/out +39 -0
- data/playsrc +14 -0
- data/program.c +11 -0
- data/program.prog +568 -0
- data/proj/a +0 -0
- data/proj/a.c +1 -0
- data/proj/a.o +0 -0
- data/proj/a.rs +18 -0
- data/proj/b.rs +22 -0
- data/proj/linker.sh +8 -0
- data/proj/save_last +4 -0
- data/push +16 -0
- data/q.cpp +175 -0
- data/qt/.qmake.stash +23 -0
- data/qt/Qt5Core.dll +0 -0
- data/qt/Qt5Gui.dll +0 -0
- data/qt/Qt5Multimedia.dll +0 -0
- data/qt/Qt5MultimediaWidgets.dll +0 -0
- data/qt/Qt5Network.dll +0 -0
- data/qt/Qt5PrintSupport.dll +0 -0
- data/qt/Qt5Qml.dll +0 -0
- data/qt/Qt5QmlModels.dll +0 -0
- data/qt/Qt5Quick.dll +0 -0
- data/qt/Qt5Sensors.dll +0 -0
- data/qt/Qt5WebChannel.dll +0 -0
- data/qt/Qt5WebKit.dll +0 -0
- data/qt/Qt5WebKitWidgets.dll +0 -0
- data/qt/Qt5Widgets.dll +0 -0
- data/qt/a.cpp +39 -0
- data/qt/a.out +0 -0
- data/qt/a.sh +7 -0
- data/qt/icudt66.dll +0 -0
- data/qt/icuin66.dll +0 -0
- data/qt/icuuc66.dll +0 -0
- data/qt/libbz2.dll +0 -0
- data/qt/libcrypto-1_1-x64.dll +0 -0
- data/qt/libfreetype-6.dll +0 -0
- data/qt/libgcc_s_seh-1.dll +0 -0
- data/qt/libglib-2.0-0.dll +0 -0
- data/qt/libharfbuzz-0.dll +0 -0
- data/qt/libiconv-2.dll +0 -0
- data/qt/libintl-8.dll +0 -0
- data/qt/libjpeg-9.dll +0 -0
- data/qt/liblzma-5.dll +0 -0
- data/qt/libpcre-1.dll +0 -0
- data/qt/libpcre2-16-0.dll +0 -0
- data/qt/libpng16-16.dll +0 -0
- data/qt/libsqlite3-0.dll +0 -0
- data/qt/libssl-1_1-x64.dll +0 -0
- data/qt/libstdc++-6.dll +0 -0
- data/qt/libwebp-7.dll +0 -0
- data/qt/libwinpthread-1.dll +0 -0
- data/qt/libxml2-2.dll +0 -0
- data/qt/libxslt-1.dll +0 -0
- data/qt/libzstd.dll +0 -0
- data/qt/prog +1 -0
- data/qt/qwindows.dll +0 -0
- data/qt/zlib1.dll +0 -0
- data/quickjs/.git/HEAD +1 -0
- data/quickjs/.git/config +11 -0
- data/quickjs/.git/description +1 -0
- data/quickjs/.git/hooks/applypatch-msg.sample +15 -0
- data/quickjs/.git/hooks/commit-msg.sample +24 -0
- data/quickjs/.git/hooks/fsmonitor-watchman.sample +109 -0
- data/quickjs/.git/hooks/post-update.sample +8 -0
- data/quickjs/.git/hooks/pre-applypatch.sample +14 -0
- data/quickjs/.git/hooks/pre-commit.sample +49 -0
- data/quickjs/.git/hooks/pre-merge-commit.sample +13 -0
- data/quickjs/.git/hooks/pre-push.sample +53 -0
- data/quickjs/.git/hooks/pre-rebase.sample +169 -0
- data/quickjs/.git/hooks/pre-receive.sample +24 -0
- data/quickjs/.git/hooks/prepare-commit-msg.sample +42 -0
- data/quickjs/.git/hooks/update.sample +128 -0
- data/quickjs/.git/index +0 -0
- data/quickjs/.git/info/exclude +6 -0
- data/quickjs/.git/logs/HEAD +1 -0
- data/quickjs/.git/logs/refs/heads/master +1 -0
- data/quickjs/.git/logs/refs/remotes/origin/HEAD +1 -0
- data/quickjs/.git/objects/pack/pack-744a13dba8773a756b22372ba65ded3aca50cdeb.idx +0 -0
- data/quickjs/.git/objects/pack/pack-744a13dba8773a756b22372ba65ded3aca50cdeb.pack +0 -0
- data/quickjs/.git/packed-refs +2 -0
- data/quickjs/.git/refs/heads/master +1 -0
- data/quickjs/.git/refs/remotes/origin/HEAD +1 -0
- data/quickjs/.obj/.d +1 -0
- data/quickjs/.obj/cutils.nolto.o +0 -0
- data/quickjs/.obj/cutils.o +0 -0
- data/quickjs/.obj/cutils.o.d +1 -0
- data/quickjs/.obj/hello.o +0 -0
- data/quickjs/.obj/hello.o.d +1 -0
- data/quickjs/.obj/libbf.nolto.o +0 -0
- data/quickjs/.obj/libbf.o +0 -0
- data/quickjs/.obj/libbf.o.d +1 -0
- data/quickjs/.obj/libregexp.nolto.o +0 -0
- data/quickjs/.obj/libregexp.o +0 -0
- data/quickjs/.obj/libregexp.o.d +2 -0
- data/quickjs/.obj/libunicode.nolto.o +0 -0
- data/quickjs/.obj/libunicode.o +0 -0
- data/quickjs/.obj/libunicode.o.d +1 -0
- data/quickjs/.obj/qjs.check.o +0 -0
- data/quickjs/.obj/qjs.check.o.d +1 -0
- data/quickjs/.obj/qjs.o +0 -0
- data/quickjs/.obj/qjs.o.d +1 -0
- data/quickjs/.obj/qjsc.o +0 -0
- data/quickjs/.obj/qjsc.o.d +1 -0
- data/quickjs/.obj/qjscalc.o +0 -0
- data/quickjs/.obj/qjscalc.o.d +1 -0
- data/quickjs/.obj/quickjs-libc.nolto.o +0 -0
- data/quickjs/.obj/quickjs-libc.o +0 -0
- data/quickjs/.obj/quickjs-libc.o.d +2 -0
- data/quickjs/.obj/quickjs.check.o +0 -0
- data/quickjs/.obj/quickjs.check.o.d +2 -0
- data/quickjs/.obj/quickjs.nolto.o +0 -0
- data/quickjs/.obj/quickjs.o +0 -0
- data/quickjs/.obj/quickjs.o.d +2 -0
- data/quickjs/.obj/repl.o +0 -0
- data/quickjs/.obj/repl.o.d +1 -0
- data/quickjs/.obj/run-test262.o +0 -0
- data/quickjs/.obj/run-test262.o.d +2 -0
- data/quickjs/COMPILE_WIN +1 -0
- data/quickjs/Changelog +148 -0
- data/quickjs/LICENSE +22 -0
- data/quickjs/Makefile +470 -0
- data/quickjs/TODO +70 -0
- data/quickjs/VERSION +1 -0
- data/quickjs/a.c +50038 -0
- data/quickjs/a.js +26075 -0
- data/quickjs/a.rb +3 -0
- data/quickjs/cutils.c +631 -0
- data/quickjs/cutils.h +297 -0
- data/quickjs/doc/jsbignum.texi +589 -0
- data/quickjs/doc/quickjs.texi +1097 -0
- data/quickjs/examples/fib.c +72 -0
- data/quickjs/examples/fib_module.js +10 -0
- data/quickjs/examples/hello +0 -0
- data/quickjs/examples/hello.js +1 -0
- data/quickjs/examples/hello_module.js +6 -0
- data/quickjs/examples/pi_bigdecimal.js +68 -0
- data/quickjs/examples/pi_bigfloat.js +66 -0
- data/quickjs/examples/pi_bigint.js +118 -0
- data/quickjs/examples/point.c +151 -0
- data/quickjs/examples/test_fib.js +6 -0
- data/quickjs/examples/test_point.js +40 -0
- data/quickjs/hello.c +44 -0
- data/quickjs/libbf.c +8466 -0
- data/quickjs/libbf.h +535 -0
- data/quickjs/libquickjs.a +0 -0
- data/quickjs/libquickjs.lto.a +0 -0
- data/quickjs/libregexp-opcode.h +58 -0
- data/quickjs/libregexp.c +2610 -0
- data/quickjs/libregexp.h +92 -0
- data/quickjs/libunicode-table.h +4368 -0
- data/quickjs/libunicode.c +1556 -0
- data/quickjs/libunicode.h +124 -0
- data/quickjs/libwinpthread-1.dll +0 -0
- data/quickjs/list.h +100 -0
- data/quickjs/out.c +24 -0
- data/quickjs/out55.c +59 -0
- data/quickjs/out56.c +79 -0
- data/quickjs/out57.c +24 -0
- data/quickjs/out58.c +4 -0
- data/quickjs/p.exe +0 -0
- data/quickjs/qjs +0 -0
- data/quickjs/qjs.c +570 -0
- data/quickjs/qjsc +0 -0
- data/quickjs/qjsc.c +762 -0
- data/quickjs/qjsc.exe +0 -0
- data/quickjs/qjscalc.c +4005 -0
- data/quickjs/qjscalc.js +2657 -0
- data/quickjs/quickjs-atom.h +273 -0
- data/quickjs/quickjs-libc.c +3927 -0
- data/quickjs/quickjs-libc.h +59 -0
- data/quickjs/quickjs-opcode.h +365 -0
- data/quickjs/quickjs.c +54036 -0
- data/quickjs/quickjs.h +1049 -0
- data/quickjs/readme.txt +1 -0
- data/quickjs/release.sh +158 -0
- data/quickjs/repl.c +2020 -0
- data/quickjs/repl.js +1566 -0
- data/quickjs/run-test262 +0 -0
- data/quickjs/run-test262.c +2107 -0
- data/quickjs/test262.conf +199 -0
- data/quickjs/test262_errors.txt +35 -0
- data/quickjs/test262o.conf +410 -0
- data/quickjs/test262o_errors.txt +0 -0
- data/quickjs/tests/bjson.c +96 -0
- data/quickjs/tests/microbench.js +1065 -0
- data/quickjs/tests/test262.patch +71 -0
- data/quickjs/tests/test_bignum.js +326 -0
- data/quickjs/tests/test_bjson.js +191 -0
- data/quickjs/tests/test_builtin.js +685 -0
- data/quickjs/tests/test_closure.js +221 -0
- data/quickjs/tests/test_language.js +547 -0
- data/quickjs/tests/test_loop.js +368 -0
- data/quickjs/tests/test_op_overloading.js +207 -0
- data/quickjs/tests/test_qjscalc.js +256 -0
- data/quickjs/tests/test_std.js +281 -0
- data/quickjs/tests/test_worker.js +62 -0
- data/quickjs/tests/test_worker_module.js +31 -0
- data/quickjs/unicode_download.sh +19 -0
- data/quickjs/unicode_gen.c +3057 -0
- data/quickjs/unicode_gen_def.h +284 -0
- data/readline +3 -0
- data/rm_com +1 -0
- data/run.sh +13 -0
- data/scaling +6 -0
- data/script.js +572 -0
- data/server_creator/__ +307 -0
- data/server_creator/a/a (1).tar.gz +0 -0
- data/server_creator/a/a.out +0 -0
- data/server_creator/a/hello_world +0 -0
- data/server_creator/a/help +57 -0
- data/server_creator/a/main_v1.cpp +83 -0
- data/server_creator/a/my_libs_gregory/.deps +0 -0
- data/server_creator/a/my_libs_gregory/.libs/mod_my_libs_gregory.lai +41 -0
- data/server_creator/a/my_libs_gregory/.libs/mod_my_libs_gregory.o +0 -0
- data/server_creator/a/my_libs_gregory/.libs/mod_my_libs_gregory.so +0 -0
- data/server_creator/a/my_libs_gregory/mod_my_libs_gregory.c +72 -0
- data/server_creator/a/my_libs_gregory/mod_my_libs_gregory.la +41 -0
- data/server_creator/a/my_libs_gregory/mod_my_libs_gregory.lo +12 -0
- data/server_creator/a/my_libs_gregory/mod_my_libs_gregory.slo +0 -0
- data/server_creator/a/nginx.conf +32 -0
- data/server_creator/a/six +1 -0
- data/server_creator/a.out +0 -0
- data/server_creator/all_code.cpp +448 -0
- data/server_creator/all_code.js +27 -0
- data/server_creator/code +510 -0
- data/server_creator/make_application +64 -0
- data/server_creator/prog.cpp +33 -0
- data/server_creator/prog.js +22 -0
- data/server_creator/program.js +745 -0
- data/server_creator/rm_com +1 -0
- data/server_creator/test.sh +82 -0
- data/speakcat.rb +9 -0
- data/string +48 -0
- data/super_trans +83 -0
- data/test.sh +21 -0
- data/todo +8 -0
- data/version_decrement +3 -0
- data/viu_license +21 -0
- data/windows/program.c +21 -0
- data/windows/program.exe +0 -0
- 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)
|