shoes 4.0.0.pre1 → 4.0.0.pre2

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 (361) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +84 -32
  3. data/Gemfile +22 -1
  4. data/README.md +28 -13
  5. data/Rakefile +7 -210
  6. data/bin/ruby-shoes +2 -2
  7. data/ext/install/shoes.bat +4 -1
  8. data/lib/shoes.rb +1 -121
  9. data/lib/shoes/{cli.rb → ui/cli.rb} +7 -1
  10. data/lib/shoes/{help.rb → ui/help.rb} +2 -2
  11. data/lib/shoes/{manual.rb → ui/manual.rb} +1 -1
  12. data/lib/shoes/version.rb +1 -1
  13. data/manifests/common.rb +34 -0
  14. data/manifests/shoes.rb +44 -0
  15. data/samples/Gemfile +3 -0
  16. data/samples/Gemfile.lock +35 -0
  17. data/samples/README +16 -5
  18. data/samples/boom.rb +239 -0
  19. data/samples/clicky.rb +24 -0
  20. data/samples/flow.rb +63 -0
  21. data/samples/gray.rb +11 -0
  22. data/samples/nks_booklist.rb +24 -0
  23. data/samples/nks_breadsticks.rb +7 -0
  24. data/samples/nks_dancing_circle.rb +13 -0
  25. data/samples/nks_dictionary.rb +23 -0
  26. data/samples/nks_edit_box.rb +4 -0
  27. data/samples/nks_edit_line.rb +6 -0
  28. data/samples/nks_notes.rb +16 -0
  29. data/samples/nks_self.rb +6 -0
  30. data/samples/nks_text_sizes.rb +10 -0
  31. data/samples/nks_trurl.rb +5 -0
  32. data/samples/packaging/package_me.rb +6 -0
  33. data/samples/present.rb +27 -0
  34. data/samples/progress.rb +10 -0
  35. data/samples/sample31.rb +1 -1
  36. data/samples/simple-calc.rb +1 -1
  37. data/samples/simple-tictactoe.rb +238 -0
  38. data/samples/simple-visibility.rb +11 -0
  39. data/samples/simple-widget.rb +9 -0
  40. data/samples/swt-raw.rb +20 -0
  41. data/samples/troll.rb +22 -0
  42. data/shoes.gemspec +10 -22
  43. data/snapshots/sample56.png +0 -0
  44. data/static/manual-en.txt +16 -7
  45. data/tasks/changelog.rb +92 -0
  46. data/tasks/gem.rb +38 -0
  47. data/tasks/rspec.rb +106 -0
  48. data/tasks/sample.rb +66 -0
  49. data/tasks/yard.rb +13 -0
  50. metadata +55 -488
  51. data/.gitignore +0 -53
  52. data/.rspec +0 -3
  53. data/.ruby-gemset +0 -1
  54. data/.ruby-version +0 -1
  55. data/.travis.yml +0 -31
  56. data/bin/shoes +0 -59
  57. data/bin/shoes.bat +0 -6
  58. data/fonts/Coolvetica.ttf +0 -0
  59. data/fonts/Lacuna.ttf +0 -0
  60. data/lib/ext/highlighter.rb +0 -2
  61. data/lib/ext/highlighter/common.rb +0 -197
  62. data/lib/ext/highlighter/lang/ruby.rb +0 -316
  63. data/lib/ext/highlighter/markup.rb +0 -222
  64. data/lib/rubygems_plugin.rb +0 -19
  65. data/lib/shoes/animation.rb +0 -55
  66. data/lib/shoes/app.rb +0 -320
  67. data/lib/shoes/arc.rb +0 -35
  68. data/lib/shoes/background.rb +0 -30
  69. data/lib/shoes/border.rb +0 -33
  70. data/lib/shoes/builtin_methods.rb +0 -73
  71. data/lib/shoes/button.rb +0 -32
  72. data/lib/shoes/check_button.rb +0 -43
  73. data/lib/shoes/color.rb +0 -375
  74. data/lib/shoes/common/background_element.rb +0 -9
  75. data/lib/shoes/common/changeable.rb +0 -34
  76. data/lib/shoes/common/clickable.rb +0 -17
  77. data/lib/shoes/common/common_methods.rb +0 -70
  78. data/lib/shoes/common/fill.rb +0 -21
  79. data/lib/shoes/common/registration.rb +0 -33
  80. data/lib/shoes/common/state.rb +0 -18
  81. data/lib/shoes/common/stroke.rb +0 -28
  82. data/lib/shoes/common/style.rb +0 -34
  83. data/lib/shoes/common/style_normalizer.rb +0 -16
  84. data/lib/shoes/configuration.rb +0 -96
  85. data/lib/shoes/dialog.rb +0 -27
  86. data/lib/shoes/dimension.rb +0 -237
  87. data/lib/shoes/dimensions.rb +0 -194
  88. data/lib/shoes/download.rb +0 -117
  89. data/lib/shoes/dsl.rb +0 -478
  90. data/lib/shoes/font.rb +0 -49
  91. data/lib/shoes/gradient.rb +0 -18
  92. data/lib/shoes/image.rb +0 -33
  93. data/lib/shoes/image_pattern.rb +0 -10
  94. data/lib/shoes/input_box.rb +0 -68
  95. data/lib/shoes/key_event.rb +0 -17
  96. data/lib/shoes/line.rb +0 -38
  97. data/lib/shoes/link.rb +0 -49
  98. data/lib/shoes/link_hover.rb +0 -5
  99. data/lib/shoes/list_box.rb +0 -44
  100. data/lib/shoes/logger.rb +0 -66
  101. data/lib/shoes/logger/ruby.rb +0 -18
  102. data/lib/shoes/mock.rb +0 -30
  103. data/lib/shoes/mock/animation.rb +0 -8
  104. data/lib/shoes/mock/app.rb +0 -44
  105. data/lib/shoes/mock/arc.rb +0 -8
  106. data/lib/shoes/mock/background.rb +0 -10
  107. data/lib/shoes/mock/border.rb +0 -7
  108. data/lib/shoes/mock/button.rb +0 -10
  109. data/lib/shoes/mock/check.rb +0 -24
  110. data/lib/shoes/mock/common_methods.rb +0 -11
  111. data/lib/shoes/mock/dialog.rb +0 -13
  112. data/lib/shoes/mock/download.rb +0 -18
  113. data/lib/shoes/mock/font.rb +0 -17
  114. data/lib/shoes/mock/image.rb +0 -12
  115. data/lib/shoes/mock/image_pattern.rb +0 -9
  116. data/lib/shoes/mock/input_box.rb +0 -23
  117. data/lib/shoes/mock/keypress.rb +0 -8
  118. data/lib/shoes/mock/keyrelease.rb +0 -8
  119. data/lib/shoes/mock/line.rb +0 -14
  120. data/lib/shoes/mock/link.rb +0 -11
  121. data/lib/shoes/mock/list_box.rb +0 -16
  122. data/lib/shoes/mock/oval.rb +0 -11
  123. data/lib/shoes/mock/progress.rb +0 -10
  124. data/lib/shoes/mock/radio.rb +0 -26
  125. data/lib/shoes/mock/rect.rb +0 -13
  126. data/lib/shoes/mock/shape.rb +0 -19
  127. data/lib/shoes/mock/slot.rb +0 -14
  128. data/lib/shoes/mock/sound.rb +0 -8
  129. data/lib/shoes/mock/star.rb +0 -13
  130. data/lib/shoes/mock/text_block.rb +0 -29
  131. data/lib/shoes/mock/timer.rb +0 -8
  132. data/lib/shoes/oval.rb +0 -28
  133. data/lib/shoes/point.rb +0 -43
  134. data/lib/shoes/progress.rb +0 -26
  135. data/lib/shoes/radio.rb +0 -15
  136. data/lib/shoes/rect.rb +0 -28
  137. data/lib/shoes/renamed_delegate.rb +0 -15
  138. data/lib/shoes/shape.rb +0 -175
  139. data/lib/shoes/slot.rb +0 -232
  140. data/lib/shoes/slot_contents.rb +0 -56
  141. data/lib/shoes/sound.rb +0 -16
  142. data/lib/shoes/span.rb +0 -16
  143. data/lib/shoes/star.rb +0 -49
  144. data/lib/shoes/swt.rb +0 -114
  145. data/lib/shoes/swt/animation.rb +0 -46
  146. data/lib/shoes/swt/app.rb +0 -300
  147. data/lib/shoes/swt/arc.rb +0 -70
  148. data/lib/shoes/swt/background.rb +0 -31
  149. data/lib/shoes/swt/border.rb +0 -37
  150. data/lib/shoes/swt/button.rb +0 -18
  151. data/lib/shoes/swt/check.rb +0 -14
  152. data/lib/shoes/swt/check_button.rb +0 -19
  153. data/lib/shoes/swt/color.rb +0 -45
  154. data/lib/shoes/swt/common/child.rb +0 -16
  155. data/lib/shoes/swt/common/clear.rb +0 -24
  156. data/lib/shoes/swt/common/clickable.rb +0 -62
  157. data/lib/shoes/swt/common/container.rb +0 -28
  158. data/lib/shoes/swt/common/fill.rb +0 -37
  159. data/lib/shoes/swt/common/painter.rb +0 -83
  160. data/lib/shoes/swt/common/painter_updates_position.rb +0 -12
  161. data/lib/shoes/swt/common/resource.rb +0 -14
  162. data/lib/shoes/swt/common/selection_listener.rb +0 -14
  163. data/lib/shoes/swt/common/stroke.rb +0 -41
  164. data/lib/shoes/swt/common/toggle.rb +0 -13
  165. data/lib/shoes/swt/common/update_position.rb +0 -15
  166. data/lib/shoes/swt/dialog.rb +0 -89
  167. data/lib/shoes/swt/disposed_protection.rb +0 -23
  168. data/lib/shoes/swt/download.rb +0 -24
  169. data/lib/shoes/swt/fitted_text_layout.rb +0 -94
  170. data/lib/shoes/swt/fitted_text_layout_collection.rb +0 -108
  171. data/lib/shoes/swt/font.rb +0 -32
  172. data/lib/shoes/swt/gradient.rb +0 -77
  173. data/lib/shoes/swt/image.rb +0 -130
  174. data/lib/shoes/swt/image_pattern.rb +0 -19
  175. data/lib/shoes/swt/input_box.rb +0 -73
  176. data/lib/shoes/swt/key_listener.rb +0 -145
  177. data/lib/shoes/swt/line.rb +0 -57
  178. data/lib/shoes/swt/link.rb +0 -37
  179. data/lib/shoes/swt/link_segment.rb +0 -108
  180. data/lib/shoes/swt/list_box.rb +0 -49
  181. data/lib/shoes/swt/mouse_move_listener.rb +0 -61
  182. data/lib/shoes/swt/oval.rb +0 -53
  183. data/lib/shoes/swt/progress.rb +0 -35
  184. data/lib/shoes/swt/radio.rb +0 -29
  185. data/lib/shoes/swt/radio_group.rb +0 -54
  186. data/lib/shoes/swt/rect.rb +0 -31
  187. data/lib/shoes/swt/rect_painter.rb +0 -23
  188. data/lib/shoes/swt/redrawing_aspect.rb +0 -122
  189. data/lib/shoes/swt/shape.rb +0 -101
  190. data/lib/shoes/swt/shoes_layout.rb +0 -43
  191. data/lib/shoes/swt/slot.rb +0 -25
  192. data/lib/shoes/swt/sound.rb +0 -119
  193. data/lib/shoes/swt/star.rb +0 -51
  194. data/lib/shoes/swt/swt_button.rb +0 -49
  195. data/lib/shoes/swt/text_block.rb +0 -133
  196. data/lib/shoes/swt/text_block_cursor_painter.rb +0 -112
  197. data/lib/shoes/swt/text_block_fitter.rb +0 -180
  198. data/lib/shoes/swt/text_block_painter.rb +0 -49
  199. data/lib/shoes/swt/text_font_factory.rb +0 -27
  200. data/lib/shoes/swt/text_style_factory.rb +0 -88
  201. data/lib/shoes/swt/timer.rb +0 -19
  202. data/lib/shoes/swt/tooling/leak_hunter.rb +0 -84
  203. data/lib/shoes/text.rb +0 -14
  204. data/lib/shoes/text_block.rb +0 -162
  205. data/lib/shoes/timer.rb +0 -10
  206. data/lib/shoes/url.rb +0 -47
  207. data/lib/shoes/widget.rb +0 -73
  208. data/lib/support/jl1.0.1.jar +0 -0
  209. data/lib/support/jogg-0.0.7.jar +0 -0
  210. data/lib/support/jorbis-0.0.15.jar +0 -0
  211. data/lib/support/log4j-1.2.16.jar +0 -0
  212. data/lib/support/mp3spi1.9.5.jar +0 -0
  213. data/lib/support/tritonus_share.jar +0 -0
  214. data/lib/support/vorbisspi1.0.3.jar +0 -0
  215. data/samples/good-clock-adjusted.rb +0 -49
  216. data/spec/async_helper.rb +0 -21
  217. data/spec/code_coverage.rb +0 -11
  218. data/spec/shoes/animation_spec.rb +0 -65
  219. data/spec/shoes/app_spec.rb +0 -411
  220. data/spec/shoes/arc_spec.rb +0 -53
  221. data/spec/shoes/background_spec.rb +0 -48
  222. data/spec/shoes/border_spec.rb +0 -43
  223. data/spec/shoes/builtin_methods_spec.rb +0 -84
  224. data/spec/shoes/button_spec.rb +0 -41
  225. data/spec/shoes/check_spec.rb +0 -31
  226. data/spec/shoes/cli_spec.rb +0 -16
  227. data/spec/shoes/color_spec.rb +0 -396
  228. data/spec/shoes/common/style_normalizer_spec.rb +0 -28
  229. data/spec/shoes/common/style_spec.rb +0 -58
  230. data/spec/shoes/configuration_spec.rb +0 -37
  231. data/spec/shoes/constants_spec.rb +0 -38
  232. data/spec/shoes/dialog_spec.rb +0 -163
  233. data/spec/shoes/dimension_spec.rb +0 -381
  234. data/spec/shoes/dimensions_spec.rb +0 -831
  235. data/spec/shoes/download_spec.rb +0 -133
  236. data/spec/shoes/flow_spec.rb +0 -92
  237. data/spec/shoes/font_spec.rb +0 -38
  238. data/spec/shoes/framework_learning_spec.rb +0 -30
  239. data/spec/shoes/helpers/fake_element.rb +0 -11
  240. data/spec/shoes/helpers/sample17_helper.rb +0 -66
  241. data/spec/shoes/image_spec.rb +0 -45
  242. data/spec/shoes/images/shoe.jpg +0 -0
  243. data/spec/shoes/input_box_spec.rb +0 -44
  244. data/spec/shoes/integration_spec.rb +0 -20
  245. data/spec/shoes/keypress_spec.rb +0 -11
  246. data/spec/shoes/keyrelease_spec.rb +0 -12
  247. data/spec/shoes/line_spec.rb +0 -47
  248. data/spec/shoes/link_spec.rb +0 -89
  249. data/spec/shoes/list_box_spec.rb +0 -63
  250. data/spec/shoes/logger/ruby_spec.rb +0 -9
  251. data/spec/shoes/logger_spec.rb +0 -45
  252. data/spec/shoes/oval_spec.rb +0 -20
  253. data/spec/shoes/point_spec.rb +0 -51
  254. data/spec/shoes/progress_spec.rb +0 -40
  255. data/spec/shoes/radio_spec.rb +0 -28
  256. data/spec/shoes/rect_spec.rb +0 -38
  257. data/spec/shoes/renamed_delegate_spec.rb +0 -70
  258. data/spec/shoes/shape_spec.rb +0 -54
  259. data/spec/shoes/shared_examples/button.rb +0 -6
  260. data/spec/shoes/shared_examples/changeable.rb +0 -26
  261. data/spec/shoes/shared_examples/clickable.rb +0 -5
  262. data/spec/shoes/shared_examples/common_methods.rb +0 -42
  263. data/spec/shoes/shared_examples/dimensions.rb +0 -32
  264. data/spec/shoes/shared_examples/dsl.rb +0 -42
  265. data/spec/shoes/shared_examples/dsl/animate.rb +0 -29
  266. data/spec/shoes/shared_examples/dsl/arc.rb +0 -45
  267. data/spec/shoes/shared_examples/dsl/background.rb +0 -26
  268. data/spec/shoes/shared_examples/dsl/border.rb +0 -10
  269. data/spec/shoes/shared_examples/dsl/cap.rb +0 -6
  270. data/spec/shoes/shared_examples/dsl/check.rb +0 -11
  271. data/spec/shoes/shared_examples/dsl/edit_box.rb +0 -8
  272. data/spec/shoes/shared_examples/dsl/edit_line.rb +0 -8
  273. data/spec/shoes/shared_examples/dsl/editable_element.rb +0 -29
  274. data/spec/shoes/shared_examples/dsl/fill.rb +0 -27
  275. data/spec/shoes/shared_examples/dsl/flow.rb +0 -15
  276. data/spec/shoes/shared_examples/dsl/gradient.rb +0 -52
  277. data/spec/shoes/shared_examples/dsl/image.rb +0 -21
  278. data/spec/shoes/shared_examples/dsl/line.rb +0 -9
  279. data/spec/shoes/shared_examples/dsl/nofill.rb +0 -6
  280. data/spec/shoes/shared_examples/dsl/nostroke.rb +0 -6
  281. data/spec/shoes/shared_examples/dsl/oval.rb +0 -60
  282. data/spec/shoes/shared_examples/dsl/pattern.rb +0 -34
  283. data/spec/shoes/shared_examples/dsl/progress.rb +0 -7
  284. data/spec/shoes/shared_examples/dsl/rect.rb +0 -92
  285. data/spec/shoes/shared_examples/dsl/rgb.rb +0 -26
  286. data/spec/shoes/shared_examples/dsl/shape.rb +0 -21
  287. data/spec/shoes/shared_examples/dsl/star.rb +0 -48
  288. data/spec/shoes/shared_examples/dsl/stroke.rb +0 -30
  289. data/spec/shoes/shared_examples/dsl/strokewidth.rb +0 -19
  290. data/spec/shoes/shared_examples/dsl/style.rb +0 -32
  291. data/spec/shoes/shared_examples/dsl/text_elements.rb +0 -81
  292. data/spec/shoes/shared_examples/dsl_app_context.rb +0 -8
  293. data/spec/shoes/shared_examples/hover_leave.rb +0 -11
  294. data/spec/shoes/shared_examples/parent.rb +0 -6
  295. data/spec/shoes/shared_examples/shared_element_method.rb +0 -52
  296. data/spec/shoes/shared_examples/slot.rb +0 -272
  297. data/spec/shoes/shared_examples/state.rb +0 -19
  298. data/spec/shoes/shared_examples/style.rb +0 -24
  299. data/spec/shoes/slot_spec.rb +0 -60
  300. data/spec/shoes/sound_spec.rb +0 -15
  301. data/spec/shoes/span_spec.rb +0 -94
  302. data/spec/shoes/spec_helper.rb +0 -1
  303. data/spec/shoes/stack_spec.rb +0 -53
  304. data/spec/shoes/star_spec.rb +0 -30
  305. data/spec/shoes/text_block_spec.rb +0 -242
  306. data/spec/shoes/url_spec.rb +0 -66
  307. data/spec/shoes/widget_spec.rb +0 -34
  308. data/spec/shoes_spec.rb +0 -44
  309. data/spec/spec_helper.rb +0 -16
  310. data/spec/swt_shoes/animation_spec.rb +0 -86
  311. data/spec/swt_shoes/app_spec.rb +0 -75
  312. data/spec/swt_shoes/arc_spec.rb +0 -101
  313. data/spec/swt_shoes/background_spec.rb +0 -56
  314. data/spec/swt_shoes/border_spec.rb +0 -51
  315. data/spec/swt_shoes/button_spec.rb +0 -101
  316. data/spec/swt_shoes/check_spec.rb +0 -28
  317. data/spec/swt_shoes/color_spec.rb +0 -67
  318. data/spec/swt_shoes/common/painter_spec.rb +0 -29
  319. data/spec/swt_shoes/configuration_spec.rb +0 -12
  320. data/spec/swt_shoes/dialog_spec.rb +0 -106
  321. data/spec/swt_shoes/disposed_protection_spec.rb +0 -49
  322. data/spec/swt_shoes/fitted_text_layout_collection_spec.rb +0 -174
  323. data/spec/swt_shoes/fitted_text_layout_spec.rb +0 -130
  324. data/spec/swt_shoes/flow_spec.rb +0 -26
  325. data/spec/swt_shoes/font_spec.rb +0 -33
  326. data/spec/swt_shoes/gradient_spec.rb +0 -20
  327. data/spec/swt_shoes/image_pattern_spec.rb +0 -19
  328. data/spec/swt_shoes/image_spec.rb +0 -100
  329. data/spec/swt_shoes/input_box_spec.rb +0 -110
  330. data/spec/swt_shoes/integration_spec.rb +0 -18
  331. data/spec/swt_shoes/key_listener_spec.rb +0 -320
  332. data/spec/swt_shoes/line_spec.rb +0 -43
  333. data/spec/swt_shoes/link_segment_spec.rb +0 -103
  334. data/spec/swt_shoes/link_spec.rb +0 -59
  335. data/spec/swt_shoes/list_box_spec.rb +0 -51
  336. data/spec/swt_shoes/minimal.png +0 -0
  337. data/spec/swt_shoes/mouse_move_listener_spec.rb +0 -129
  338. data/spec/swt_shoes/oval_spec.rb +0 -51
  339. data/spec/swt_shoes/progress_spec.rb +0 -44
  340. data/spec/swt_shoes/radio_group_spec.rb +0 -73
  341. data/spec/swt_shoes/radio_spec.rb +0 -56
  342. data/spec/swt_shoes/rect_painter_spec.rb +0 -45
  343. data/spec/swt_shoes/rect_spec.rb +0 -19
  344. data/spec/swt_shoes/shape_spec.rb +0 -81
  345. data/spec/swt_shoes/shared_examples/button.rb +0 -24
  346. data/spec/swt_shoes/shared_examples/clearable.rb +0 -32
  347. data/spec/swt_shoes/shared_examples/clickable.rb +0 -60
  348. data/spec/swt_shoes/shared_examples/movable.rb +0 -36
  349. data/spec/swt_shoes/shared_examples/paintable_spec.rb +0 -7
  350. data/spec/swt_shoes/shared_examples/painter.rb +0 -83
  351. data/spec/swt_shoes/shared_examples/pattern.rb +0 -32
  352. data/spec/swt_shoes/shared_examples/swt_app_context.rb +0 -17
  353. data/spec/swt_shoes/shared_examples/togglable.rb +0 -15
  354. data/spec/swt_shoes/shell_control_listener_spec.rb +0 -23
  355. data/spec/swt_shoes/sound.rb +0 -10
  356. data/spec/swt_shoes/spec_helper.rb +0 -31
  357. data/spec/swt_shoes/star_spec.rb +0 -47
  358. data/spec/swt_shoes/text_block_cursor_painter_spec.rb +0 -202
  359. data/spec/swt_shoes/text_block_fitter_spec.rb +0 -181
  360. data/spec/swt_shoes/text_block_painter_spec.rb +0 -221
  361. data/spec/swt_shoes/text_block_spec.rb +0 -183
@@ -1,38 +0,0 @@
1
- require 'shoes/spec_helper'
2
-
3
- shared_examples_for "basic rect" do
4
- it "retains app" do
5
- expect(rect.app).to eq(app)
6
- end
7
-
8
- it "creates gui object" do
9
- expect(rect.gui).not_to be_nil
10
- end
11
- end
12
-
13
- describe Shoes::Rect do
14
- include_context "dsl app"
15
-
16
- let(:parent) { app }
17
- let(:left) { 44 }
18
- let(:top) { 66 }
19
- let(:width) { 111 }
20
- let(:height) { 333 }
21
- subject(:rect) { Shoes::Rect.new(app, parent, left, top, width, height) }
22
-
23
- describe '#style' do
24
- it 'restyles handed in fill colors (even the weird ones)' do
25
- subject.style fill: 'fff'
26
- expect(subject.style[:fill]).to eq Shoes::Color.new 255, 255, 255
27
- end
28
- end
29
-
30
- it_behaves_like "basic rect"
31
- it_behaves_like "object with fill"
32
- it_behaves_like "object with stroke"
33
- it_behaves_like "object with style"
34
- it_behaves_like "object with dimensions"
35
- it_behaves_like "movable object"
36
- it_behaves_like "left, top as center"
37
- it_behaves_like 'object with parent'
38
- end
@@ -1,70 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe RenamedDelegate do
4
-
5
- class ToDelegate
6
- def method_key
7
- end
8
-
9
- def abcd
10
- end
11
-
12
- def key
13
- end
14
-
15
- def bla_key
16
- end
17
-
18
- def method_something
19
- end
20
-
21
- def key_something
22
- end
23
- end
24
-
25
- class TestClass
26
- extend RenamedDelegate
27
-
28
- attr_reader :delegate
29
-
30
- def initialize(delegate)
31
- @delegate = delegate
32
- end
33
- end
34
-
35
- TestClass.renamed_delegate_to :delegate,
36
- ToDelegate.public_instance_methods(false),
37
- {'key' => 'shoes', 'something' => 'awesome'}
38
-
39
- let(:delegate) {double('delegate').as_null_object}
40
- subject {TestClass.new delegate}
41
-
42
- def test_renaming(new_name, old_name)
43
- subject.public_send new_name
44
- expect(delegate).to have_received old_name
45
- end
46
-
47
- it 'delegates method_shoes to method_key' do
48
- test_renaming :method_shoes, :method_key
49
- end
50
-
51
- it 'delegates shoes to key' do
52
- test_renaming :shoes, :key
53
- end
54
-
55
- it 'delegates bla_shoes to bla_key' do
56
- test_renaming :bla_shoes, :bla_key
57
- end
58
-
59
- it 'delegates method_awesome to method_something' do
60
- test_renaming :method_awesome, :method_something
61
- end
62
-
63
- it 'also applies multiple renamings' do
64
- test_renaming :shoes_awesome, :key_something
65
- end
66
-
67
- it 'does not define a method for methods without renamings' do
68
- expect(subject).not_to respond_to :abcd
69
- end
70
- end
@@ -1,54 +0,0 @@
1
- require 'shoes/spec_helper'
2
-
3
- describe Shoes::Shape do
4
- include_context "dsl app"
5
-
6
- subject { Shoes::Shape.new(app) {} }
7
-
8
- it_behaves_like "object with stroke"
9
- it_behaves_like "object with style"
10
- it_behaves_like "movable object"
11
-
12
- describe "octagon" do
13
- let(:draw) {
14
- Proc.new {
15
- xs = [200, 300, 370, 370, 300, 200, 130, 130]
16
- ys = [100, 100, 170, 270, 340, 340, 270, 170]
17
- move_to xs.first, ys.first
18
- xs.zip(ys).each do |x, y|
19
- line_to(x, y)
20
- end
21
- line_to xs.first, ys.first
22
- }
23
- }
24
- subject { Shoes::Shape.new app, Hash.new, draw }
25
-
26
- its(:left) { should eq(130) }
27
- its(:top) { should eq(100) }
28
- its(:right) { should eq(370) }
29
- its(:bottom) { should eq(340) }
30
- its(:width) { should eq(app.width) }
31
- its(:height) { should eq app.height }
32
-
33
- it_behaves_like "movable object"
34
- end
35
-
36
- describe "curve" do
37
- let(:draw) {
38
- Proc.new {
39
- move_to 10, 10
40
- curve_to 20, 30, 100, 200, 50, 50
41
- }
42
- }
43
- subject { Shoes::Shape.new app, Hash.new, draw }
44
-
45
- its(:left) { should eq(10) }
46
- its(:top) { should eq(10) }
47
- its(:right) { should eq(100) }
48
- its(:bottom) { should eq(200) }
49
- its(:width) { should eq(app.width) }
50
- its(:height) { should eq app.height }
51
-
52
- it_behaves_like "movable object"
53
- end
54
- end
@@ -1,6 +0,0 @@
1
- shared_examples "checkable" do
2
- it { should respond_to :checked= }
3
- it { should respond_to :checked? }
4
- it { should respond_to :focus }
5
- it { should respond_to :click }
6
- end
@@ -1,26 +0,0 @@
1
- shared_examples "an element that can respond to change" do
2
- describe "when passing a block to the constructor" do
3
- it "should notify the block of change events" do
4
- input_block.should_receive(:call).with(subject)
5
- subject.call_change_listeners
6
- end
7
- end
8
-
9
- describe "when setting up a callback with #change" do
10
- it "should notify the callback of change events" do
11
- called = false
12
- subject.change do |element|
13
- called = true
14
- end
15
- subject.call_change_listeners
16
- called.should be_true
17
- end
18
-
19
- it "should pass the element itself to the callback" do
20
- subject.change do |element|
21
- element.should == subject
22
- end
23
- subject.call_change_listeners
24
- end
25
- end
26
- end
@@ -1,5 +0,0 @@
1
- shared_examples "clickable object" do
2
- it { should respond_to :click }
3
- it { should respond_to :release }
4
- it { should respond_to :clickable_options }
5
- end
@@ -1,42 +0,0 @@
1
- shared_examples_for "movable object" do
2
- it "moves" do
3
- subject.instance_variable_set(:@app, app)
4
- subject.move(300, 200).should eq(subject)
5
- expect(subject.left).to eq(300)
6
- expect(subject.top).to eq(200)
7
- end
8
-
9
- describe "displacing" do
10
- it "displaces backend object" do
11
- expect(subject.gui).to receive(:update_position)
12
- subject.displace(300, 200)
13
- end
14
-
15
- it "does not change reported values of #left and #top" do
16
- # no error from calling set location with nil values due to unset values
17
- subject.gui.stub :update_position
18
- original_left = subject.left
19
- original_top = subject.top
20
- subject.displace(300, 200)
21
- expect(subject.left).to eq(original_left)
22
- expect(subject.top).to eq(original_top)
23
- end
24
- end
25
- end
26
-
27
- shared_examples_for "clearable object" do
28
- it "clears" do
29
- subject.should_receive(:clear)
30
- subject.clear
31
- end
32
- end
33
-
34
- shared_examples_for "left, top as center" do | *params |
35
- let(:centered_object) { described_class.new(app, parent, left, top, width, height, *params, :center => true) }
36
- it "should now be located somewhere" do
37
- expect(centered_object.left).to eq(left-(width/2))
38
- expect(centered_object.top).to eq(top-(height/2))
39
- expect(centered_object.width).to eq(width)
40
- expect(centered_object.height).to eq(height)
41
- end
42
- end
@@ -1,32 +0,0 @@
1
- shared_examples_for "object with dimensions" do
2
- it "should initialize" do
3
- subject.left.should == left
4
- subject.top.should == top
5
- subject.width.should == width
6
- subject.height.should == height
7
- end
8
- end
9
-
10
- shared_examples_for "object with relative dimensions" do
11
- let(:relative_width) { 0.5 }
12
- let(:relative_height) { 0.5 }
13
- let(:relative_opts) { {left: left, top: top, width: relative_width, height: relative_height} }
14
-
15
- it "should initialize based on parent dimensions" do
16
- expect(subject.left).to eq left
17
- expect(subject.top).to eq top
18
- expect(subject.width).to be_within(1).of(parent.width / 2)
19
- expect(subject.height).to be_within(1).of(parent.height / 2)
20
- end
21
- end
22
-
23
- shared_examples_for "object with negative dimensions" do
24
- let(:negative_opts) { {left: left, top: top, width: -width, height: -height} }
25
-
26
- it "should initialize based on parent dimensions" do
27
- subject.left.should == left
28
- subject.top.should == top
29
- subject.width.should == parent.width - width
30
- subject.height.should == parent.height - height
31
- end
32
- end
@@ -1,42 +0,0 @@
1
- # Shared examples for Shoes::App and Shoes::Slot (flow and stack).
2
- # If DSL methods can be called with multiple number of arguments,
3
- # and if they set certain defaults, then that what needs to be tested
4
- # here.
5
- # There are individual specs for the different Shoes elements, so
6
- # we don't need to test how they work in details. Here we just test that
7
- # the DSL methods construct elements correctly.
8
- shared_examples "DSL container" do
9
- let(:dsl) { app }
10
-
11
- %w[
12
- animate
13
- arc
14
- background
15
- border
16
- cap
17
- check
18
- edit_box
19
- edit_line
20
- fill
21
- flow
22
- gradient
23
- image
24
- line
25
- nofill
26
- nostroke
27
- oval
28
- pattern
29
- progress
30
- rect
31
- rgb
32
- shape
33
- star
34
- stroke
35
- strokewidth
36
- style
37
- ].each do |method|
38
- include_examples "#{method} DSL method"
39
- end
40
-
41
- include_examples "text element DSL methods"
42
- end
@@ -1,29 +0,0 @@
1
- shared_examples_for "animate DSL method" do
2
- context "defaults" do
3
- let(:animation) { dsl.animate {} }
4
-
5
- it "is a Shoes::Animation" do
6
- expect(animation).to be_an_instance_of(Shoes::Animation)
7
- end
8
-
9
- it "framerate is 10" do
10
- expect(animation.framerate).to eq 10
11
- end
12
- end
13
-
14
- context "with numeric argument" do
15
- let(:animation) { dsl.animate(13) {} }
16
-
17
- it "sets framerate" do
18
- expect(animation.framerate).to eq(13)
19
- end
20
- end
21
-
22
- context "with hash argument" do
23
- let(:animation) { dsl.animate(:framerate => 17) {} }
24
-
25
- it "sets framerate" do
26
- expect(animation.framerate).to eq(17)
27
- end
28
- end
29
- end
@@ -1,45 +0,0 @@
1
- shared_context "style context" do
2
- let(:fill_color) { Shoes::COLORS.fetch(:tomato) }
3
- let(:stroke_color) { Shoes::COLORS.fetch(:chartreuse) }
4
-
5
- before :each do
6
- subject.fill fill_color
7
- subject.stroke stroke_color
8
- end
9
- end
10
-
11
- shared_examples_for "persistent stroke" do
12
- include_context "style context"
13
-
14
- it "passes to element" do
15
- expect(element.stroke).to eq(stroke_color)
16
- end
17
- end
18
-
19
- shared_examples_for "persistent fill" do
20
- include_context "style context"
21
-
22
- it "passes to element" do
23
- expect(element.fill).to eq(fill_color)
24
- end
25
- end
26
-
27
- shared_examples_for "arc DSL method" do
28
- let(:arc) { dsl.arc(13, 44, 200, 300, 0, Shoes::TWO_PI) }
29
-
30
- it "creates a Shoes::Arc" do
31
- expect(arc).to be_an_instance_of(Shoes::Arc)
32
- end
33
-
34
- it "raises an ArgumentError" do
35
- lambda { dsl.arc(30) }.should raise_exception(ArgumentError)
36
- end
37
-
38
- it_behaves_like "persistent fill" do
39
- let(:element) { arc }
40
- end
41
-
42
- it_behaves_like "persistent stroke" do
43
- let(:element) { arc }
44
- end
45
- end
@@ -1,26 +0,0 @@
1
- shared_examples_for "background DSL method" do
2
- context "with a valid hex string" do
3
- it "sets color" do
4
- background = subject.background("#fff")
5
- expect(background.fill).to eq(Shoes::COLORS[:white])
6
- end
7
- end
8
-
9
- context "with an invalid hex string" do
10
- it 'raises an argument error' do
11
- expect{ subject.background('#ffq') }.to raise_error('Bad hex color: #ffq')
12
- end
13
- end
14
-
15
- context 'with no valid image' do
16
- it 'ignores the background' do
17
- expect{ subject.background('fake-shoes.jpg') }.not_to raise_error
18
- end
19
- end
20
-
21
- context 'with a valid image' do
22
- it 'creates a Shoes::Background' do
23
- expect(subject.background('static/shoes-icon.png')).to be_an_instance_of(Shoes::Background)
24
- end
25
- end
26
- end
@@ -1,10 +0,0 @@
1
- shared_examples_for "border DSL method" do
2
- context "with hex string" do
3
- let(:color) { "#ffffff" }
4
-
5
- it "sets color" do
6
- border = dsl.border(color)
7
- border.stroke.should eq(Shoes::COLORS[:white])
8
- end
9
- end
10
- end
@@ -1,6 +0,0 @@
1
- shared_examples_for "cap DSL method" do
2
- it "sets the line cap" do
3
- dsl.cap :curve
4
- dsl.style[:cap].should eq(:curve)
5
- end
6
- end