lacci 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (570) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -2
  3. data/Gemfile.lock +72 -0
  4. data/Rakefile +1 -4
  5. data/lib/lacci/scarpe_cli.rb +70 -0
  6. data/lib/lacci/scarpe_core.rb +21 -0
  7. data/lib/lacci/version.rb +13 -0
  8. data/lib/shoes/app.rb +91 -14
  9. data/lib/{scarpe → shoes}/background.rb +1 -1
  10. data/lib/{scarpe → shoes}/border.rb +1 -1
  11. data/lib/{scarpe → shoes}/colors.rb +1 -1
  12. data/lib/shoes/constants.rb +5 -2
  13. data/lib/{scarpe → shoes}/display_service.rb +8 -9
  14. data/lib/{scarpe → shoes}/download.rb +5 -5
  15. data/lib/shoes/log.rb +71 -0
  16. data/lib/{scarpe → shoes}/spacing.rb +1 -1
  17. data/lib/shoes/widget.rb +28 -19
  18. data/lib/{scarpe → shoes/widgets}/alert.rb +2 -2
  19. data/lib/{scarpe → shoes/widgets}/arc.rb +6 -4
  20. data/lib/{scarpe → shoes/widgets}/button.rb +2 -2
  21. data/lib/shoes/widgets/check.rb +28 -0
  22. data/lib/{scarpe → shoes/widgets}/document_root.rb +3 -3
  23. data/lib/{scarpe → shoes/widgets}/edit_box.rb +1 -1
  24. data/lib/{scarpe → shoes/widgets}/edit_line.rb +1 -1
  25. data/lib/{scarpe → shoes/widgets}/flow.rb +6 -2
  26. data/lib/{scarpe → shoes/widgets}/font.rb +1 -1
  27. data/lib/{scarpe → shoes/widgets}/image.rb +2 -8
  28. data/lib/shoes/widgets/line.rb +18 -0
  29. data/lib/{scarpe → shoes/widgets}/link.rb +1 -1
  30. data/lib/{scarpe → shoes/widgets}/list_box.rb +1 -1
  31. data/lib/{scarpe → shoes/widgets}/para.rb +1 -25
  32. data/lib/shoes/widgets/radio.rb +35 -0
  33. data/lib/shoes/widgets/shape.rb +37 -0
  34. data/lib/shoes/widgets/slot.rb +75 -0
  35. data/lib/{scarpe → shoes/widgets}/span.rb +1 -1
  36. data/lib/{scarpe → shoes/widgets}/stack.rb +5 -1
  37. data/lib/{scarpe → shoes/widgets}/star.rb +5 -8
  38. data/lib/{scarpe → shoes/widgets}/subscription_item.rb +1 -1
  39. data/lib/shoes/{text_widget.rb → widgets/text_widget.rb} +2 -3
  40. data/lib/{scarpe → shoes/widgets}/video.rb +1 -1
  41. data/lib/shoes/widgets.rb +29 -0
  42. data/lib/shoes.rb +71 -9
  43. metadata +38 -555
  44. data/.rubocop.yml +0 -85
  45. data/.ruby-version +0 -1
  46. data/.vscode/extensions.json +0 -5
  47. data/.yardopts +0 -12
  48. data/CHANGELOG.md +0 -19
  49. data/CODE_OF_CONDUCT.md +0 -84
  50. data/CONTRIBUTING.md +0 -20
  51. data/LICENSE.txt +0 -21
  52. data/README.md +0 -178
  53. data/bin/console +0 -15
  54. data/bin/setup +0 -8
  55. data/dev.yml +0 -7
  56. data/docs/static/PKGBUILD +0 -47
  57. data/docs/static/Shoes.icns +0 -0
  58. data/docs/static/avatar.png +0 -0
  59. data/docs/static/code_highlighter.js +0 -188
  60. data/docs/static/code_highlighter_ruby.js +0 -26
  61. data/docs/static/icon-debug.png +0 -0
  62. data/docs/static/icon-error.png +0 -0
  63. data/docs/static/icon-info.png +0 -0
  64. data/docs/static/icon-warn.png +0 -0
  65. data/docs/static/listbox_button1.png +0 -0
  66. data/docs/static/listbox_button2.png +0 -0
  67. data/docs/static/man-app.png +0 -0
  68. data/docs/static/man-builds.png +0 -0
  69. data/docs/static/man-builds1.png +0 -0
  70. data/docs/static/man-editor-notepad.png +0 -0
  71. data/docs/static/man-editor-osx.png +0 -0
  72. data/docs/static/man-ele-background.png +0 -0
  73. data/docs/static/man-ele-border.png +0 -0
  74. data/docs/static/man-ele-button.png +0 -0
  75. data/docs/static/man-ele-check.png +0 -0
  76. data/docs/static/man-ele-editbox.png +0 -0
  77. data/docs/static/man-ele-editline.png +0 -0
  78. data/docs/static/man-ele-image.png +0 -0
  79. data/docs/static/man-ele-listbox.png +0 -0
  80. data/docs/static/man-ele-progress.png +0 -0
  81. data/docs/static/man-ele-radio.png +0 -0
  82. data/docs/static/man-ele-shape.png +0 -0
  83. data/docs/static/man-ele-textblock.png +0 -0
  84. data/docs/static/man-ele-video.png +0 -0
  85. data/docs/static/man-intro-dmg.png +0 -0
  86. data/docs/static/man-intro-exe.png +0 -0
  87. data/docs/static/man-look-tiger.png +0 -0
  88. data/docs/static/man-look-ubuntu.png +0 -0
  89. data/docs/static/man-look-vista.png +0 -0
  90. data/docs/static/man-run-osx.png +0 -0
  91. data/docs/static/man-run-vista.png +0 -0
  92. data/docs/static/man-run-xp.png +0 -0
  93. data/docs/static/man-shot1.png +0 -0
  94. data/docs/static/manual-en.txt +0 -3529
  95. data/docs/static/manual-ja.txt +0 -2829
  96. data/docs/static/manual.css +0 -171
  97. data/docs/static/manual.md +0 -3528
  98. data/docs/static/menu-corner1.png +0 -0
  99. data/docs/static/menu-corner2.png +0 -0
  100. data/docs/static/menu-gray.png +0 -0
  101. data/docs/static/menu-left.png +0 -0
  102. data/docs/static/menu-right.png +0 -0
  103. data/docs/static/menu-top.png +0 -0
  104. data/docs/static/shoes-dmg.jpg +0 -0
  105. data/docs/static/shoes-icon-blue.png +0 -0
  106. data/docs/static/shoes-icon.png +0 -0
  107. data/docs/static/shoes-manual-apps.gif +0 -0
  108. data/docs/static/shoes_main_window.png +0 -0
  109. data/docs/static/stripe.png +0 -0
  110. data/docs/static/stubs/blank.exe +0 -0
  111. data/docs/static/stubs/blank.hfz +0 -0
  112. data/docs/static/stubs/blank.run +0 -375
  113. data/docs/static/stubs/cocoa-install +0 -0
  114. data/docs/static/stubs/sh-install +0 -49
  115. data/docs/static/stubs/shoes-stub-inject.exe +0 -0
  116. data/docs/static/stubs/shoes-stub.exe +0 -0
  117. data/docs/static/tutor-back.png +0 -0
  118. data/docs/yard/catscradle.md +0 -44
  119. data/docs/yard/template/default/fulldoc/html/setup.rb +0 -13
  120. data/docs/yard/template/default/layout/html/setup.rb +0 -9
  121. data/examples/backdround_with_image.rb +0 -16
  122. data/examples/bloopsaphone/working/1901_by_Aanand_Prasad.rb +0 -478
  123. data/examples/bloopsaphone/working/b1.rb +0 -64
  124. data/examples/bloopsaphone/working/b2.rb +0 -36
  125. data/examples/bloopsaphone/working/bloops_test.rb +0 -41
  126. data/examples/bloopsaphone/working/bloopsaphone_theme_song_by_why.rb +0 -31
  127. data/examples/bloopsaphone/working/feepogram.rb +0 -67
  128. data/examples/bloopsaphone/working/simpsons_theme_song_by_why.rb +0 -14
  129. data/examples/bloopsaphone/working/tune_cheeky_drat.rb +0 -210
  130. data/examples/button.rb +0 -10
  131. data/examples/button_alert.rb +0 -6
  132. data/examples/button_go_away.rb +0 -6
  133. data/examples/button_with_position_and_size.rb +0 -7
  134. data/examples/coffee.rb +0 -14
  135. data/examples/download.rb +0 -5
  136. data/examples/download_and_show_image.rb +0 -28
  137. data/examples/edit_box.rb +0 -8
  138. data/examples/edit_line.rb +0 -8
  139. data/examples/fill.rb +0 -25
  140. data/examples/flow.rb +0 -11
  141. data/examples/fonts.rb +0 -6
  142. data/examples/gen.rb +0 -140
  143. data/examples/get_headers.rb +0 -10
  144. data/examples/hello_world.rb +0 -3
  145. data/examples/highlander.rb +0 -87
  146. data/examples/image/clickable_image.rb +0 -5
  147. data/examples/image/image.rb +0 -3
  148. data/examples/image/image_size.rb +0 -7
  149. data/examples/image/image_with_position_and_size.rb +0 -3
  150. data/examples/info.rb +0 -9
  151. data/examples/legacy/not_checked/expert/colours.rb +0 -105
  152. data/examples/legacy/not_checked/expert/curve-animation.rb +0 -31
  153. data/examples/legacy/not_checked/expert/curve-control-point.rb +0 -51
  154. data/examples/legacy/not_checked/expert/custom-list-box.rb +0 -53
  155. data/examples/legacy/not_checked/expert/definr.rb +0 -23
  156. data/examples/legacy/not_checked/expert/funnies.rb +0 -56
  157. data/examples/legacy/not_checked/expert/minesweeper.rb +0 -267
  158. data/examples/legacy/not_checked/expert/othello.rb +0 -318
  159. data/examples/legacy/not_checked/expert/pong.rb +0 -62
  160. data/examples/legacy/not_checked/expert/tankspank.rb +0 -385
  161. data/examples/legacy/not_checked/expert/tooltips.rb +0 -45
  162. data/examples/legacy/not_checked/expert/url.rb +0 -37
  163. data/examples/legacy/not_checked/expert/video-player.rb +0 -256
  164. data/examples/legacy/not_checked/good/_why-stories.rb +0 -44
  165. data/examples/legacy/not_checked/good/_why-stories.yaml +0 -387
  166. data/examples/legacy/not_checked/good/arc.rb +0 -37
  167. data/examples/legacy/not_checked/good/cardflip.rb +0 -141
  168. data/examples/legacy/not_checked/good/clock.rb +0 -51
  169. data/examples/legacy/not_checked/good/console.rb +0 -21
  170. data/examples/legacy/not_checked/good/follow.rb +0 -26
  171. data/examples/legacy/not_checked/good/image-rotate.rb +0 -14
  172. data/examples/legacy/not_checked/good/paris.svg +0 -7236
  173. data/examples/legacy/not_checked/good/path-animation.rb +0 -46
  174. data/examples/legacy/not_checked/good/plots.rb +0 -100
  175. data/examples/legacy/not_checked/good/reminder.rb +0 -174
  176. data/examples/legacy/not_checked/good/svgview.rb +0 -113
  177. data/examples/legacy/not_checked/good/vjot.rb +0 -56
  178. data/examples/legacy/not_checked/shoes-contrib/.gitignore +0 -2
  179. data/examples/legacy/not_checked/shoes-contrib/README.md +0 -34
  180. data/examples/legacy/not_checked/shoes-contrib/animation/animate-ovals.rb +0 -21
  181. data/examples/legacy/not_checked/shoes-contrib/animation/flowers.rb +0 -59
  182. data/examples/legacy/not_checked/shoes-contrib/animation/happy-trails.rb +0 -31
  183. data/examples/legacy/not_checked/shoes-contrib/animation/mice-satellites.rb +0 -27
  184. data/examples/legacy/not_checked/shoes-contrib/animation/oval-motion.rb +0 -12
  185. data/examples/legacy/not_checked/shoes-contrib/animation/pink-bubbles.rb +0 -34
  186. data/examples/legacy/not_checked/shoes-contrib/animation/pulsate.rb +0 -18
  187. data/examples/legacy/not_checked/shoes-contrib/animation/rotating-star.rb +0 -18
  188. data/examples/legacy/not_checked/shoes-contrib/app/download-and-save.rb +0 -11
  189. data/examples/legacy/not_checked/shoes-contrib/app/download.rb +0 -10
  190. data/examples/legacy/not_checked/shoes-contrib/app/get-google.rb +0 -11
  191. data/examples/legacy/not_checked/shoes-contrib/app/mouse-detection.rb +0 -7
  192. data/examples/legacy/not_checked/shoes-contrib/app/resizeable-false.rb +0 -6
  193. data/examples/legacy/not_checked/shoes-contrib/art/bubble-bullseye.rb +0 -23
  194. data/examples/legacy/not_checked/shoes-contrib/art/faded.rb +0 -17
  195. data/examples/legacy/not_checked/shoes-contrib/art/fill-oval.rb +0 -5
  196. data/examples/legacy/not_checked/shoes-contrib/art/mask.rb +0 -15
  197. data/examples/legacy/not_checked/shoes-contrib/art/oval-gradient.rb +0 -6
  198. data/examples/legacy/not_checked/shoes-contrib/art/star-gradient.rb +0 -4
  199. data/examples/legacy/not_checked/shoes-contrib/basic/basic-edit-box.rb +0 -8
  200. data/examples/legacy/not_checked/shoes-contrib/basic/basic-new-window.rb +0 -8
  201. data/examples/legacy/not_checked/shoes-contrib/basic/basic-oval-image.rb +0 -8
  202. data/examples/legacy/not_checked/shoes-contrib/basic/basic-oval-shape.rb +0 -8
  203. data/examples/legacy/not_checked/shoes-contrib/basic/basic-oval.rb +0 -6
  204. data/examples/legacy/not_checked/shoes-contrib/basic/class-book.rb +0 -43
  205. data/examples/legacy/not_checked/shoes-contrib/basic/class-book.yaml +0 -387
  206. data/examples/legacy/not_checked/shoes-contrib/basic/clock.rb +0 -6
  207. data/examples/legacy/not_checked/shoes-contrib/basic/edit-stack +0 -14
  208. data/examples/legacy/not_checked/shoes-contrib/basic/gradient-shoes.rb +0 -7
  209. data/examples/legacy/not_checked/shoes-contrib/basic/list_box-shape-report.rb +0 -19
  210. data/examples/legacy/not_checked/shoes-contrib/basic/rect-arrow.rb +0 -7
  211. data/examples/legacy/not_checked/shoes-contrib/basic/scribble.rb +0 -8
  212. data/examples/legacy/not_checked/shoes-contrib/basic/search.rb +0 -32
  213. data/examples/legacy/not_checked/shoes-contrib/basic/shoes-notes.rb +0 -16
  214. data/examples/legacy/not_checked/shoes-contrib/basic/url-shoes-subclassing.rb +0 -24
  215. data/examples/legacy/not_checked/shoes-contrib/browser.rb +0 -21
  216. data/examples/legacy/not_checked/shoes-contrib/elements/background-column.rb +0 -3
  217. data/examples/legacy/not_checked/shoes-contrib/elements/background.rb +0 -4
  218. data/examples/legacy/not_checked/shoes-contrib/elements/basic-fps.rb +0 -6
  219. data/examples/legacy/not_checked/shoes-contrib/elements/border-cat.rb +0 -6
  220. data/examples/legacy/not_checked/shoes-contrib/elements/button-block.rb +0 -8
  221. data/examples/legacy/not_checked/shoes-contrib/elements/check-mate.rb +0 -15
  222. data/examples/legacy/not_checked/shoes-contrib/elements/common-styles.rb +0 -13
  223. data/examples/legacy/not_checked/shoes-contrib/elements/displace-animation.rb +0 -13
  224. data/examples/legacy/not_checked/shoes-contrib/elements/edit_box-character-count.rb +0 -7
  225. data/examples/legacy/not_checked/shoes-contrib/elements/edit_line-character-count.rb +0 -7
  226. data/examples/legacy/not_checked/shoes-contrib/elements/image-icon.rb +0 -3
  227. data/examples/legacy/not_checked/shoes-contrib/elements/list_box-select-class.rb +0 -13
  228. data/examples/legacy/not_checked/shoes-contrib/elements/list_box.rb +0 -6
  229. data/examples/legacy/not_checked/shoes-contrib/elements/move-flow-animate.rb +0 -13
  230. data/examples/legacy/not_checked/shoes-contrib/elements/phat-button.rb +0 -7
  231. data/examples/legacy/not_checked/shoes-contrib/elements/popup.rb +0 -7
  232. data/examples/legacy/not_checked/shoes-contrib/elements/progress-bar.rb +0 -10
  233. data/examples/legacy/not_checked/shoes-contrib/elements/radio-dreamcast-favs.rb +0 -17
  234. data/examples/legacy/not_checked/shoes-contrib/elements/timer.rb +0 -6
  235. data/examples/legacy/not_checked/shoes-contrib/elements/width-introspec.rb +0 -8
  236. data/examples/legacy/not_checked/shoes-contrib/events/background-hover.rb +0 -11
  237. data/examples/legacy/not_checked/shoes-contrib/events/motion-detect.rb +0 -9
  238. data/examples/legacy/not_checked/shoes-contrib/events/pressed-key.rb +0 -6
  239. data/examples/legacy/not_checked/shoes-contrib/expert/expert-funnies.rb +0 -51
  240. data/examples/legacy/not_checked/shoes-contrib/expert/expert-irb.rb +0 -112
  241. data/examples/legacy/not_checked/shoes-contrib/expert/expert-othello.rb +0 -319
  242. data/examples/legacy/not_checked/shoes-contrib/good/good-arc.rb +0 -37
  243. data/examples/legacy/not_checked/shoes-contrib/good/good-clock.rb +0 -51
  244. data/examples/legacy/not_checked/shoes-contrib/good/good-follow.rb +0 -26
  245. data/examples/legacy/not_checked/shoes-contrib/good/good-reminder.rb +0 -174
  246. data/examples/legacy/not_checked/shoes-contrib/good/good-vjot.rb +0 -56
  247. data/examples/legacy/not_checked/shoes-contrib/kernel/ask.rb +0 -4
  248. data/examples/legacy/not_checked/shoes-contrib/kernel/ask_color.rb +0 -4
  249. data/examples/legacy/not_checked/shoes-contrib/kernel/ask_open_file.rb +0 -4
  250. data/examples/legacy/not_checked/shoes-contrib/kernel/ask_save_file.rb +0 -7
  251. data/examples/legacy/not_checked/shoes-contrib/kernel/confirm.rb +0 -3
  252. data/examples/legacy/not_checked/shoes-contrib/kernel/debug.rb +0 -4
  253. data/examples/legacy/not_checked/shoes-contrib/kernel/exit.rb +0 -5
  254. data/examples/legacy/not_checked/shoes-contrib/kernel/font.rb +0 -5
  255. data/examples/legacy/not_checked/shoes-contrib/kernel/fonts.rb +0 -3
  256. data/examples/legacy/not_checked/shoes-contrib/manipulation/append-slot.rb +0 -9
  257. data/examples/legacy/not_checked/shoes-contrib/manipulation/clear-slot.rb +0 -6
  258. data/examples/legacy/not_checked/shoes-contrib/manipulation/prepend-slot.rb +0 -6
  259. data/examples/legacy/not_checked/shoes-contrib/manipulation/roll.rb +0 -17
  260. data/examples/legacy/not_checked/shoes-contrib/position/gutter-margin.rb +0 -5
  261. data/examples/legacy/not_checked/shoes-contrib/position/stack-width.rb +0 -3
  262. data/examples/legacy/not_checked/shoes-contrib/simple/simple-accordion.rb +0 -75
  263. data/examples/legacy/not_checked/shoes-contrib/simple/simple-anim-shapes.rb +0 -17
  264. data/examples/legacy/not_checked/shoes-contrib/simple/simple-anim-text.rb +0 -13
  265. data/examples/legacy/not_checked/shoes-contrib/simple/simple-arc.rb +0 -23
  266. data/examples/legacy/not_checked/shoes-contrib/simple/simple-bounce.rb +0 -24
  267. data/examples/legacy/not_checked/shoes-contrib/simple/simple-calc.rb +0 -70
  268. data/examples/legacy/not_checked/shoes-contrib/simple/simple-chipmunk.rb +0 -26
  269. data/examples/legacy/not_checked/shoes-contrib/simple/simple-control-sizes.rb +0 -24
  270. data/examples/legacy/not_checked/shoes-contrib/simple/simple-curve.rb +0 -26
  271. data/examples/legacy/not_checked/shoes-contrib/simple/simple-dialogs.rb +0 -29
  272. data/examples/legacy/not_checked/shoes-contrib/simple/simple-downloader.rb +0 -27
  273. data/examples/legacy/not_checked/shoes-contrib/simple/simple-draw.rb +0 -13
  274. data/examples/legacy/not_checked/shoes-contrib/simple/simple-editor.rb +0 -28
  275. data/examples/legacy/not_checked/shoes-contrib/simple/simple-form.rb +0 -28
  276. data/examples/legacy/not_checked/shoes-contrib/simple/simple-form.shy +0 -0
  277. data/examples/legacy/not_checked/shoes-contrib/simple/simple-mask.rb +0 -21
  278. data/examples/legacy/not_checked/shoes-contrib/simple/simple-menu.rb +0 -31
  279. data/examples/legacy/not_checked/shoes-contrib/simple/simple-menu1.rb +0 -35
  280. data/examples/legacy/not_checked/shoes-contrib/simple/simple-rubygems.rb +0 -29
  281. data/examples/legacy/not_checked/shoes-contrib/simple/simple-slide.rb +0 -45
  282. data/examples/legacy/not_checked/shoes-contrib/simple/simple-sphere.rb +0 -28
  283. data/examples/legacy/not_checked/shoes-contrib/simple/simple-sqlite3.rb +0 -13
  284. data/examples/legacy/not_checked/shoes-contrib/simple/simple-timer.rb +0 -13
  285. data/examples/legacy/not_checked/shoes-contrib/simple/simple-video.rb +0 -13
  286. data/examples/legacy/not_checked/shoes-contrib/styles/alignment.rb +0 -4
  287. data/examples/legacy/not_checked/shoes-contrib/styles/attachment.rb +0 -5
  288. data/examples/legacy/not_checked/shoes-contrib/styles/emphasis.rb +0 -3
  289. data/examples/legacy/not_checked/shoes-contrib/styles/gradient-angle.rb +0 -3
  290. data/examples/legacy/not_checked/shoes-contrib/styles/para-methods.rb +0 -5
  291. data/examples/legacy/not_checked/shoes-contrib/styles/para-red-underlined.rb +0 -3
  292. data/examples/legacy/not_checked/shoes-contrib/styles/para-style-method.rb +0 -4
  293. data/examples/legacy/not_checked/shoes-dep-samples/expert-game-of-life.rb +0 -243
  294. data/examples/legacy/not_checked/shoes-dep-samples/expert-othello.rb +0 -319
  295. data/examples/legacy/not_checked/shoes-dep-samples/good-clock.rb +0 -51
  296. data/examples/legacy/not_checked/shoes-dep-samples/good-follow.rb +0 -26
  297. data/examples/legacy/not_checked/shoes-dep-samples/good-reminder.rb +0 -174
  298. data/examples/legacy/not_checked/shoes-dep-samples/good-vjot.rb +0 -56
  299. data/examples/legacy/not_checked/shoes-dep-samples/simple-accordion.rb +0 -75
  300. data/examples/legacy/not_checked/shoes-dep-samples/simple-anim-shapes.rb +0 -17
  301. data/examples/legacy/not_checked/shoes-dep-samples/simple-anim-text.rb +0 -13
  302. data/examples/legacy/not_checked/shoes-dep-samples/simple-arc.rb +0 -23
  303. data/examples/legacy/not_checked/shoes-dep-samples/simple-bounce.rb +0 -24
  304. data/examples/legacy/not_checked/shoes-dep-samples/simple-calc.rb +0 -70
  305. data/examples/legacy/not_checked/shoes-dep-samples/simple-chipmunk.rb +0 -26
  306. data/examples/legacy/not_checked/shoes-dep-samples/simple-control-sizes.rb +0 -24
  307. data/examples/legacy/not_checked/shoes-dep-samples/simple-curve.rb +0 -26
  308. data/examples/legacy/not_checked/shoes-dep-samples/simple-dialogs.rb +0 -29
  309. data/examples/legacy/not_checked/shoes-dep-samples/simple-draw.rb +0 -13
  310. data/examples/legacy/not_checked/shoes-dep-samples/simple-editor.rb +0 -28
  311. data/examples/legacy/not_checked/shoes-dep-samples/simple-form.rb +0 -28
  312. data/examples/legacy/not_checked/shoes-dep-samples/simple-form.shy +0 -0
  313. data/examples/legacy/not_checked/shoes-dep-samples/simple-mask.rb +0 -21
  314. data/examples/legacy/not_checked/shoes-dep-samples/simple-menu.rb +0 -31
  315. data/examples/legacy/not_checked/shoes-dep-samples/simple-menu1.rb +0 -35
  316. data/examples/legacy/not_checked/shoes-dep-samples/simple-rubygems.rb +0 -29
  317. data/examples/legacy/not_checked/shoes-dep-samples/simple-slide.rb +0 -45
  318. data/examples/legacy/not_checked/shoes-dep-samples/simple-sphere.rb +0 -28
  319. data/examples/legacy/not_checked/shoes-dep-samples/simple-sqlite3.rb +0 -13
  320. data/examples/legacy/not_checked/shoes-dep-samples/simple-timer.rb +0 -13
  321. data/examples/legacy/not_checked/shoes-dep-samples/simple-video.rb +0 -13
  322. data/examples/legacy/not_checked/shoes3-tests/AnemicCinema1926marcelDuchampCut.mp4 +0 -0
  323. data/examples/legacy/not_checked/shoes3-tests/button/button.rb +0 -53
  324. data/examples/legacy/not_checked/shoes3-tests/cache/cache.rb +0 -41
  325. data/examples/legacy/not_checked/shoes3-tests/combo/combo.rb +0 -24
  326. data/examples/legacy/not_checked/shoes3-tests/curl/bare.rb +0 -34
  327. data/examples/legacy/not_checked/shoes3-tests/curl/downloader.rb +0 -40
  328. data/examples/legacy/not_checked/shoes3-tests/curl/m1.rb +0 -11
  329. data/examples/legacy/not_checked/shoes3-tests/curl/m2.rb +0 -12
  330. data/examples/legacy/not_checked/shoes3-tests/curl/m3.rb +0 -11
  331. data/examples/legacy/not_checked/shoes3-tests/curl/m4.rb +0 -5
  332. data/examples/legacy/not_checked/shoes3-tests/curl/typ.rb +0 -30
  333. data/examples/legacy/not_checked/shoes3-tests/cursor/c1.rb +0 -21
  334. data/examples/legacy/not_checked/shoes3-tests/decoration.rb +0 -14
  335. data/examples/legacy/not_checked/shoes3-tests/dialogs/ask.rb +0 -6
  336. data/examples/legacy/not_checked/shoes3-tests/dialogs/confirm.rb +0 -6
  337. data/examples/legacy/not_checked/shoes3-tests/editbox/editbox.rb +0 -36
  338. data/examples/legacy/not_checked/shoes3-tests/editline/editline.rb +0 -27
  339. data/examples/legacy/not_checked/shoes3-tests/events/button.rb +0 -32
  340. data/examples/legacy/not_checked/shoes3-tests/events/button.yaml +0 -40
  341. data/examples/legacy/not_checked/shoes3-tests/events/capture.rb +0 -57
  342. data/examples/legacy/not_checked/shoes3-tests/events/chipmunk.yaml +0 -47
  343. data/examples/legacy/not_checked/shoes3-tests/events/event0.rb +0 -8
  344. data/examples/legacy/not_checked/shoes3-tests/events/event1.rb +0 -51
  345. data/examples/legacy/not_checked/shoes3-tests/events/event1.yaml +0 -26
  346. data/examples/legacy/not_checked/shoes3-tests/events/event2.rb +0 -46
  347. data/examples/legacy/not_checked/shoes3-tests/events/event3.rb +0 -44
  348. data/examples/legacy/not_checked/shoes3-tests/events/event4.rb +0 -65
  349. data/examples/legacy/not_checked/shoes3-tests/events/event5.rb +0 -17
  350. data/examples/legacy/not_checked/shoes3-tests/events/event6.rb +0 -51
  351. data/examples/legacy/not_checked/shoes3-tests/events/replay.rb +0 -60
  352. data/examples/legacy/not_checked/shoes3-tests/gapp/fullscreen.rb +0 -38
  353. data/examples/legacy/not_checked/shoes3-tests/gapp/icon.rb +0 -56
  354. data/examples/legacy/not_checked/shoes3-tests/gapp/mon1.rb +0 -46
  355. data/examples/legacy/not_checked/shoes3-tests/gapp/settings1.rb +0 -22
  356. data/examples/legacy/not_checked/shoes3-tests/gapp/title1.rb +0 -34
  357. data/examples/legacy/not_checked/shoes3-tests/indian.m4a +0 -0
  358. data/examples/legacy/not_checked/shoes3-tests/menus/event.rb +0 -33
  359. data/examples/legacy/not_checked/shoes3-tests/menus/menu1.rb +0 -8
  360. data/examples/legacy/not_checked/shoes3-tests/menus/menu2.rb +0 -25
  361. data/examples/legacy/not_checked/shoes3-tests/menus/menu3.rb +0 -103
  362. data/examples/legacy/not_checked/shoes3-tests/menus/menu4.rb +0 -41
  363. data/examples/legacy/not_checked/shoes3-tests/menus/tests.txt +0 -42
  364. data/examples/legacy/not_checked/shoes3-tests/opacity.rb +0 -13
  365. data/examples/legacy/not_checked/shoes3-tests/plot/^IRX.R +0 -5219
  366. data/examples/legacy/not_checked/shoes3-tests/plot/^SPX +0 -5219
  367. data/examples/legacy/not_checked/shoes3-tests/plot/cstest.rb +0 -51
  368. data/examples/legacy/not_checked/shoes3-tests/plot/gr1.rb +0 -73
  369. data/examples/legacy/not_checked/shoes3-tests/plot/gr2.rb +0 -40
  370. data/examples/legacy/not_checked/shoes3-tests/plot/gr3.rb +0 -47
  371. data/examples/legacy/not_checked/shoes3-tests/plot/gr4.rb +0 -35
  372. data/examples/legacy/not_checked/shoes3-tests/plot/gr5.rb +0 -31
  373. data/examples/legacy/not_checked/shoes3-tests/plot/gr6.rb +0 -35
  374. data/examples/legacy/not_checked/shoes3-tests/plot/gr7.rb +0 -37
  375. data/examples/legacy/not_checked/shoes3-tests/plot/grcsv.rb +0 -219
  376. data/examples/legacy/not_checked/shoes3-tests/plot/manual.rb +0 -40
  377. data/examples/legacy/not_checked/shoes3-tests/progress/progress.rb +0 -29
  378. data/examples/legacy/not_checked/shoes3-tests/radio/clear.rb +0 -20
  379. data/examples/legacy/not_checked/shoes3-tests/radio/group.rb +0 -18
  380. data/examples/legacy/not_checked/shoes3-tests/radio/multiple.rb +0 -32
  381. data/examples/legacy/not_checked/shoes3-tests/radio/nogroup.rb +0 -9
  382. data/examples/legacy/not_checked/shoes3-tests/simpletest.svg +0 -14
  383. data/examples/legacy/not_checked/shoes3-tests/spinner.rb +0 -15
  384. data/examples/legacy/not_checked/shoes3-tests/svg.rb +0 -208
  385. data/examples/legacy/not_checked/shoes3-tests/switch/switch.rb +0 -28
  386. data/examples/legacy/not_checked/shoes3-tests/systray/back.rb +0 -20
  387. data/examples/legacy/not_checked/shoes3-tests/systray/note.rb +0 -17
  388. data/examples/legacy/not_checked/shoes3-tests/terminal/cursor.rb +0 -27
  389. data/examples/legacy/not_checked/shoes3-tests/terminal/ed.rb +0 -65
  390. data/examples/legacy/not_checked/shoes3-tests/terminal/el.rb +0 -50
  391. data/examples/legacy/not_checked/shoes3-tests/terminal/logattr.rb +0 -31
  392. data/examples/legacy/not_checked/shoes3-tests/tests_color.rb +0 -138
  393. data/examples/legacy/not_checked/shoes3-tests/tests_svg.rb +0 -228
  394. data/examples/legacy/not_checked/shoes3-tests/tests_video_vlc.rb +0 -186
  395. data/examples/legacy/not_checked/shoes3-tests/tooltips.rb +0 -20
  396. data/examples/legacy/not_checked/shoes3-tests/video_vlc.rb +0 -242
  397. data/examples/legacy/not_checked/shoes3-tests/wheel/wheel1.rb +0 -21
  398. data/examples/legacy/not_checked/simple/accordion.rb +0 -81
  399. data/examples/legacy/not_checked/simple/anim-shapes.rb +0 -17
  400. data/examples/legacy/not_checked/simple/anim-text.rb +0 -13
  401. data/examples/legacy/not_checked/simple/arc.rb +0 -23
  402. data/examples/legacy/not_checked/simple/bounce.rb +0 -24
  403. data/examples/legacy/not_checked/simple/chipmunk.rb +0 -26
  404. data/examples/legacy/not_checked/simple/control-sizes.rb +0 -24
  405. data/examples/legacy/not_checked/simple/curve-control-points.rb +0 -24
  406. data/examples/legacy/not_checked/simple/curve.rb +0 -26
  407. data/examples/legacy/not_checked/simple/dialogs.rb +0 -29
  408. data/examples/legacy/not_checked/simple/downloader.rb +0 -40
  409. data/examples/legacy/not_checked/simple/downloader1.rb +0 -31
  410. data/examples/legacy/not_checked/simple/draw.rb +0 -13
  411. data/examples/legacy/not_checked/simple/editor.rb +0 -28
  412. data/examples/legacy/not_checked/simple/form.rb +0 -30
  413. data/examples/legacy/not_checked/simple/image.rb +0 -21
  414. data/examples/legacy/not_checked/simple/info.rb +0 -78
  415. data/examples/legacy/not_checked/simple/mask.rb +0 -21
  416. data/examples/legacy/not_checked/simple/mask2.rb +0 -27
  417. data/examples/legacy/not_checked/simple/menu.rb +0 -31
  418. data/examples/legacy/not_checked/simple/menu1.rb +0 -35
  419. data/examples/legacy/not_checked/simple/slide.rb +0 -45
  420. data/examples/legacy/not_checked/simple/sphere.rb +0 -28
  421. data/examples/legacy/not_checked/superleg.rb +0 -244
  422. data/examples/legacy/working/shoes-contrib/basic/a-poem.rb +0 -24
  423. data/examples/legacy/working/shoes-contrib/basic/basic-blocks-instances.rb +0 -7
  424. data/examples/legacy/working/shoes-contrib/basic/basic-blocks.rb +0 -7
  425. data/examples/legacy/working/shoes-contrib/basic/basic-slot.rb +0 -8
  426. data/examples/legacy/working/shoes-contrib/basic/intro.rb +0 -20
  427. data/examples/legacy/working/shoes-contrib/basic/two-column.rb +0 -12
  428. data/examples/legacy/working/shoes-contrib/elements/edit_box.rb +0 -6
  429. data/examples/legacy/working/shoes-contrib/kernel/alert.rb +0 -3
  430. data/examples/legacy/working/simple/calc.rb +0 -71
  431. data/examples/legacy/working/simple/sqlite3.rb +0 -27
  432. data/examples/legacy/working/simple/timer.rb +0 -13
  433. data/examples/line.rb +0 -5
  434. data/examples/link.rb +0 -20
  435. data/examples/list_box.rb +0 -8
  436. data/examples/local_fonts.rb +0 -4
  437. data/examples/local_images.rb +0 -4
  438. data/examples/motion_events.rb +0 -20
  439. data/examples/para/collection_of_arguments.rb +0 -9
  440. data/examples/para/hello_world.rb +0 -5
  441. data/examples/para/hide_and_show.rb +0 -9
  442. data/examples/para/rainbow.rb +0 -11
  443. data/examples/para/rainbow_2.rb +0 -11
  444. data/examples/para/sizes.rb +0 -11
  445. data/examples/para/sizes_2.rb +0 -12
  446. data/examples/para/strong.rb +0 -3
  447. data/examples/para_text_widgets.rb +0 -4
  448. data/examples/parse_xl_funnies.rb +0 -58
  449. data/examples/pirate.png +0 -0
  450. data/examples/raw_flow.rb +0 -11
  451. data/examples/ruby_racer.rb +0 -50
  452. data/examples/selfitude.rb +0 -18
  453. data/examples/shapes/arc.rb +0 -8
  454. data/examples/shapes/shapes.rb +0 -8
  455. data/examples/shapes/shapes_fill.rb +0 -10
  456. data/examples/shapes/star.rb +0 -5
  457. data/examples/shoes_school.rb +0 -66
  458. data/examples/shoes_splorer.rb +0 -150
  459. data/examples/simple_slides.rb +0 -73
  460. data/examples/skip_ci/parrot.rb +0 -22
  461. data/examples/skip_ci/say.rb +0 -20
  462. data/examples/sleepless.rb +0 -26
  463. data/examples/slots.rb +0 -10
  464. data/examples/spacing.rb +0 -18
  465. data/examples/span.rb +0 -6
  466. data/examples/stack/background.rb +0 -35
  467. data/examples/stack/border.rb +0 -11
  468. data/examples/stack/gradients.rb +0 -6
  469. data/examples/stack/raw_stack.rb +0 -8
  470. data/examples/stack/stack.rb +0 -27
  471. data/examples/text_change.rb +0 -4
  472. data/examples/text_sizes.rb +0 -10
  473. data/examples/timmy.rb +0 -109
  474. data/examples/title_and_resize.rb +0 -3
  475. data/examples/video.rb +0 -10
  476. data/exe/scarpe +0 -107
  477. data/fonts/Pacifico.ttf +0 -0
  478. data/lib/scarpe/base64.rb +0 -27
  479. data/lib/scarpe/cats_cradle.rb +0 -255
  480. data/lib/scarpe/fill.rb +0 -23
  481. data/lib/scarpe/glibui/README.md +0 -34
  482. data/lib/scarpe/glibui/alert.rb +0 -65
  483. data/lib/scarpe/glibui/app.rb +0 -27
  484. data/lib/scarpe/glibui/background.rb +0 -18
  485. data/lib/scarpe/glibui/border.rb +0 -22
  486. data/lib/scarpe/glibui/button.rb +0 -38
  487. data/lib/scarpe/glibui/dimensions.rb +0 -22
  488. data/lib/scarpe/glibui/document_root.rb +0 -33
  489. data/lib/scarpe/glibui/edit_box.rb +0 -44
  490. data/lib/scarpe/glibui/edit_line.rb +0 -43
  491. data/lib/scarpe/glibui/flow.rb +0 -33
  492. data/lib/scarpe/glibui/html.rb +0 -77
  493. data/lib/scarpe/glibui/image.rb +0 -36
  494. data/lib/scarpe/glibui/link.rb +0 -29
  495. data/lib/scarpe/glibui/local_display.rb +0 -62
  496. data/lib/scarpe/glibui/para.rb +0 -84
  497. data/lib/scarpe/glibui/spacing.rb +0 -41
  498. data/lib/scarpe/glibui/stack.rb +0 -33
  499. data/lib/scarpe/glibui/text_widget.rb +0 -30
  500. data/lib/scarpe/glibui/widget.rb +0 -81
  501. data/lib/scarpe/glibui.rb +0 -29
  502. data/lib/scarpe/libui/alert.rb +0 -9
  503. data/lib/scarpe/libui/button.rb +0 -18
  504. data/lib/scarpe/libui/colors.rb +0 -157
  505. data/lib/scarpe/libui/core.rb +0 -66
  506. data/lib/scarpe/libui/flow.rb +0 -16
  507. data/lib/scarpe/libui/libui.rb +0 -45
  508. data/lib/scarpe/libui/notepad.md +0 -26
  509. data/lib/scarpe/libui/para.rb +0 -154
  510. data/lib/scarpe/libui/stack.rb +0 -34
  511. data/lib/scarpe/line.rb +0 -25
  512. data/lib/scarpe/logger.rb +0 -159
  513. data/lib/scarpe/promises.rb +0 -405
  514. data/lib/scarpe/shape.rb +0 -20
  515. data/lib/scarpe/slot.rb +0 -7
  516. data/lib/scarpe/unit_test_helpers.rb +0 -236
  517. data/lib/scarpe/version.rb +0 -5
  518. data/lib/scarpe/widgets.rb +0 -35
  519. data/lib/scarpe/wv/alert.rb +0 -65
  520. data/lib/scarpe/wv/app.rb +0 -104
  521. data/lib/scarpe/wv/arc.rb +0 -57
  522. data/lib/scarpe/wv/background.rb +0 -27
  523. data/lib/scarpe/wv/border.rb +0 -24
  524. data/lib/scarpe/wv/button.rb +0 -50
  525. data/lib/scarpe/wv/control_interface.rb +0 -147
  526. data/lib/scarpe/wv/control_interface_test.rb +0 -234
  527. data/lib/scarpe/wv/dimensions.rb +0 -22
  528. data/lib/scarpe/wv/document_root.rb +0 -8
  529. data/lib/scarpe/wv/edit_box.rb +0 -44
  530. data/lib/scarpe/wv/edit_line.rb +0 -43
  531. data/lib/scarpe/wv/fill.rb +0 -30
  532. data/lib/scarpe/wv/flow.rb +0 -24
  533. data/lib/scarpe/wv/font.rb +0 -36
  534. data/lib/scarpe/wv/html.rb +0 -108
  535. data/lib/scarpe/wv/image.rb +0 -41
  536. data/lib/scarpe/wv/line.rb +0 -38
  537. data/lib/scarpe/wv/link.rb +0 -29
  538. data/lib/scarpe/wv/list_box.rb +0 -50
  539. data/lib/scarpe/wv/para.rb +0 -90
  540. data/lib/scarpe/wv/shape.rb +0 -35
  541. data/lib/scarpe/wv/shape_helper.rb +0 -44
  542. data/lib/scarpe/wv/slot.rb +0 -81
  543. data/lib/scarpe/wv/spacing.rb +0 -41
  544. data/lib/scarpe/wv/span.rb +0 -66
  545. data/lib/scarpe/wv/stack.rb +0 -24
  546. data/lib/scarpe/wv/star.rb +0 -64
  547. data/lib/scarpe/wv/subscription_item.rb +0 -50
  548. data/lib/scarpe/wv/text_widget.rb +0 -30
  549. data/lib/scarpe/wv/video.rb +0 -42
  550. data/lib/scarpe/wv/web_wrangler.rb +0 -683
  551. data/lib/scarpe/wv/webview_local_display.rb +0 -73
  552. data/lib/scarpe/wv/webview_relay_display.rb +0 -185
  553. data/lib/scarpe/wv/widget.rb +0 -185
  554. data/lib/scarpe/wv/wv_display_worker.rb +0 -65
  555. data/lib/scarpe/wv.rb +0 -43
  556. data/lib/scarpe/wv_local.rb +0 -6
  557. data/lib/scarpe/wv_relay.rb +0 -6
  558. data/lib/scarpe.rb +0 -29
  559. data/logger/debug_web_wrangler.json +0 -4
  560. data/logger/scarpe_wv_test.json +0 -4
  561. data/scarpe-0.2.0.gem +0 -0
  562. data/scarpe.gemspec +0 -44
  563. data/scarpegen.rb +0 -193
  564. data/sig/scarpe.rbs +0 -4
  565. data/templates/basic_class_template.erb +0 -38
  566. data/templates/class_template_with_event_bind.erb +0 -27
  567. data/templates/class_template_with_shapes.erb +0 -43
  568. data/templates/example_template.erb +0 -3
  569. data/templates/module_template.erb +0 -12
  570. data/templates/webview_template.erb +0 -27
@@ -1,243 +0,0 @@
1
- # Simple Game of Life with Shoes
2
- # by fuksito
3
- # vitaliy@yanchuk.me
4
-
5
-
6
- class Cell
7
- WIDTH = 15
8
- attr_accessor :live, :next_state, :y, :x, :neighbours, :live_neighbours, :app, :shoes_cell
9
-
10
- def initialize(y, x, app, world)
11
- @live = false
12
- @next_state = false
13
- @y = y
14
- @x = x
15
- @app = app
16
- @world = world
17
- @shoes_cell = @app.rect(left: WIDTH * y, top: WIDTH * x, width: WIDTH)
18
- @shoes_cell.click{ toggle_state }
19
- end
20
-
21
- def live?
22
- @live
23
- end
24
-
25
- def dead?
26
- !@live
27
- end
28
-
29
- def die!
30
- @next_state = false
31
- @world.changed_cells.push(self)
32
- end
33
-
34
- def alive!
35
- @next_state = true
36
- @world.changed_cells.push(self)
37
- end
38
-
39
- def toggle_state
40
- @next_state = !@live
41
- set_next_state
42
- draw
43
- end
44
-
45
- def set_next_state
46
- if @live = @next_state
47
- @world.live_cells.push(self)
48
- else
49
- cell_index = @world.live_cells.index(self)
50
- if cell_index
51
- @world.live_cells.delete_at(cell_index)
52
- end
53
- end
54
- end
55
-
56
- def draw
57
- @shoes_cell.style(fill: live? ? '#000' : '#fff')
58
- end
59
-
60
- def iterate
61
- live_cells_count = @neighbours.count{|c| c.live? }
62
- if live?
63
- if live_cells_count < 2 || live_cells_count > 3
64
- die!
65
- end
66
- else
67
- if live_cells_count == 3
68
- alive!
69
- end
70
- end
71
- end
72
- end
73
-
74
- class World
75
- attr_accessor :board, :width, :height, :live_cells, :changed_cells
76
-
77
- def initialize(width, height, app)
78
- @board = []
79
- @width = width
80
- @height = height
81
- @app = app
82
- @live_cells = []
83
- @changed_cells = []
84
- create_board
85
- end
86
-
87
- def create_board
88
- @height.times do |y|
89
- @board[y] = []
90
- @width.times do |x|
91
- @board[y][x] = Cell.new(y, x, @app, self)
92
- end
93
- end
94
- cells.each do |cell|
95
- cell.neighbours = cell_neighbours(cell.y, cell.x)
96
- end
97
- draw
98
- end
99
-
100
- def cells
101
- @cells ||= @board.flatten
102
- end
103
-
104
- def actual_cells
105
- (@live_cells.map(&:neighbours).flatten + @live_cells).uniq
106
- end
107
-
108
- def draw
109
- cells.each{|c| c.draw }
110
- end
111
-
112
- def tick
113
- @changed_cells = []
114
- actual_cells.each{|c| c.iterate }.each{|c| c.set_next_state }
115
- @changed_cells.each{|c| c.draw }
116
- end
117
-
118
- def clear
119
- live_cells.each do |cell|
120
- cell.live = false
121
- cell.next_state = false
122
- cell.draw
123
- end
124
- end
125
-
126
- def cell_neighbours(y,x)
127
- result = []
128
- top_row = y - 1
129
- left_col = x - 1
130
- right_col = x + 1
131
- bottom_row = y + 1
132
-
133
- if top_row >= 0 && left_col >= 0
134
- result << @board[y-1][x-1]
135
- end
136
-
137
- if top_row >= 0
138
- result << @board[y-1][x]
139
- end
140
-
141
- if top_row >= 0 && right_col < @width
142
- result << @board[y-1][x+1]
143
- end
144
-
145
- if left_col >= 0
146
- result << @board[y][x-1]
147
- end
148
-
149
- if right_col < @width
150
- result << @board[y][x+1]
151
- end
152
-
153
- if bottom_row < @height && left_col >= 0
154
- result << @board[y+1][x-1]
155
- end
156
-
157
- if bottom_row < @height
158
- result << @board[y+1][x]
159
- end
160
-
161
- if bottom_row < @height && right_col < @width
162
- result << @board[y+1][x+1]
163
- end
164
-
165
- result.compact
166
- end
167
-
168
- def add_specie(*cells)
169
- cells.each do |y,x|
170
- @board[y][x].toggle_state
171
- end
172
- end
173
-
174
- def add_glinder
175
- add_specie [4,2], [4,3], [4,4], [3,4], [2,3]
176
- end
177
-
178
- def add_spaceship
179
- add_specie [12,3], [12,6], [13,7], [14,3], [14,7], [15,4], [15,5], [15,6], [15,7]
180
- end
181
-
182
- def add_diehard
183
- add_specie [18,12], [12,13], [13,13], [13,14], [17,14], [18,14], [19,14]
184
- end
185
- end
186
-
187
- Shoes.app(title: "The Game of Life", width: 800, height: 620, resizable: false) do
188
- background white
189
- @animate = false
190
- stack(margin: 10) do |board_holder|
191
- @new_world = World.new(40, 40, self)
192
- animate(10) do |frame|
193
- if @animate
194
- @new_world.tick
195
- end
196
- end
197
- end
198
-
199
- def play
200
- @animate = true
201
- @run_button.style(displace_top: -100)
202
- @stop_button.style(displace_top: 0)
203
- end
204
-
205
- def stop
206
- @animate = false
207
- @stop_button.style(displace_top: -100)
208
- @run_button.style(displace_top: 0)
209
- end
210
-
211
- def clear
212
- stop
213
- @new_world.clear
214
- end
215
-
216
- flow(displace_left: 650) do
217
- @run_button = button('Run', displace_top: 0, width: 100){ play }
218
- @stop_button = button('Stop', displace_top: -100, displace_left: -100, width: 100){ stop }
219
- end
220
-
221
- stack(displace_left: 650) do
222
- button('Clear', width: 100) do
223
- clear
224
- end
225
-
226
- para "Species"
227
- button('Glinder', width: 100) do
228
- clear
229
- @new_world.add_glinder
230
- end
231
-
232
- button('Spaceship', width: 100) do
233
- clear
234
- @new_world.add_spaceship
235
- end
236
-
237
- button('Diehard', width: 100) do
238
- clear
239
- @new_world.add_diehard
240
- end
241
- end
242
-
243
- end
@@ -1,319 +0,0 @@
1
- # Othello
2
- # by tieg
3
- # 1/13/08
4
- # with help: DeeJay, Ryan M. from mailing list
5
- #
6
- # FIXME bug if it memorizes it but it's not a valid move
7
- #
8
- module Othello
9
-
10
- PIECE_WIDTH = 62
11
- PIECE_HEIGHT = 62
12
- TOP_OFFSET = 47
13
- LEFT_OFFSET = 12
14
-
15
- class Game
16
- BOARD_SIZE = [8,8]
17
-
18
- attr_accessor :p1, :p2, :board, :board_history
19
-
20
- def initialize
21
- @board_history = []
22
- @p1 = Player.new(:black, pieces_per_player)
23
- @p2 = Player.new(:white, pieces_per_player)
24
- @board = new_board
25
- lay_initial_pieces
26
- end
27
-
28
- def next_turn(check_available_moves=true)
29
- @current_player = next_player
30
- if check_available_moves && skip_turn?
31
- # FIXME Possible infinite loop if neither player has a good move?
32
- next_turn
33
- raise "Player #{@current_player.piece} (#{@current_player.color}) has no available moves. Player #{next_player.piece}'s (#{next_player.color}) turn."
34
- end
35
- end
36
-
37
- def current_player
38
- @current_player ||= @p1
39
- end
40
-
41
- def next_player
42
- current_player == @p1 ? @p2 : @p1
43
- end
44
-
45
- # Build the array for the board, with zero-based arrays.
46
- def new_board
47
- Array.new(BOARD_SIZE[0]) do # build each cols L to R
48
- Array.new(BOARD_SIZE[1]) do # insert cells in each col
49
- 0
50
- end
51
- end
52
- end
53
-
54
- # Lay the initial 4 pieces in the middle
55
- def lay_initial_pieces
56
- lay_piece([4, 3], false)
57
- next_turn(false)
58
- lay_piece([3, 3], false)
59
- next_turn(false)
60
- lay_piece([3, 4], false)
61
- next_turn(false)
62
- lay_piece([4, 4], false)
63
- next_turn(false)
64
- end
65
-
66
- def lay_piece(c=[0,0], check_adjacent_pieces=true)
67
- memorize_board
68
- piece = current_player.piece
69
- opp_piece = current_player.opp_piece
70
- raise "Spot already taken." if board_at(c) != 0
71
- if check_adjacent_pieces
72
- pieces_to_change = []
73
- pieces_to_change << check_direction(c, [ 0, 1], piece, opp_piece) # N
74
- pieces_to_change << check_direction(c, [ 1, 1], piece, opp_piece) # NE
75
- pieces_to_change << check_direction(c, [ 1, 0], piece, opp_piece) # E
76
- pieces_to_change << check_direction(c, [ 1,-1], piece, opp_piece) # SE
77
- pieces_to_change << check_direction(c, [ 0,-1], piece, opp_piece) # S
78
- pieces_to_change << check_direction(c, [-1,-1], piece, opp_piece) # SW
79
- pieces_to_change << check_direction(c, [-1, 0], piece, opp_piece) # W
80
- pieces_to_change << check_direction(c, [-1, 1], piece, opp_piece) # NW
81
- raise "You must move to a spot that will turn your opponent's piece." if pieces_to_change.compact.all? { |a| a.empty? }
82
- pieces_to_change.compact.each { |direction| direction.each { |i| @board[i[0]][i[1]] = piece } }
83
- end
84
- current_player.pieces -= 1
85
- @board[c[0]][c[1]] = piece
86
- current_winner = calculate_current_winner
87
- raise "Game over. Player #{current_winner.piece} wins with #{current_winner.pieces_on_board} pieces!" if @p1.pieces + @p2.pieces == 0
88
- end
89
-
90
- def skip_turn?
91
- possibles = []
92
- @board.each_with_index { |col,col_index|
93
- col.each_with_index { |cell,row_index|
94
- return false if possible_move?([col_index,row_index])
95
- }
96
- }
97
- true
98
- end
99
-
100
- def possible_move?(c=[0,0])
101
- return nil if board_at(c) != 0
102
- possible_moves = []
103
- piece = current_player.piece
104
- opp_piece = current_player.opp_piece
105
- pieces_to_change = []
106
- pieces_to_change << check_direction(c, [ 0, 1], piece, opp_piece) # N
107
- pieces_to_change << check_direction(c, [ 1, 1], piece, opp_piece) # NE
108
- pieces_to_change << check_direction(c, [ 1, 0], piece, opp_piece) # E
109
- pieces_to_change << check_direction(c, [ 1,-1], piece, opp_piece) # SE
110
- pieces_to_change << check_direction(c, [ 0,-1], piece, opp_piece) # S
111
- pieces_to_change << check_direction(c, [-1,-1], piece, opp_piece) # SW
112
- pieces_to_change << check_direction(c, [-1, 0], piece, opp_piece) # W
113
- pieces_to_change << check_direction(c, [-1, 1], piece, opp_piece) # NW
114
- return nil if pieces_to_change.compact.all? { |a| a.empty? }
115
- true
116
- end
117
-
118
- def memorize_board
119
- dup_board = new_board
120
- dup_board = []
121
- @board.each do |col|
122
- dup_board << col.dup
123
- end
124
- @board_history << { :player => current_player, :board => dup_board }
125
- end
126
-
127
- def undo!
128
- last_move = @board_history.pop
129
- @board = last_move[:board]
130
- @current_player = last_move[:player]
131
- @current_player.pieces += 1
132
- end
133
-
134
- def calculate_current_winner
135
- @p1.pieces_on_board, @p2.pieces_on_board = 0, 0
136
- @board.each { |row|
137
- row.each { |cell|
138
- if cell == 1
139
- @p1.pieces_on_board += 1
140
- else
141
- @p2.pieces_on_board += 1
142
- end
143
- }
144
- }
145
- @p1.pieces_on_board > @p2.pieces_on_board ? @p1 : @p2
146
- end
147
-
148
- def check_direction(c, dir, piece, opp_piece)
149
- c_adjacent = next_in_direction(c.dup, dir)
150
- c_last = nil
151
- pieces_in_between = []
152
- # Find the last piece if there is one.
153
- while(valid_location?(c_adjacent))
154
- if board_at(c_adjacent) == opp_piece
155
- pieces_in_between << c_adjacent.dup
156
- elsif board_at(c_adjacent) == piece && pieces_in_between.size > 0
157
- c_last = c_adjacent
158
- break
159
- else
160
- break
161
- end
162
- c_adjacent = next_in_direction(c_adjacent, dir)
163
- end
164
-
165
- pieces_in_between.empty? || c_last.nil? ? nil : pieces_in_between
166
- end
167
-
168
- # Find the value of the board at the given coordinate.
169
- def board_at(c)
170
- @board[c[0]][c[1]]
171
- end
172
-
173
- # Is this a valid location on board?
174
- def valid_location?(c=[1,1])
175
- c[0] >= 0 && c[1] >= 0 && c[0] < BOARD_SIZE[0] && c[1] < BOARD_SIZE[1]
176
- end
177
-
178
- # Perform the operations to get the next spot in the appropriate direction
179
- def next_in_direction(c, dir)
180
- c[0] += dir[0]
181
- c[1] += dir[1]
182
- c
183
- end
184
-
185
- private
186
- def pieces_per_player
187
- total_squares / 2
188
- end
189
-
190
- # The total number of squares
191
- def total_squares
192
- BOARD_SIZE[0] * BOARD_SIZE[1]
193
- end
194
-
195
- class Player
196
- attr_accessor :pieces, :color, :pieces_on_board
197
-
198
- def initialize(color=:black,pieces=0)
199
- @pieces = pieces
200
- @pieces_on_board = 0 # used only in calculating winner
201
- @color = color
202
- end
203
-
204
- def piece
205
- color == :black ? 1 : 2
206
- end
207
-
208
- def opp_piece
209
- color == :black ? 2 : 1
210
- end
211
- end
212
- end
213
-
214
- def draw_player_1(first_turn=false)
215
- stack :margin => 10 do
216
- if GAME.current_player==GAME.p1
217
- background yellow
218
- para span("Player 1 (#{GAME.current_player.color}) turn", :stroke => black, :font => "Trebuchet 20px bold"), :margin => 4
219
- else
220
- background white
221
- para span("Player 1", :stroke => black, :font => "Trebuchet 10px bold"), :margin => 4
222
-
223
- button("Undo last move", :top => 0, :left => -150) { GAME.undo!; draw_board } unless GAME.board_history.empty?
224
- end
225
- end
226
- end
227
-
228
- def draw_player_2(first_turn=false)
229
- stack :top => 550, :left => 0, :margin => 10 do
230
- if GAME.current_player==GAME.p2
231
- background yellow
232
- para span("Player 2's (#{GAME.current_player.color}) turn", :stroke => black, :font => "Trebuchet 20px bold"), :margin => 4
233
- else
234
- background white
235
- para span("Player 2", :stroke => black, :font => "Trebuchet 10px bold"), :margin => 4
236
-
237
- button("Undo last move", :top => 0, :left => -150) { GAME.undo!; draw_board } unless GAME.board_history.empty?
238
- end
239
- end
240
- end
241
-
242
-
243
- def draw_board
244
- clear do
245
- background black
246
- draw_player_1
247
- stack :margin => 10 do
248
- fill rgb(0, 190, 0)
249
- rect :left => 0, :top => 0, :width => 495, :height => 495
250
-
251
- GAME.board.each_with_index do |col, col_index|
252
- col.each_with_index do |cell, row_index|
253
- left, top = left_top_corner_of_piece(col_index, row_index)
254
- left = left - LEFT_OFFSET
255
- top = top - TOP_OFFSET
256
- fill rgb(0, 440, 0, 90)
257
- strokewidth 1
258
- stroke rgb(0, 100, 0)
259
- rect :left => left, :top => top, :width => PIECE_WIDTH, :height => PIECE_HEIGHT
260
-
261
- if cell != 0
262
- strokewidth 0
263
- fill (cell == 1 ? rgb(100,100,100) : rgb(155,155,155))
264
- oval(left+3, top+4, PIECE_WIDTH-10, PIECE_HEIGHT-10)
265
-
266
- fill (cell == 1 ? black : white)
267
- oval(left+5, top+5, PIECE_WIDTH-10, PIECE_HEIGHT-10)
268
- end
269
- end
270
- end
271
- end
272
- draw_player_2
273
- end
274
- end
275
-
276
- def left_top_corner_of_piece(a,b)
277
- [(a*PIECE_WIDTH+LEFT_OFFSET), (b*PIECE_HEIGHT+TOP_OFFSET)]
278
- end
279
-
280
- def right_bottom_corner_of_piece(a,b)
281
- left_top_corner_of_piece(a,b).map { |coord| coord + PIECE_WIDTH }
282
- end
283
-
284
- def find_piece(x,y)
285
- GAME.board.each_with_index { |row_array, row|
286
- row_array.each_with_index { |col_array, col|
287
- left, top = left_top_corner_of_piece(col, row).map { |i| i - 5}
288
- right, bottom = right_bottom_corner_of_piece(col, row).map { |i| i -5 }
289
- return [col, row] if x >= left && x <= right && y >= top && y <= bottom
290
- }
291
- }
292
- return false
293
- end
294
-
295
- end
296
-
297
-
298
- Shoes.app :width => 520, :height => 600 do
299
- extend Othello
300
- GAME = Othello::Game.new
301
-
302
- draw_board
303
-
304
- click { |button, x, y|
305
- if coords = find_piece(x,y)
306
- begin
307
- GAME.lay_piece(coords)
308
- GAME.next_turn
309
- draw_board
310
- rescue => e
311
- draw_board
312
- alert(e.message)
313
- end
314
- else
315
- # alert("Not a piece.")
316
- end
317
- }
318
- end
319
-
@@ -1,51 +0,0 @@
1
- #
2
- # Shoes Clock by Thomas Bell
3
- # posted to the Shoes mailing list on 04 Dec 2007
4
- #
5
- Shoes.app :height => 260, :width => 250 do
6
- @radius, @centerx, @centery = 90, 126, 140
7
- animate(8) do
8
- @time = Time.now
9
- clear do
10
- draw_background
11
- stack do
12
- background black
13
- para @time.strftime("%a"),
14
- span(@time.strftime(" %b %d, %Y "), :stroke => "#ccc"),
15
- strong(@time.strftime("%I:%M"), :stroke => white),
16
- @time.strftime(".%S"), :align => "center", :stroke => "#666",
17
- :margin => 4
18
- end
19
- clock_hand @time.sec + (@time.usec * 0.000001),2,30,red
20
- clock_hand @time.min + (@time.sec / 60.0),5
21
- clock_hand @time.hour + (@time.min / 60.0),8,6
22
- end
23
- end
24
- def draw_background
25
- background rgb(230, 240, 200)
26
-
27
- fill white
28
- stroke black
29
- strokewidth 4
30
- oval @centerx - 102, @centery - 102, 204, 204
31
-
32
- fill black
33
- nostroke
34
- oval @centerx - 5, @centery - 5, 10, 10
35
-
36
- stroke black
37
- strokewidth 1
38
- line(@centerx, @centery - 102, @centerx, @centery - 95)
39
- line(@centerx - 102, @centery, @centerx - 95, @centery)
40
- line(@centerx + 95, @centery, @centerx + 102, @centery)
41
- line(@centerx, @centery + 95, @centerx, @centery + 102)
42
- end
43
- def clock_hand(time, sw, unit=30, color=black)
44
- radius_local = unit == 30 ? @radius : @radius - 15
45
- _x = radius_local * Math.sin( time * Math::PI / unit )
46
- _y = radius_local * Math.cos( time * Math::PI / unit )
47
- stroke color
48
- strokewidth sw
49
- line(@centerx, @centery, @centerx + _x, @centery - _y)
50
- end
51
- end
@@ -1,26 +0,0 @@
1
- trails = [[0, 0]] * 60
2
- Shoes.app :width => 200, :height => 200, :resizable => false do
3
- nostroke
4
- fill rgb(0x3, 0x1, 0x3, 0.6)
5
-
6
- # animation at 100 frames per second
7
- animate(60) do
8
- trails.shift
9
- trails << self.mouse[1, 2]
10
-
11
- clear do
12
- # change the background based on where the pointer is
13
- background rgb(
14
- 20 + (70 * (trails.last[0].to_f / self.width)).to_i,
15
- 20 + (70 * (trails.last[1].to_f / self.height)).to_i,
16
- 51)
17
-
18
- # draw circles progressively bigger
19
- trails.each_with_index do |(x, y), i|
20
- i += 1
21
- oval :left => x, :top => y, :radius => (i*0.5), :center => true
22
- end
23
- end
24
- end
25
-
26
- end