limelight 0.5.5-java → 0.6.14-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (315) hide show
  1. data/LICENSE +19 -0
  2. data/bin/limelight +7 -3
  3. data/ruby/lib/limelight-rb.jar +0 -0
  4. data/ruby/lib/limelight.jar +0 -0
  5. data/ruby/lib/limelight.rb +48 -0
  6. data/{lib → ruby/lib}/limelight/animation.rb +3 -3
  7. data/ruby/lib/limelight/builtin/players.rb +21 -0
  8. data/ruby/lib/limelight/builtin/players/button.rb +7 -0
  9. data/ruby/lib/limelight/builtin/players/check_box.rb +24 -0
  10. data/ruby/lib/limelight/builtin/players/combo_box.rb +50 -0
  11. data/ruby/lib/limelight/builtin/players/curtains.rb +12 -0
  12. data/ruby/lib/limelight/builtin/players/image.rb +38 -0
  13. data/ruby/lib/limelight/builtin/players/radio_button.rb +36 -0
  14. data/ruby/lib/limelight/builtin/players/stage_mover.rb +19 -0
  15. data/ruby/lib/limelight/builtin/players/stage_sizer.rb +23 -0
  16. data/ruby/lib/limelight/builtin/players/text_area.rb +10 -0
  17. data/ruby/lib/limelight/builtin/players/text_box.rb +10 -0
  18. data/{lib → ruby/lib}/limelight/dsl/build_exception.rb +2 -2
  19. data/{lib → ruby/lib}/limelight/dsl/menu_bar.rb +3 -3
  20. data/{lib → ruby/lib}/limelight/dsl/prop_builder.rb +25 -16
  21. data/{lib → ruby/lib}/limelight/dsl/stage_builder.rb +4 -4
  22. data/{lib → ruby/lib}/limelight/dsl/styles_builder.rb +14 -18
  23. data/{lib → ruby/lib}/limelight/file_chooser.rb +10 -10
  24. data/{lib → ruby/lib}/limelight/file_filter.rb +6 -6
  25. data/ruby/lib/limelight/java_couplings.rb +70 -0
  26. data/{lib → ruby/lib}/limelight/java_util.rb +6 -6
  27. data/{lib → ruby/lib}/limelight/limelight_exception.rb +3 -3
  28. data/ruby/lib/limelight/limelight_init.rb +24 -0
  29. data/ruby/lib/limelight/main.rb +15 -0
  30. data/ruby/lib/limelight/mouse.rb +76 -0
  31. data/ruby/lib/limelight/optionable.rb +42 -0
  32. data/{lib → ruby/lib}/limelight/paint_action.rb +8 -8
  33. data/{lib → ruby/lib}/limelight/pen.rb +7 -7
  34. data/ruby/lib/limelight/player.rb +148 -0
  35. data/ruby/lib/limelight/player_recruiter.rb +54 -0
  36. data/ruby/lib/limelight/production.rb +257 -0
  37. data/ruby/lib/limelight/prop.rb +344 -0
  38. data/ruby/lib/limelight/scene.rb +120 -0
  39. data/ruby/lib/limelight/specs/spec_helper.rb +191 -0
  40. data/ruby/lib/limelight/stage.rb +268 -0
  41. data/ruby/lib/limelight/string.rb +32 -0
  42. data/{lib → ruby/lib}/limelight/studio.rb +4 -3
  43. data/ruby/lib/limelight/style.rb +294 -0
  44. data/ruby/lib/limelight/templates/sources/features/step_definitions/limelight_steps.rb.template +47 -0
  45. data/ruby/lib/limelight/templates/sources/features/support/env.rb.template +35 -0
  46. data/{lib → ruby/lib}/limelight/templates/sources/freezing/limelight_init.rb.template +0 -0
  47. data/{lib → ruby/lib}/limelight/templates/sources/production/production.rb.template +2 -2
  48. data/{lib → ruby/lib}/limelight/templates/sources/production/spec/spec_helper.rb.template +0 -0
  49. data/{lib → ruby/lib}/limelight/templates/sources/production/stages.rb.template +0 -0
  50. data/{lib → ruby/lib}/limelight/templates/sources/production/styles.rb.template +0 -0
  51. data/ruby/lib/limelight/templates/sources/project/Rakefile.template +15 -0
  52. data/ruby/lib/limelight/templates/sources/project/spec_helper.rb.template +12 -0
  53. data/{lib → ruby/lib}/limelight/templates/sources/scene/props.rb.template +0 -0
  54. data/{lib → ruby/lib}/limelight/templates/sources/scene/styles.rb.template +0 -0
  55. data/{lib → ruby/lib}/limelight/templates/sources/scene_spec/scene_spec.rb.template +0 -0
  56. data/ruby/lib/limelight/theater.rb +76 -0
  57. data/{lib → ruby/lib}/limelight/util.rb +6 -25
  58. data/ruby/lib/limelight/util/hashes.rb +39 -0
  59. data/ruby/lib/limelight/util/map_hash.rb +191 -0
  60. data/ruby/lib/limelight/util/string_hash.rb +64 -0
  61. metadata +97 -390
  62. data/bin/icons/icon.ico +0 -0
  63. data/bin/icons/icon_48.gif +0 -0
  64. data/bin/icons/limelight.icns +0 -0
  65. data/bin/ll +0 -10
  66. data/bin/ll.bat +0 -5
  67. data/lib/init.rb +0 -12
  68. data/lib/limelight.jar +0 -0
  69. data/lib/limelight/builtin/players.rb +0 -16
  70. data/lib/limelight/builtin/players/button.rb +0 -39
  71. data/lib/limelight/builtin/players/check_box.rb +0 -50
  72. data/lib/limelight/builtin/players/combo_box.rb +0 -89
  73. data/lib/limelight/builtin/players/combo_box_popup_list.rb +0 -19
  74. data/lib/limelight/builtin/players/combo_box_popup_list_item.rb +0 -21
  75. data/lib/limelight/builtin/players/curtains.rb +0 -23
  76. data/lib/limelight/builtin/players/image.rb +0 -54
  77. data/lib/limelight/builtin/players/password_box.rb +0 -34
  78. data/lib/limelight/builtin/players/radio_button.rb +0 -65
  79. data/lib/limelight/builtin/players/stage_mover.rb +0 -31
  80. data/lib/limelight/builtin/players/stage_sizer.rb +0 -34
  81. data/lib/limelight/builtin/players/text_area.rb +0 -34
  82. data/lib/limelight/builtin/players/text_box.rb +0 -34
  83. data/lib/limelight/builtin/styles.rb +0 -35
  84. data/lib/limelight/builtin/utilities_production/alert/players/alert.rb +0 -14
  85. data/lib/limelight/builtin/utilities_production/alert/props.rb +0 -8
  86. data/lib/limelight/builtin/utilities_production/alert/styles.rb +0 -14
  87. data/lib/limelight/builtin/utilities_production/incompatible_version/props.rb +0 -20
  88. data/lib/limelight/builtin/utilities_production/incompatible_version/styles.rb +0 -12
  89. data/lib/limelight/builtin/utilities_production/production.rb +0 -66
  90. data/lib/limelight/builtin/utilities_production/stages.rb +0 -12
  91. data/lib/limelight/builtin/utilities_production/styles.rb +0 -53
  92. data/lib/limelight/button_group_cache.rb +0 -11
  93. data/lib/limelight/casting_director.rb +0 -112
  94. data/lib/limelight/commands/command.rb +0 -168
  95. data/lib/limelight/commands/create_command.rb +0 -98
  96. data/lib/limelight/commands/freeze_command.rb +0 -131
  97. data/lib/limelight/commands/help_command.rb +0 -61
  98. data/lib/limelight/commands/open_command.rb +0 -60
  99. data/lib/limelight/commands/pack_command.rb +0 -53
  100. data/lib/limelight/commands/unpack_command.rb +0 -44
  101. data/lib/limelight/commands/version_command.rb +0 -31
  102. data/lib/limelight/data.rb +0 -37
  103. data/lib/limelight/file_loader.rb +0 -46
  104. data/lib/limelight/gems.rb +0 -51
  105. data/lib/limelight/java_couplings.rb +0 -67
  106. data/lib/limelight/limelight_init.rb +0 -12
  107. data/lib/limelight/main.rb +0 -105
  108. data/lib/limelight/producer.rb +0 -233
  109. data/lib/limelight/production.rb +0 -203
  110. data/lib/limelight/prop.rb +0 -367
  111. data/lib/limelight/scene.rb +0 -151
  112. data/lib/limelight/specs/spec_helper.rb +0 -136
  113. data/lib/limelight/specs/test_scene_opener.rb +0 -63
  114. data/lib/limelight/stage.rb +0 -353
  115. data/lib/limelight/string.rb +0 -38
  116. data/lib/limelight/styles/style.rb +0 -288
  117. data/lib/limelight/templates/production_templater.rb +0 -49
  118. data/lib/limelight/templates/scene_templater.rb +0 -47
  119. data/lib/limelight/templates/sources/production/init.rb.template +0 -15
  120. data/lib/limelight/templates/templater.rb +0 -131
  121. data/lib/limelight/templates/templater_logger.rb +0 -39
  122. data/lib/limelight/theater.rb +0 -109
  123. data/lib/limelight/util/downloader.rb +0 -115
  124. data/lib/limelight/version.rb +0 -20
  125. data/productions/examples/8thlight.com/about/about.txt +0 -24
  126. data/productions/examples/8thlight.com/about/props.rb +0 -11
  127. data/productions/examples/8thlight.com/about/styles.rb +0 -2
  128. data/productions/examples/8thlight.com/footer.rb +0 -6
  129. data/productions/examples/8thlight.com/home/props.rb +0 -28
  130. data/productions/examples/8thlight.com/home/styles.rb +0 -2
  131. data/productions/examples/8thlight.com/images/anvil.jpg +0 -0
  132. data/productions/examples/8thlight.com/images/bg.jpg +0 -0
  133. data/productions/examples/8thlight.com/images/botticelli.jpg +0 -0
  134. data/productions/examples/8thlight.com/images/button_bg.jpg +0 -0
  135. data/productions/examples/8thlight.com/images/canvas_bg.jpg +0 -0
  136. data/productions/examples/8thlight.com/images/footer_bg.jpg +0 -0
  137. data/productions/examples/8thlight.com/images/header.jpg +0 -0
  138. data/productions/examples/8thlight.com/images/moses.jpg +0 -0
  139. data/productions/examples/8thlight.com/images/statemachine_thumbnail.png +0 -0
  140. data/productions/examples/8thlight.com/images/thumbnail_book.jpg +0 -0
  141. data/productions/examples/8thlight.com/menu.rb +0 -11
  142. data/productions/examples/8thlight.com/services/props.rb +0 -11
  143. data/productions/examples/8thlight.com/services/services.txt +0 -8
  144. data/productions/examples/8thlight.com/services/styles.rb +0 -2
  145. data/productions/examples/8thlight.com/stages.rb +0 -8
  146. data/productions/examples/8thlight.com/styles.rb +0 -210
  147. data/productions/examples/calculator/players/button.rb +0 -24
  148. data/productions/examples/calculator/players/calculator.rb +0 -15
  149. data/productions/examples/calculator/players/calculator_model.rb +0 -13
  150. data/productions/examples/calculator/props.rb +0 -23
  151. data/productions/examples/calculator/styles.rb +0 -36
  152. data/productions/examples/langstons_ant/html_javascript/ant.css +0 -39
  153. data/productions/examples/langstons_ant/html_javascript/ant.html +0 -22
  154. data/productions/examples/langstons_ant/html_javascript/ant.js +0 -23
  155. data/productions/examples/langstons_ant/init.rb +0 -4
  156. data/productions/examples/langstons_ant/players/ant.rb +0 -103
  157. data/productions/examples/langstons_ant/players/log.rb +0 -29
  158. data/productions/examples/langstons_ant/players/start_stop_button.rb +0 -37
  159. data/productions/examples/langstons_ant/players/world.rb +0 -35
  160. data/productions/examples/langstons_ant/props.rb +0 -22
  161. data/productions/examples/langstons_ant/styles.rb +0 -104
  162. data/productions/examples/sandbox/alerts/incompatible_production/default_scene/props.rb +0 -10
  163. data/productions/examples/sandbox/alerts/incompatible_production/default_scene/styles.rb +0 -32
  164. data/productions/examples/sandbox/alerts/incompatible_production/production.rb +0 -52
  165. data/productions/examples/sandbox/alerts/incompatible_production/spec/default_scene/default_scene_spec.rb +0 -16
  166. data/productions/examples/sandbox/alerts/incompatible_production/spec/spec_helper.rb +0 -8
  167. data/productions/examples/sandbox/alerts/incompatible_production/stages.rb +0 -20
  168. data/productions/examples/sandbox/alerts/incompatible_production/styles.rb +0 -15
  169. data/productions/examples/sandbox/alerts/players/alerts.rb +0 -17
  170. data/productions/examples/sandbox/alerts/props.rb +0 -10
  171. data/productions/examples/sandbox/alerts/styles.rb +0 -46
  172. data/productions/examples/sandbox/background_images/props.rb +0 -22
  173. data/productions/examples/sandbox/background_images/styles.rb +0 -40
  174. data/productions/examples/sandbox/click_me/players/chromaton.rb +0 -52
  175. data/productions/examples/sandbox/click_me/props.rb +0 -8
  176. data/productions/examples/sandbox/click_me/styles.rb +0 -11
  177. data/productions/examples/sandbox/floaters/players/floater.rb +0 -108
  178. data/productions/examples/sandbox/floaters/players/surface.rb +0 -21
  179. data/productions/examples/sandbox/floaters/props.rb +0 -10
  180. data/productions/examples/sandbox/floaters/styles.rb +0 -24
  181. data/productions/examples/sandbox/frameing/players/sandbox.rb +0 -17
  182. data/productions/examples/sandbox/frameing/props.rb +0 -35
  183. data/productions/examples/sandbox/frameing/styles.rb +0 -45
  184. data/productions/examples/sandbox/gradients/players/spinner.rb +0 -20
  185. data/productions/examples/sandbox/gradients/players/teaser.rb +0 -19
  186. data/productions/examples/sandbox/gradients/players/wave.rb +0 -19
  187. data/productions/examples/sandbox/gradients/players/waves.rb +0 -19
  188. data/productions/examples/sandbox/gradients/props.rb +0 -13
  189. data/productions/examples/sandbox/gradients/styles.rb +0 -47
  190. data/productions/examples/sandbox/header.rb +0 -22
  191. data/productions/examples/sandbox/homer/players/homer.rb +0 -24
  192. data/productions/examples/sandbox/homer/props.rb +0 -10
  193. data/productions/examples/sandbox/homer/styles.rb +0 -16
  194. data/productions/examples/sandbox/images/arch.jpg +0 -0
  195. data/productions/examples/sandbox/images/beach.jpg +0 -0
  196. data/productions/examples/sandbox/images/homer.jpg +0 -0
  197. data/productions/examples/sandbox/images/limelight_spotlight.jpg +0 -0
  198. data/productions/examples/sandbox/images/logo.png +0 -0
  199. data/productions/examples/sandbox/images/marilyn.jpg +0 -0
  200. data/productions/examples/sandbox/images/space.png +0 -0
  201. data/productions/examples/sandbox/images_scene/props.rb +0 -36
  202. data/productions/examples/sandbox/images_scene/styles.rb +0 -34
  203. data/productions/examples/sandbox/inputs/players/button_input.rb +0 -48
  204. data/productions/examples/sandbox/inputs/players/check_box_input.rb +0 -40
  205. data/productions/examples/sandbox/inputs/players/combo_box_input.rb +0 -41
  206. data/productions/examples/sandbox/inputs/players/radio_button_input.rb +0 -43
  207. data/productions/examples/sandbox/inputs/players/text_area_input.rb +0 -36
  208. data/productions/examples/sandbox/inputs/players/text_box_input.rb +0 -36
  209. data/productions/examples/sandbox/inputs/props.rb +0 -40
  210. data/productions/examples/sandbox/inputs/styles.rb +0 -39
  211. data/productions/examples/sandbox/kiosk/players/kiosk.rb +0 -39
  212. data/productions/examples/sandbox/kiosk/props.rb +0 -9
  213. data/productions/examples/sandbox/kiosk/styles.rb +0 -37
  214. data/productions/examples/sandbox/players/sandbox.rb +0 -11
  215. data/productions/examples/sandbox/rounded_corners/players/box.rb +0 -11
  216. data/productions/examples/sandbox/rounded_corners/props.rb +0 -22
  217. data/productions/examples/sandbox/rounded_corners/styles.rb +0 -17
  218. data/productions/examples/sandbox/scrolling/players/add_button.rb +0 -19
  219. data/productions/examples/sandbox/scrolling/players/cell.rb +0 -15
  220. data/productions/examples/sandbox/scrolling/props.rb +0 -45
  221. data/productions/examples/sandbox/scrolling/styles.rb +0 -33
  222. data/productions/examples/sandbox/sketching/players/sketchpad.rb +0 -46
  223. data/productions/examples/sandbox/sketching/props.rb +0 -25
  224. data/productions/examples/sandbox/sketching/styles.rb +0 -35
  225. data/productions/examples/sandbox/sounds/bird.au +0 -0
  226. data/productions/examples/sandbox/sounds/cat.au +0 -0
  227. data/productions/examples/sandbox/sounds/cow.au +0 -0
  228. data/productions/examples/sandbox/sounds/dog.au +0 -0
  229. data/productions/examples/sandbox/sounds/donkey.au +0 -0
  230. data/productions/examples/sandbox/sounds/duck.au +0 -0
  231. data/productions/examples/sandbox/sounds/players/clip.rb +0 -10
  232. data/productions/examples/sandbox/sounds/props.rb +0 -10
  233. data/productions/examples/sandbox/sounds/styles.rb +0 -17
  234. data/productions/examples/sandbox/spec/alerts/alerts_spec.rb +0 -16
  235. data/productions/examples/sandbox/stage_handles/players/sizer.rb +0 -38
  236. data/productions/examples/sandbox/stage_handles/props.rb +0 -17
  237. data/productions/examples/sandbox/stage_handles/styles.rb +0 -58
  238. data/productions/examples/sandbox/stages.rb +0 -8
  239. data/productions/examples/sandbox/styles.rb +0 -35
  240. data/productions/examples/sandbox/teaser/players/fader.rb +0 -58
  241. data/productions/examples/sandbox/teaser/props.rb +0 -14
  242. data/productions/examples/sandbox/teaser/styles.rb +0 -21
  243. data/productions/examples/tutorials/tutorial_1/players/sample.rb +0 -11
  244. data/productions/examples/tutorials/tutorial_1/props.rb +0 -9
  245. data/productions/examples/tutorials/tutorial_1/styles.rb +0 -25
  246. data/productions/stage_composer/init.rb +0 -10
  247. data/productions/stage_composer/inspector/players/inspector.rb +0 -80
  248. data/productions/stage_composer/inspector/players/prop_row.rb +0 -12
  249. data/productions/stage_composer/inspector/players/prop_tree.rb +0 -33
  250. data/productions/stage_composer/inspector/players/style_table.rb +0 -12
  251. data/productions/stage_composer/inspector/players/style_value.rb +0 -16
  252. data/productions/stage_composer/inspector/props.rb +0 -19
  253. data/productions/stage_composer/inspector/styles.rb +0 -71
  254. data/productions/stage_composer/lib/init.rb +0 -5
  255. data/productions/stage_composer/lib/limelight/composer/controller.rb +0 -51
  256. data/productions/stage_composer/lib/limelight/composer/lethargy.rb +0 -24
  257. data/productions/stage_composer/production.rb +0 -6
  258. data/productions/stage_composer/stages.rb +0 -15
  259. data/productions/startup/images/logo.png +0 -0
  260. data/productions/startup/images/splash.png +0 -0
  261. data/productions/startup/production.rb +0 -52
  262. data/productions/startup/spec/default_scene/default_scene_spec.rb +0 -16
  263. data/productions/startup/spec/spec_helper.rb +0 -8
  264. data/productions/startup/stages.rb +0 -9
  265. data/productions/startup/styles.rb +0 -15
  266. data/productions/startup/welcome/players/browse_button.rb +0 -10
  267. data/productions/startup/welcome/players/download_button.rb +0 -17
  268. data/productions/startup/welcome/players/sandbox_button.rb +0 -11
  269. data/productions/startup/welcome/props.rb +0 -23
  270. data/productions/startup/welcome/styles.rb +0 -103
  271. data/spec/limelight/builtin/players/button_spec.rb +0 -20
  272. data/spec/limelight/builtin/players/check_box_spec.rb +0 -29
  273. data/spec/limelight/builtin/players/combo_box_spec.rb +0 -29
  274. data/spec/limelight/builtin/players/image_spec.rb +0 -43
  275. data/spec/limelight/builtin/players/password_box_spec.rb +0 -27
  276. data/spec/limelight/builtin/players/radio_button_spec.rb +0 -64
  277. data/spec/limelight/builtin/players/stage_mover_spec.rb +0 -36
  278. data/spec/limelight/builtin/players/stage_sizer_spec.rb +0 -40
  279. data/spec/limelight/builtin/players/text_area_spec.rb +0 -27
  280. data/spec/limelight/builtin/players/text_box_spec.rb +0 -27
  281. data/spec/limelight/builtin/utilities_production/spec_helper.rb +0 -7
  282. data/spec/limelight/builtin/utilities_production/utilities_production_spec.rb +0 -147
  283. data/spec/limelight/casting_director_spec.rb +0 -164
  284. data/spec/limelight/commands/command_spec.rb +0 -26
  285. data/spec/limelight/commands/create_command_spec.rb +0 -108
  286. data/spec/limelight/commands/freeze_command_spec.rb +0 -143
  287. data/spec/limelight/commands/help_command_spec.rb +0 -42
  288. data/spec/limelight/commands/open_command_spec.rb +0 -53
  289. data/spec/limelight/commands/pack_command_spec.rb +0 -43
  290. data/spec/limelight/commands/unpack_command_spec.rb +0 -47
  291. data/spec/limelight/data_spec.rb +0 -36
  292. data/spec/limelight/dsl/prop_builder_spec.rb +0 -245
  293. data/spec/limelight/dsl/stage_builder_spec.rb +0 -90
  294. data/spec/limelight/dsl/styles_builder_spec.rb +0 -194
  295. data/spec/limelight/file_chooser_spec.rb +0 -64
  296. data/spec/limelight/file_filter_spec.rb +0 -29
  297. data/spec/limelight/file_loader_spec.rb +0 -28
  298. data/spec/limelight/gems_spec.rb +0 -92
  299. data/spec/limelight/java_util_spec.rb +0 -37
  300. data/spec/limelight/main_spec.rb +0 -40
  301. data/spec/limelight/paint_action_spec.rb +0 -30
  302. data/spec/limelight/pen_spec.rb +0 -62
  303. data/spec/limelight/producer_spec.rb +0 -246
  304. data/spec/limelight/production_spec.rb +0 -97
  305. data/spec/limelight/prop_spec.rb +0 -431
  306. data/spec/limelight/scene_spec.rb +0 -173
  307. data/spec/limelight/stage_spec.rb +0 -247
  308. data/spec/limelight/string_spec.rb +0 -38
  309. data/spec/limelight/templates/production_templater_spec.rb +0 -66
  310. data/spec/limelight/templates/scene_templater_spec.rb +0 -51
  311. data/spec/limelight/templates/templater_logger_spec.rb +0 -41
  312. data/spec/limelight/templates/templater_spec.rb +0 -107
  313. data/spec/limelight/theater_spec.rb +0 -120
  314. data/spec/limelight/util/downloader_spec.rb +0 -92
  315. data/spec/spec_helper.rb +0 -64
@@ -1,97 +0,0 @@
1
- #- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
2
- #- Limelight and all included source files are distributed under terms of the GNU LGPL.
3
-
4
- require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
5
- require 'limelight/production'
6
-
7
- describe Limelight::Production, "Instance methods" do
8
-
9
- before(:each) do
10
- @producer = mock("producer")
11
- @theater = mock("theater")
12
- @studio = Limelight::Studio.install
13
- @production = Limelight::Production.new("/tmp")
14
- @production.producer = @producer
15
- @production.theater = @theater
16
- end
17
-
18
- it "should know it path, producer, and theater" do
19
- @production.producer.should == @producer
20
- @production.theater.should == @theater
21
- @production.path.should == "/tmp"
22
- end
23
-
24
- it "should get it's name from the file" do
25
- Limelight::Production.new("/tmp").name.should == "tmp"
26
- Limelight::Production.new("/Somewhere/over/the/rainbow").name.should == "rainbow"
27
- Limelight::Production.new("my_name/is/kid").name.should == "kid"
28
- end
29
-
30
- it "should know its init file" do
31
- @production.init_file.should == "/tmp/init.rb"
32
- end
33
-
34
- it "should know its stages file" do
35
- @production.stages_file.should == "/tmp/stages.rb"
36
- end
37
-
38
- it "should know its styles file" do
39
- @production.styles_file.should == "/tmp/styles.rb"
40
- end
41
-
42
- it "should know its gems directory" do
43
- @production.gems_directory.should == "/tmp/__resources/gems/gems"
44
- end
45
-
46
- it "should know its gems root" do
47
- @production.gems_root.should == "/tmp/__resources/gems"
48
- end
49
-
50
- it "should provide paths to it's scenes" do
51
- @production.scene_directory("one").should == "/tmp/one"
52
- @production.scene_directory("two").should == "/tmp/two"
53
- @production.scene_directory(:root).should == "/tmp"
54
- end
55
-
56
- it "should allow close by default" do
57
- @production.allow_close?.should == true
58
- end
59
-
60
- it "should tell producer to do the closing" do
61
- @producer.should_receive(:close)
62
-
63
- @production.close
64
- end
65
-
66
- it "should publish on drb" do
67
- @producer.should_receive(:publish_production_on_drb).with(9000)
68
- @production.publish_on_drb(9000)
69
- end
70
-
71
- it "should handle empty theater" do
72
- @production.should_receive(:allow_close?).at_least(1).and_return(true)
73
- @production.should_receive(:close)
74
-
75
- @production.theater_empty!
76
- end
77
-
78
- describe "with files" do
79
-
80
- after(:each) do
81
- TestDir.clean
82
- end
83
-
84
- it "should load it's root styles" do
85
- TestDir.create_file("test_prod/styles.rb", "a_style { width 100; height 200 }")
86
- @production = Limelight::Production.new( TestDir.path("test_prod"))
87
-
88
- styles = @production.root_styles
89
- styles["a_style"].width.should == "100"
90
- styles["a_style"].height.should == "200"
91
- @production.root_styles.should be(styles)
92
- end
93
- end
94
-
95
- end
96
-
97
-
@@ -1,431 +0,0 @@
1
- #- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
2
- #- Limelight and all included source files are distributed under terms of the GNU LGPL.
3
-
4
- require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
5
- require 'limelight/prop'
6
- require 'limelight/dsl/styles_builder'
7
- require 'limelight/scene'
8
- require 'limelight/production'
9
-
10
- describe Limelight::Prop do
11
-
12
- before(:each) do
13
- @casting_director = mock("casting_director", :fill_cast => nil)
14
- @scene = Limelight::Scene.new(:casting_director => @casting_director)
15
- @prop = Limelight::Prop.new(:id => "root", :name => "root_class")
16
- @scene.illuminate
17
- @scene << @prop
18
- end
19
-
20
- it "should set the childs parent before adding the child to the parent" do
21
- # This is important because a child must be illuminated before a parent knows about it
22
- child = Limelight::Prop.new(:id => "child", :name => "child_class")
23
-
24
- child.should_receive(:set_parent) do
25
- @prop.children.size.should == 0
26
- end
27
- @prop.add(child)
28
-
29
- @prop.children.size.should == 1
30
- end
31
-
32
- module TestPlayer
33
- class << self
34
- attr_reader :extended_prop
35
-
36
- def extended(prop)
37
- @extended_prop = (prop)
38
- end
39
- end
40
-
41
- def test_method
42
- end
43
-
44
- attr_reader :was_casted
45
- def casted
46
- @was_casted = true
47
- end
48
- end
49
-
50
- it "should extend added controllers and invoke the extended hook" do
51
- @prop.include_player(TestPlayer)
52
-
53
- TestPlayer.extended_prop.should == @prop
54
- @prop.respond_to?(:test_method).should == true
55
- end
56
-
57
- it "should call the player's casted method" do
58
- @prop.include_player(TestPlayer)
59
-
60
- @prop.was_casted.should == true
61
- end
62
-
63
- it "should have an id" do
64
- @prop.illuminate
65
- @prop.id.should == "root"
66
- end
67
-
68
- it "not start out being illuminated" do
69
- prop = Limelight::Prop.new(nil)
70
-
71
- prop.should_not be_illuminated
72
- end
73
-
74
-
75
- def build_prop_tree
76
- @child1 = Limelight::Prop.new(:id => "child1", :name => "child_class")
77
- @child2 = Limelight::Prop.new(:id => "child2", :name => "child_class")
78
- @grand_child1 = Limelight::Prop.new(:id => "grand_child1", :name => "grand_child_class")
79
- @grand_child2 = Limelight::Prop.new(:id => "grand_child2", :name => "grand_child_class")
80
- @grand_child3 = Limelight::Prop.new(:id => "grand_child3", :name => "grand_child_class")
81
- @grand_child4 = Limelight::Prop.new(:id => "grand_child4", :name => "grand_child_class")
82
-
83
- @prop << @child1 << @child2
84
- @child1 << @grand_child1 << @grand_child2
85
- @child2 << @grand_child3 << @grand_child4
86
- end
87
-
88
- it "should find children by id" do
89
- build_prop_tree
90
- @scene.find("blah").should == nil
91
- @scene.find("root").should be(@prop)
92
- @scene.find("child1").should be(@child1)
93
- @scene.find("child2").should be(@child2)
94
- @scene.find("grand_child1").should be(@grand_child1)
95
- @scene.find("grand_child2").should be(@grand_child2)
96
- @scene.find("grand_child3").should be(@grand_child3)
97
- @scene.find("grand_child4").should be(@grand_child4)
98
- end
99
-
100
- it "should find children by name" do
101
- build_prop_tree
102
- @prop.find_by_name("root_class").should == [@prop]
103
- @prop.find_by_name("child_class").should == [@child1, @child2]
104
- @prop.find_by_name("grand_child_class").should == [@grand_child1, @grand_child2, @grand_child3, @grand_child4]
105
- end
106
-
107
- it "should get and set text" do
108
- @prop.text = "blah"
109
- @prop.text.should == "blah"
110
- @prop.text = 123
111
- @prop.text.should == "123"
112
- @prop.text = nil
113
- @prop.text.should == ""
114
- end
115
-
116
- it "should have controllers" do
117
- prop = Limelight::Prop.new(:players => "abc, xyz")
118
- @scene << prop
119
- prop.players.should == "abc, xyz"
120
- end
121
-
122
- it "should get populated through constructor" do
123
- prop = Limelight::Prop.new(:name => "my_name", :id => "123", :players => "a, b, c")
124
- @scene << prop
125
-
126
- prop.name.should == "my_name"
127
- prop.id.should == "123"
128
- end
129
-
130
- it "should populate styles through constructor" do
131
- prop = Limelight::Prop.new(:width => "100", :text_color => "white", :background_image => "apple.jpg")
132
- @scene << prop
133
-
134
- prop.style.width.should == "100"
135
- prop.style.text_color.should == "#ffffffff"
136
- prop.style.background_image.should == "apple.jpg"
137
- end
138
-
139
- it "should define event through constructor using a string" do
140
- prop = Limelight::Prop.new(:on_mouse_entered => "return event")
141
- @scene << prop
142
-
143
- value = prop.mouse_entered("my event")
144
-
145
- value.should == "my event"
146
- end
147
-
148
- it "should pass scene on to children" do
149
- child = Limelight::Prop.new(:name => "child")
150
-
151
- @prop.parent.should == @scene
152
- @prop.scene.should == @scene
153
-
154
- @prop << child
155
- child.parent.should == @prop
156
- child.scene.should == @scene
157
- end
158
-
159
- it "should set styles upon adding to parent" do
160
- styles = Limelight::build_styles { child { width 123 } }
161
- scene = Limelight::Scene.new(:casting_director => @casting_director, :styles_hash => styles)
162
- prop = Limelight::Prop.new(:name => "child")
163
- scene.illuminate
164
-
165
- scene << prop
166
-
167
- prop.style.width.should == "123"
168
- end
169
-
170
- it "should set styles upon adding to parent" do
171
- prop = Limelight::Prop.new(:name => "child")
172
-
173
- @casting_director.should_receive(:fill_cast).with(prop)
174
-
175
- @scene << prop
176
- end
177
-
178
- it "should use populate data included by players" do
179
- prop = Limelight::Prop.new(:name => "child", :foo => "bar")
180
- @casting_director.should_receive(:fill_cast).with(prop) do
181
- prop.instance_eval "def foo=(value); @foo = value; end; def foo; return @foo; end;"
182
- end
183
-
184
- @scene << prop
185
-
186
- prop.foo.should == "bar"
187
- end
188
-
189
- it "should set styles upon illuminating, and convert them to strings" do
190
- prop = Limelight::Prop.new(:width => "100", :height => 200, :horizontal_alignment => :center)
191
-
192
- @scene << prop
193
-
194
- prop.style.width.should == "100"
195
- prop.style.height.should == "200"
196
- prop.style.horizontal_alignment.should == "center"
197
- end
198
-
199
- it "should add additional styles listed in options" do
200
- style1 = Limelight::Styles::RichStyle.new()
201
- style2 = Limelight::Styles::RichStyle.new()
202
- style3 = Limelight::Styles::RichStyle.new()
203
- @scene.styles.merge!("one" => style1, "two" => style2, "three" => style3)
204
-
205
- prop = Limelight::Prop.new(:name => "one", :styles => "two three")
206
- @scene << prop
207
-
208
- prop.style.should have_extension(style1)
209
- prop.style.should have_extension(style2)
210
- prop.style.should have_extension(style3)
211
- end
212
-
213
- it "should add additional styles and their hover part" do
214
- style1 = Limelight::Styles::RichStyle.new()
215
- style2 = Limelight::Styles::RichStyle.new()
216
- style3 = Limelight::Styles::RichStyle.new()
217
- style4 = Limelight::Styles::RichStyle.new()
218
- @scene.styles.merge!("one" => style1, "one.hover" => style2, "two" => style3, "two.hover" => style4)
219
-
220
- prop = Limelight::Prop.new(:name => "one", :styles => "two three")
221
- @scene << prop
222
-
223
- prop.style.should have_extension(style1)
224
- prop.style.should have_extension(style3)
225
- prop.hover_style.should == style2
226
- prop.hover_style.should have_extension(style4)
227
- end
228
-
229
- it "should be able to remove children" do
230
- child1 = Limelight::Prop.new()
231
- child2 = Limelight::Prop.new()
232
- child3 = Limelight::Prop.new()
233
- @prop << child1 << child2 << child3
234
-
235
- @prop.remove(child2)
236
-
237
- @prop.children.length.should == 2
238
- @prop.children.include?(child2).should == false
239
- @prop.panel.children.length.should == 2
240
- @prop.panel.children.include?(child2.panel).should == false
241
- end
242
-
243
- it "should make dimensions accessible" do
244
- @prop.panel.should_receive(:get_bounding_box).and_return("whole area")
245
- @prop.panel.should_receive(:get_box_inside_borders).and_return("area inside borders")
246
-
247
- @prop.area.should == "whole area"
248
- @prop.bordered_area.should == "area inside borders"
249
- end
250
-
251
- it "should give you a pen" do
252
- graphics = mock("graphics", :setColor => nil, :setStroke => nil, :setRenderingHint => nil)
253
- @prop.panel.should_receive(:getGraphics).and_return(graphics)
254
-
255
- pen = @prop.pen
256
-
257
- pen.context.should be(graphics)
258
- end
259
-
260
- it "should set after paint action" do
261
- block = Proc.new { |pen| }
262
-
263
- @prop.after_painting &block
264
-
265
- action = @prop.panel.after_paint_action
266
- action.should_not == nil
267
- action.class.should == Limelight::PaintAction
268
- action.block.should == block
269
- end
270
-
271
- it "should clear after paint action" do
272
- @prop.after_painting { |pen| puts "blah" }
273
-
274
- @prop.after_painting nil
275
-
276
- @prop.panel.after_paint_action.should == nil
277
- end
278
-
279
- it "should build children" do
280
- @prop.scene.production = Limelight::Production.new("some/path")
281
- @prop.build do
282
- one
283
- two do
284
- three
285
- end
286
- end
287
-
288
- @prop.children.length.should == 2
289
- @prop.children[0].name.should == "one"
290
- @prop.children[1].name.should == "two"
291
- @prop.children[1].children.length.should == 1
292
- @prop.children[1].children[0].name.should == "three"
293
- end
294
-
295
- it "should build children with options" do
296
- @prop.scene.production = Limelight::Production.new("some/path")
297
- @prop.build(:one_val => "hello") do
298
- one :text => @one_val
299
- two do
300
- three
301
- end
302
-
303
- end
304
-
305
- @prop.children.length.should == 2
306
- @prop.children[0].name.should == "one"
307
- @prop.children[0].text.should == "hello"
308
- @prop.children[1].name.should == "two"
309
- @prop.children[1].children.length.should == 1
310
- @prop.children[1].children[0].name.should == "three"
311
- end
312
-
313
- it "should play sound" do
314
- production = Limelight::Production.new("/blah")
315
- @scene.production = production
316
- production.root.should_receive(:path_to).with("some.au").and_return("/full/path/to/some.au");
317
- @prop.panel.should_receive(:play_sound).with("/full/path/to/some.au");
318
-
319
- @prop.play_sound("some.au")
320
- end
321
-
322
- it "should remember when it has been illuminated" do
323
- prop = Limelight::Prop.new
324
- prop.illuminated?.should == false
325
-
326
- @scene << prop
327
-
328
- prop.illuminated?.should == true;
329
- end
330
-
331
- #TODO remove_all should not remove scrollbars
332
-
333
- describe "events" do
334
-
335
- it "should not accept mouse_clicked events to start with" do
336
- @prop.accepts_mouse_clicked().should == false
337
- @prop.instance_eval("def mouse_clicked(e); puts 'hi'; end;")
338
- @prop.accepts_mouse_clicked().should == true
339
- end
340
-
341
- it "should not accept mouse_pressed events to start with" do
342
- @prop.accepts_mouse_pressed().should == false
343
- @prop.instance_eval("def mouse_pressed(e); puts 'hi'; end;")
344
- @prop.accepts_mouse_pressed().should == true
345
- end
346
-
347
- it "should not accept mouse_released events to start with" do
348
- @prop.accepts_mouse_released().should == false
349
- @prop.instance_eval("def mouse_released(e); puts 'hi'; end;")
350
- @prop.accepts_mouse_released().should == true
351
- end
352
-
353
- end
354
-
355
- describe "id" do
356
-
357
- it "should index its id when illuminated" do
358
- @scene.find("root").should == @prop
359
- end
360
-
361
- it "should unindex ids when removing children" do
362
- child = Limelight::Prop.new(:id => "child")
363
- @prop << child
364
- @scene.find("child").should == child
365
-
366
- @prop.remove(child)
367
-
368
- @scene.find("child").should == nil
369
- end
370
-
371
- it "should unindex ids when removing all children" do
372
- child1 = Limelight::Prop.new(:id => "child1")
373
- child2 = Limelight::Prop.new(:id => "child2")
374
- @prop << child1 << child2
375
-
376
- @prop.remove_all
377
-
378
- @scene.find("child1").should == nil
379
- @scene.find("child2").should == nil
380
- end
381
-
382
- it "should unindex grandchildren on remove all" do
383
- grandchild = Limelight::Prop.new(:id => "grandchild")
384
- child = Limelight::Prop.new(:id => "child")
385
- child << grandchild
386
- @prop << child
387
-
388
- @prop.remove_all
389
-
390
- @scene.find("child").should == nil
391
- @scene.find("grandchild").should == nil
392
- end
393
-
394
- it "should index it's id when being re-added to the prop tree" do
395
- child = Limelight::Prop.new(:id => "child")
396
- @prop << child
397
- @prop.remove(child)
398
- @prop << child
399
-
400
- @scene.find("child").should == child
401
- end
402
-
403
- it "should traverse and index children when being re-added to the prop tree" do
404
- grandchild = Limelight::Prop.new(:id => "grandchild")
405
- child = Limelight::Prop.new(:id => "child")
406
- child << grandchild
407
- @prop << child
408
- @prop.remove(child)
409
- @prop << child
410
-
411
- @scene.find("grandchild").should == grandchild
412
- end
413
-
414
-
415
- end
416
-
417
- describe "launch" do
418
-
419
- it "should launch a url" do
420
- os = mock("Limelight OS")
421
- instance = mock("Limelight OS instance", :os => os)
422
- Java::limelight.Context.stub!(:instance).and_return(instance)
423
-
424
- os.should_receive(:launch).with("http://www.google.com")
425
-
426
- @prop.launch("http://www.google.com")
427
- end
428
-
429
- end
430
-
431
- end