limelight 0.5.5-java → 0.6.14-java

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 (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,168 +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 'optparse'
5
-
6
- module Limelight
7
- module Commands
8
-
9
- LISTING = {}
10
-
11
- class << self
12
-
13
- def [](name) #:nodoc:
14
- name = "help" if name.to_s.empty?
15
- if LISTING[name].nil?
16
- load_command(name)
17
- end
18
-
19
- return LISTING[name]
20
- end
21
-
22
- def load_command(name)
23
- begin
24
- name = name.gsub('-', '')
25
- require "limelight/commands/#{name}_command"
26
- rescue LoadError => e
27
- end
28
- end
29
-
30
- def output=(value) #:nodoc:
31
- @output = value
32
- end
33
-
34
- def output #:nodoc:
35
- return @output || $stdout
36
- end
37
-
38
- end
39
-
40
- # The base class for all limelight commands. The following is a list of them all.
41
- #
42
- # Usage: limelight <command> [options] [params]
43
- # commands:
44
- # create Creates the directories and files for a production and/or scene.
45
- # freeze freeze a gem into a production.
46
- # open Open a limelight production.
47
- # pack Pack a limelight production into a .llp file.
48
- #
49
- class Command
50
-
51
- class << self
52
-
53
- attr_accessor :alias
54
-
55
- # Sets the alias for the derivative command and installs it in the command listing. All derivative much
56
- # call this method exactly once.
57
- #
58
- def install_as(name)
59
- raise "Command already installed: #{name}." if LISTING[name]
60
- self.alias = name
61
- LISTING[name] = self
62
- end
63
-
64
- # Abstract class level methof that returns a string description of the command. Derivatives should
65
- # override this class level method.
66
- #
67
- def description
68
- return "Default Command description"
69
- end
70
-
71
- end
72
-
73
- # Flag. The backtrace on parse errors will be printed if true.
74
- #
75
- attr_accessor :print_backtrace
76
-
77
- # Runs the command. This is TemplateMethod. It will first parse the arguments, then require files, and finally
78
- # process the command. Derivative should not override this method.
79
- #
80
- def run(args)
81
- parse(args)
82
- do_requires
83
- begin
84
- process if !@has_parse_error
85
- rescue SystemExit
86
- #okay
87
- end
88
- end
89
-
90
- # Parse the arguments. All options will be parsed first, then parse_remainder will be called on
91
- # remaining args. Derivative should not override this method.
92
- #
93
- def parse(args)
94
- begin
95
- remainder = options_spec.parse(args)
96
- parse_remainder(remainder)
97
- rescue SystemExit => e
98
- raise e
99
- rescue Exception => e
100
- @has_parse_error = true
101
- parse_error e
102
- end
103
- end
104
-
105
- protected ###########################################
106
-
107
- def puts(*args) #:nodoc:
108
- Commands.output.puts(*args)
109
- end
110
-
111
- # Prints an exception that occurs while parsing the arguments. The usages summary will follow.
112
- #
113
- def parse_error(exception = nil)
114
- if exception
115
- puts ""
116
- puts "!!! #{exception}"
117
- puts exception.backtrace if @print_backtrace
118
- end
119
- usage
120
- exit -1
121
- end
122
-
123
- # Prints the usage summary for a command.
124
- #
125
- def usage
126
- puts ""
127
- puts "Usage: limelight #{self.class.alias} #{parameter_description}"
128
- puts " #{self.class.description}"
129
- puts " options:"
130
- puts options_spec.summarize
131
- end
132
-
133
- # Retreives the OptionParser instance for this command. It will create it if it doesn't exist.
134
- #
135
- def options_spec
136
- if @options_spec.nil?
137
- @options_spec = OptionParser.new
138
- @options_spec.on("-h", "--help", "Prints this usage summary.") { usage; exit 0 }
139
- build_options(@options_spec)
140
- end
141
- return @options_spec
142
- end
143
-
144
- # Abstract method to require any files needed for processing the command. Derivative should override this
145
- # method if they need to require any files.
146
- #
147
- def do_requires
148
- #override me
149
- end
150
-
151
- # Abstract method to define the command line options in the OptionParser. Derivative should override
152
- # this method if they offer command line options
153
- #
154
- def build_options(spec)
155
- #override me
156
- end
157
-
158
- # Abstract method to parse command line paramters. Parameter are those command line arguments listed after
159
- # the options. Derivatives should override this method they take command line paramters.
160
- #
161
- def parse_remainder(args)
162
- #override me
163
- end
164
-
165
- end
166
-
167
- end
168
- end
@@ -1,98 +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/commands/command'
5
-
6
- module Limelight
7
- module Commands
8
-
9
- # See the following usages summary
10
- #
11
- # Usage: limelight create [options] <production|scene> <path>
12
- # Creates the directories and files for a production and/or scene.
13
- # options:
14
- # -h, --help Prints this usage summary.
15
- # -s, --scene=<name> Name of scene when creating a production. Defaults to 'default_scene'.
16
- # -p, --production_path=<path> Path of production to contain scene. Defaults to '.'.
17
- # -S, --spec_path=<path> Path to spec directory, relative to <production_path>. Defaults to 'spec'.
18
- #
19
- # Assume you wanted to create a new production named "love_story" containing two scenes, "midnight_romance" and
20
- # "happily_ever_after". The following commands would created all the needed files.
21
- #
22
- # $ jruby -S limelight create -s midnight_romance production love_story
23
- # $ jruby -S limelight create -p love_story scene happily_ever_after
24
- #
25
- class CreateCommand < Command
26
-
27
- install_as "create"
28
-
29
- def self.description #:nodoc:
30
- return "Creates the directories and files for a production and/or scene."
31
- end
32
-
33
- attr_reader :template_type, :scene_name, :production_path, :spec_path #:nodoc:
34
-
35
- protected ###########################################
36
-
37
- def initialize #:nodoc:
38
- @scene_name = "default_scene"
39
- @production_path = "."
40
- end
41
-
42
- def process #:nodoc:
43
- create_method = "create_#{@template_type}".to_s
44
- self.send create_method
45
- end
46
-
47
- def parameter_description #:nodoc:
48
- return "[options] <production|scene> <path>"
49
- end
50
-
51
- def parse_remainder(args) #:nodoc:
52
- @template_type = args.shift
53
- raise "Missing template type" if @template_type.nil?
54
- raise "Unknown template type: #{@template_type}" if !["production", "scene"].include?(@template_type)
55
- self.send "parse_#{@template_type}".to_sym, args
56
- @spec_path = "spec" unless @spec_path
57
- end
58
-
59
- def do_requires #:nodoc:
60
- require 'limelight/templates/production_templater'
61
- require 'limelight/templates/scene_templater'
62
- end
63
-
64
- def build_options(spec) #:nodoc:
65
- spec.on("-s <name>", "--scene=<name>", "Name of scene when creating a production. Defaults to 'default_scene'.") { |value| @scene_name = value}
66
- spec.on("-p <path>", "--production_path=<path>", "Path of production to contain scene. Defaults to '.'.") { |value| @production_path = value}
67
- spec.on("-S <path>", "--spec_path=<path>", "Path to spec directory, relative to <production_path>. Defaults to 'spec'.") { |value| @spec_path = value}
68
- end
69
-
70
- private #############################################
71
-
72
- def parse_production(args)
73
- @production_path = args.shift
74
- raise "Missing production path parameter" if @production_path.nil?
75
- end
76
-
77
- def parse_scene(args)
78
- @scene_name = args.shift
79
- raise "Missing scene name/path parameter" if @scene_name.nil?
80
- end
81
-
82
- def create_production
83
- Templates::ProductionTemplater.new(options_hash).generate
84
- Templates::SceneTemplater.new(options_hash).generate
85
- end
86
-
87
- def create_scene
88
- Templates::SceneTemplater.new(options_hash).generate
89
- end
90
-
91
- def options_hash
92
- return {:production_path => @production_path, :scene_path => @scene_name, :spec_path => @spec_path}
93
- end
94
-
95
- end
96
-
97
- end
98
- end
@@ -1,131 +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/commands/command'
5
-
6
- module Limelight
7
- module Commands
8
-
9
- # Freeze a gem into the production. Frozen gems are unpacked into the root level gem directory.
10
- # Limelight will automatically require a production's frozen gems when loaded.
11
- #
12
- # Usage: limelight freeze [options] <gem_name|gem_file>
13
- # freeze a gem into a production.
14
- # options:
15
- # -h, --help Prints this usage summary.
16
- # -p, --production=<production> Specify the production where the gem will be frozen. Default is '.'.
17
- # -v, --version=<version> Specify the gem version. Defaults to latest. Ignored if file provided.
18
- #
19
- class FreezeCommand < Command
20
-
21
- install_as "freeze"
22
-
23
- def self.description #:nodoc:
24
- return "freeze a gem into a production."
25
- end
26
-
27
- attr_reader :gem_name, :production_path, :gem_version
28
-
29
- def initialize() #:nodoc:
30
- @production_path = "."
31
- # self.print_backtrace = true
32
- end
33
-
34
- def is_gem_file?(name) #:nodoc:
35
- return File.extname(name) == ".gem"
36
- end
37
-
38
- protected ###########################################
39
-
40
- def process #:nodoc:
41
- check_production_path
42
- gem_path = is_gem_file?(@gem_name) ? @gem_name : find_system_gem
43
- raise "Gem file does not exist: #{gem_path}" unless File.exists?(gem_path)
44
- freeze_gem(gem_path)
45
- end
46
-
47
- def parse_remainder(args) #:nodoc:
48
- @gem_name = args.shift
49
- raise "Gem name paramter missing." if @gem_name.nil?
50
- end
51
-
52
- def build_options(spec) #:nodoc:
53
- spec.on("-p <production>", "--production=<production>", "Specify the production where the gem will be frozen. Default is '.'.") { |value| @production_path = value }
54
- spec.on("-v <version>", "--version=<version>", "Specify the gem version. Defaults to latest. Ignored if file provided.") { |value| @gem_version = value }
55
- end
56
-
57
- def parameter_description #:nodoc:
58
- return "[options] <gem_name|gem_file>"
59
- end
60
-
61
- def do_requires #:nodoc:
62
- require 'limelight/util'
63
- require 'limelight/templates/templater'
64
- require 'rubygems'
65
- require 'rubygems/commands/unpack_command'
66
- end
67
-
68
- private #############################################
69
-
70
- def check_production_path
71
- if !(Util.is_limelight_production?(@production_path) || Util.is_limelight_scene?(@production_path))
72
- raise "The production path '#{@production_path}' doesn't appear to be a Limelight production directory."
73
- end
74
- end
75
-
76
- def find_system_gem
77
- if @gem_version
78
- @gem_spec = Gem.cache.find_name(@gem_name, "= #{@gem_version}").first
79
- raise "Could not find gem (#{@gem_name}-#{@gem_version})." if @gem_spec.nil?
80
- else
81
- @gem_spec = Gem.cache.find_name(@gem_name).sort_by { |g| g.version }.last
82
- raise "Could not find gem (#{@gem_name})." if @gem_spec.nil?
83
- end
84
-
85
- return Gem::Commands::UnpackCommand.new.get_path(@gem_name, @gem_spec.version.version)
86
- end
87
-
88
- def freeze_gem(gem_path)
89
- @gem_spec = Gem::Format.from_file_by_path(gem_path).spec unless @gem_spec
90
- @gem_dir_name = "#{@gem_spec.name}-#{@gem_spec.version}"
91
-
92
- establish_gem_dir
93
-
94
- gem_installer = Gem::Installer.new(gem_path)
95
- @templater.logger.log("unpacking gem", @gem_dir_path)
96
- gem_installer.unpack(@gem_dir_path)
97
-
98
- copy_gem_spec
99
- end
100
-
101
- def copy_gem_spec
102
- @templater.directory(File.join("__resources", "gems", "specifications"))
103
- FileUtils.copy(gemspec_path, local_gemspec_path) if File.exists?(gemspec_path)
104
-
105
- install_limelight_hook
106
- end
107
-
108
- def gemspec_path
109
- return File.join(Gem.dir, "specifications", "#{@gem_dir_name}.gemspec")
110
- end
111
-
112
- def local_gemspec_path
113
- return File.join(@production_path, "__resources", "gems", "specifications")
114
- end
115
-
116
- def establish_gem_dir
117
- @templater = Templates::Templater.new(@production_path)
118
- @gem_dir_path = File.join(@production_path, "__resources", "gems", "gems", @gem_dir_name)
119
- raise "The gem (#{@gem_dir_name}) is already frozen." if File.exists?(@gem_dir_path)
120
- @templater.directory(File.join("__resources", "gems", "gems", @gem_dir_name))
121
- end
122
-
123
- def install_limelight_hook
124
- tokens = { :GEM_NAME => @gem_dir_name, :PATHS => @gem_spec.require_paths.inspect }
125
- @templater.file(File.join("__resources", "gems", "gems", @gem_dir_name, "limelight_init.rb"), "freezing/limelight_init.rb.template", tokens)
126
- end
127
-
128
- end
129
-
130
- end
131
- end
@@ -1,61 +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/commands/command'
5
-
6
- module Limelight
7
- module Commands
8
-
9
- # Prints limelight command help
10
- #
11
- class HelpCommand < Command
12
-
13
- install_as "help"
14
-
15
- def self.description #:nodoc:
16
- return "Prints limelight command help"
17
- end
18
-
19
- protected ###########################################
20
-
21
- def process #:nodoc:
22
- load_listing
23
-
24
- @options = []
25
- @commands = []
26
- sort_commands
27
- puts ""
28
- puts "Usage: limelight #{@options.join(' ')} <command> [options] [params]"
29
- puts " commands:"
30
- @commands.each do |command|
31
- puts command
32
- end
33
- end
34
-
35
- private #############################################
36
-
37
- def sort_commands
38
- Commands::LISTING.each_pair do |key, command|
39
- if key[0...1] == "-"
40
- @options << "[#{key}]"
41
- else
42
- @commands << "\t#{key}\t\t#{command.description}"
43
- end
44
- end
45
- @commands.sort!
46
- end
47
-
48
- def load_listing #:nodoc:
49
- Dir.entries(File.dirname(__FILE__)).each do |file|
50
- if file != "." && file != ".."
51
- require "limelight/commands/#{file.gsub('.rb', '')}"
52
- end
53
- end
54
- end
55
-
56
- end
57
-
58
- end
59
-
60
-
61
- end