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,39 +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
- module Limelight
5
- module Templates
6
-
7
- # Templaters uses this class to log activity.
8
- #
9
- class TemplaterLogger
10
-
11
- # An accessor to the output IO. Defaults to STDOUT
12
- #
13
- attr_accessor :output
14
-
15
- def initialize
16
- @output = STDOUT
17
- end
18
-
19
- def creating_directory(name)
20
- @output.puts "\tcreating directory: #{name}"
21
- end
22
-
23
- def creating_file(name)
24
- @output.puts "\tcreating file: #{name}"
25
- end
26
-
27
- def file_already_exists(name)
28
- @output.puts "\tfile already exists: #{name}"
29
- end
30
-
31
- def log(message, name)
32
- spaces = 21 - message.length - 1
33
- @output.puts "\t#{message}:#{' '*spaces}#{name}"
34
- end
35
-
36
- end
37
-
38
- end
39
- end
@@ -1,109 +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 'limelight/limelight_exception'
5
- require 'thread'
6
-
7
- module Limelight
8
-
9
- # A Theater represents a group of Stages. Productions require a Theater in which to open.
10
- #
11
- class Theater
12
-
13
- include UI::Api::Theater
14
-
15
- # Returns the theater's active stage. i.e. the stage most recently used.
16
- #
17
- attr_reader :active_stage
18
-
19
- def initialize(production)
20
- @production = production
21
- @stages = {}
22
- @mutex = Mutex.new
23
- end
24
-
25
- # Returns an Array of Stages that belong to this Theater.
26
- #
27
- def stages
28
- return @mutex.synchronize { @stages.values }
29
- end
30
-
31
- # Returns true if the theater has at least one stage
32
- #
33
- def has_stages?
34
- return stages.length > 0
35
- end
36
-
37
- # Returns the Stage with the spcified name, nil if none exist with the specified name.
38
- #
39
- def [](stage_name)
40
- return @mutex.synchronize { @stages[stage_name] }
41
- end
42
-
43
- # Adds a Stage to the Theater. Raises an exception is the name of the Stage is duplicated.
44
- #
45
- def add_stage(name, options = {})
46
- raise LimelightException.new("Duplicate stage name: '#{name}'") if @stages[name]
47
- stage = build_stage(name, options)
48
- @mutex.synchronize { @stages[name] = stage }
49
- return stage
50
- end
51
-
52
- # Invoked when a stage, blonging to this theater becomes active. Lets the Theater know which stage
53
- # has the limelight (currently active). Only 1 stage may be active at a time.
54
- #
55
- def stage_activated(stage)
56
- @active_stage = stage
57
- end
58
-
59
- # Invoked when a stage, belonging to this theater, loose it's status as the active stage. The active_stage is
60
- # cleared. Only 1 stage may be active at a time.
61
- #
62
- def stage_deactivated(stage)
63
- @active_stage = nil
64
- @production.theater_empty! if !any_visible_stages?
65
- end
66
-
67
- # Removes the stage from this theater.
68
- #
69
- def stage_closed(stage)
70
- @mutex.synchronize { @stages.delete(stage.name) }
71
- @active_stage = nil if @active_stage == stage
72
- @production.theater_empty! if !any_stages? || !any_visible_stages?
73
- end
74
-
75
- # If no Stages are added, the Theater will provide a default Stage named "Limelight".
76
- #
77
- def default_stage
78
- add_stage("Limelight") if self["Limelight"].nil?
79
- return self["Limelight"]
80
- end
81
-
82
- # Close this theater. All stages in this theater will be closed and the active_stage will be nil'ed.
83
- #
84
- def close
85
- stages_to_close = @mutex.synchronize { @stages.values.dup }
86
- stages_to_close.each { |stage| stage.close }
87
- @mutex.synchronize { @stages.clear }
88
- @active_stage = nil
89
- end
90
-
91
- protected #############################################
92
-
93
- def build_stage(name, options)
94
- return Limelight::Stage.new(self, name, options)
95
- end
96
-
97
- private ###############################################
98
-
99
- def any_stages?
100
- return @mutex.synchronize { @stages.empty? }
101
- end
102
-
103
- def any_visible_stages?
104
- return @mutex.synchronize { @stages.values.any? { |s| s.visible? } }
105
- end
106
-
107
- end
108
-
109
- end
@@ -1,115 +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 'limelight/data'
5
- require 'limelight/limelight_exception'
6
- require 'uri'
7
- require 'ftools'
8
- require 'net/http'
9
- require 'net/https'
10
-
11
- module Limelight
12
- module Util
13
-
14
- class Downloader
15
-
16
- def self.download(resource)
17
- new.download(resource)
18
- end
19
-
20
- def initialize
21
- Data.establish_data_dirs
22
- end
23
-
24
- def download(resource)
25
- uri = URI.parse(resource)
26
- case uri.scheme
27
- when nil, "file"
28
- download_file(uri)
29
- when 'http', 'https'
30
- download_http(uri)
31
- else
32
- raise LimelightException.new("Download failed. Unhandled URI scheme: #{uri.scheme}")
33
- end
34
- end
35
-
36
- def download_file(uri)
37
- raise LimelightException.new("Download failed. Not found: #{uri.path}") if !File.exists?(uri.path)
38
- filename = File.basename(uri.path)
39
- destination = find_unused_downloads_filename(filename)
40
- File.copy(uri.path, destination)
41
- return destination
42
- end
43
-
44
- def download_http(uri)
45
- saved_filename = nil
46
-
47
- begin
48
- saved_filename = attempt_http_download(uri)
49
- rescue Exception => e
50
- raise LimelightException.new(e)
51
- end
52
-
53
- return saved_filename
54
- end
55
-
56
-
57
- private #############################################
58
-
59
- def find_unused_downloads_filename(filename)
60
- default = File.join(Data.downloads_dir, filename)
61
- extension = File.extname(default)
62
- filename_without_extension = default[0...(-1 * extension.length)]
63
- attempt = default
64
- postfix = 2
65
- while (File.exists?(attempt))
66
- attempt = "#{filename_without_extension}_#{postfix}#{extension}"
67
- postfix += 1
68
- end
69
- return attempt
70
- end
71
-
72
- def calculate_filename(uri, response)
73
- content_disposition = response['content-disposition']
74
- if content_disposition
75
- match = /filename="(.*)"/.match(content_disposition)
76
- return match[1] if match
77
- end
78
- return File.basename(uri.path)
79
- end
80
-
81
- def save_to_file(uri, response)
82
- filename = calculate_filename(uri, response)
83
- destination = find_unused_downloads_filename(filename)
84
- file = File.open(destination, 'w')
85
-
86
- begin
87
- response.read_body do |segment|
88
- file.write(segment)
89
- end
90
- ensure
91
- file.close
92
- end
93
-
94
- return destination
95
- end
96
-
97
- def attempt_http_download(uri, attempts = 5)
98
- http = Net::HTTP.new(uri.host, uri.port)
99
- http.use_ssl = true if uri.port.to_s == "443"
100
- http.request_get(uri.path) do |response|
101
- case response
102
- when Net::HTTPSuccess
103
- return save_to_file(uri, response)
104
- when Net::HTTPRedirection
105
- return attempt_http_download(URI.parse(response['location']), attempts - 1)
106
- else
107
- raise LimelightException.new("Download failed. #{response.code}: #{response.message}")
108
- end
109
- end
110
- end
111
-
112
- end
113
-
114
- end
115
- end
@@ -1,20 +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
- module Limelight
5
- module VERSION #:nodoc:
6
- unless defined? MAJOR
7
- MAJOR = 0
8
- MINOR = 5
9
- TINY = 5
10
-
11
- STRING = [MAJOR, MINOR, TINY].join('.')
12
- TAG = "REL_" + [MAJOR, MINOR, TINY].join('_')
13
-
14
- NAME = "Limelight"
15
- URL = "http://limelight.8thlight.com"
16
-
17
- DESCRIPTION = "#{NAME}-#{STRING} - Limelight\n#{URL}"
18
- end
19
- end
20
- end
@@ -1,24 +0,0 @@
1
- You may ask, "Where does the name '8th Light' come from?" To answer that, let's first discuss the foundational principles held by 8th Light.
2
-
3
- <sub_title>Craftsmanship</sub_title>
4
- The folks at 8th Light consider themselves as software craftsmen rather than software engineers or software scientists. Clearly, engineering skills and scientific understanding are required to write good software. It is the application of these skills in combination with a pragmatic attitude and a sense of quality that define craftsmanship.
5
-
6
- As craftsmen, our style of software development differs from traditional styles of software development. For one, we maintain close collaboration with the customers or end users of the systems we build. We are continually refining and improving every bit of the code base as the system evolves. Every member of our team works together in an open and synergistic workspace. To ensure a well designed system with almost no defects we drive development though tests. Feedback during development is extremely valuable which is why we work in iterations delivering working functionality regularly.
7
-
8
- Perhaps the most important aspect of our work is pride. We build software that we are proud to have built and that our clients are proud to have.
9
-
10
- <sub_title>Apprenticeship</sub_title>
11
- It has been known for decades that the best way to become a good software developer is to learn from a good software developer. This is in line with the craftsmanship model. In any craft, newcomers start out as apprentices. 8th Light hires only apprentices.
12
-
13
- This serves two purposes. The first is that of maintaining quality. Starting out as an apprentice allows newcomers to focus on nothing but learning as much as possible by working with senior 8th Light developers. When an apprentice concludes his apprenticeship he is able to build quality software.
14
-
15
- The second reason is uniformity and consistency. Studies have shown that good developers are consistent and uniform in their style of coding. Every good developer has a different style but each one is consistent with themself. Inconsistencies in a software system add complexity and decrease productivity. Therefore, 8th Light strives to build development teams that practice the same style of development. In this way our teams remain productive and our software remains simple.
16
-
17
- <sub_title>8th Light</sub_title>
18
- The values described above are not unlike those of martial arts. The name '8th Light' holds special meaning to Micah (the company's founder) who trained in the Eighth Light school of Jujitsu called Hakkoryu. 8th Light was chosen as a name for this company because we share much of the spirit and values of martial arts, particularly Hakkoryu Jujitsu.
19
-
20
- "The name "Hakkoryu" is based on a philosophical Japanese view of the color spectrum as being divided into nine bands of light. The eighth shade is infrared, which is invisible to the naked eye but extremely powerful, as are Hakkoryu techniques. The number eight in Japan also has associated with it numerous philosophical and religious meanings that are beyond the scope of this brief introduction."
21
-
22
- - hakkoryu.com
23
-
24
- Coincidentally, the number eight also has special meaning in the world of software.
@@ -1,11 +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
- __ :name => "page"
5
- main_column do
6
- __install "menu.rb"
7
- about_tagline :text => "By the work one knows the workmen.\nJean De La Fontaine"
8
- section_title :text => "About Us"
9
- section_body :text => __loader__.read("about/about.txt")
10
- __install "footer.rb"
11
- end
@@ -1,2 +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.
@@ -1,6 +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
- footer do
5
- copyright :text => "8th Light, Inc. Copyright 2007"
6
- end
@@ -1,28 +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
- __ :name => "page"
5
- main_column do
6
- __install "menu.rb"
7
- tag_line
8
- spot_light do
9
- spot_light_title :text => "In the spotlight"
10
- book_news do
11
- book_news_img
12
- book_news_text :text => "Micah coathors Agile Principles, Patterns, and Practices in C# with Unclebob."
13
- end
14
- sm_news do
15
- sm_news_img
16
- sm_news_text :text => "Check out the Statemachine Ruby Gem and Rails plugin."
17
- end
18
- end
19
- news do
20
- news_title :text => "Recent News"
21
- new_item :text => "07.07 8th Light welcomes Doug Bradbury to the team!"
22
- new_item :text => "07.07 8th Light doing Agile Rails Fest at Agile Conference in August."
23
- new_item :text => "02.07 Eric Smith Joins the 8th Light team!"
24
- new_item :text => "01.07 Jim Suchy Joins the 8th Light team!"
25
- new_item :text => "01.07 Micah Martin contributes article on FitNesse to the just released \"Windows Developer Power Tools\" book."
26
- end
27
- __install "footer.rb"
28
- end
@@ -1,2 +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.
@@ -1,11 +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
- header
5
- menu do
6
- link :on_mouse_clicked => "scene.load('home')", :text => "Home"
7
- link :on_mouse_clicked => "scene.load('services')", :text => "Services"
8
- link :on_mouse_clicked => "scene.load('about')", :text => "About"
9
- link :text => "Blog"
10
- link :text => "Contact"
11
- end
@@ -1,11 +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
- __ :name => "page"
5
- main_column do
6
- __install "menu.rb"
7
- services_tagline :text => "Pleasure in the job puts perfection in the work.\n\tAristotle"
8
- section_title :text => "services"
9
- section_body :text => __loader__.read("services/services.txt")
10
- __install "footer.rb"
11
- end
@@ -1,8 +0,0 @@
1
- At 8th Light, we use a unique process of actuating ideas, accepting the best and most efficient practices, and synthesizing those practices into an effectual and coherent method. Communication, quality, and innovation drive the decisions in this process, and the end goal is to produce impressive software for clients according to their specifications.
2
-
3
- <sub_title>Values</sub_title>
4
- Communication is a priority. We believe that working closely with the customer is the only way to ensure that a product is created in sync with both the customer’s vision and their desired outcome. Daily interactions with the customer are preferred, as is working on site. We create with the understanding that each finished product is the result of its own specific evolution, and that the software being written should constantly be subject to modifications of concept and conclusion. Each iteration produces more business value, as with each brush stroke the image on a canvas is further disclosed. At 8th Light, we employ a creative process that highlights cooperation and consideration, and we appreciate that this practice is the difference between good software and great software.
5
-
6
- The quality of code in an application indicates many things; high-quality code makes your product easier to extend and maintain, as changes to the code are embraced by the framework and design. Moving fast becomes easier, and the customer is able to stay ahead of their competitors as well as adapt to changes quickly and efficiently.
7
-
8
- Commitment, creativity, and innovation form the bridge between discipline and art at 8th Light. A customer once expressed to our team, “we hired you as problem solvers,” and this focus on innovation—the idea that problems extend beyond the technical realm of computer programming—is what continues to drive our professional attitude. We believe that innovation in software happens when one dives into the business domain, imaginatively solving those problems first, and then figures out how to write code after what they have learned there. When software developers allow themselves to think in an open and inspired manner, that originality and complexity of thought enables them to meaningfully connect the dots between business and implementation.
@@ -1,2 +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.
@@ -1,8 +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
- stage "8th Light" do
5
- default_scene "home"
6
- size [900, 800]
7
- location [300, 100]
8
- end