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.
- data/LICENSE +19 -0
- data/bin/limelight +7 -3
- data/ruby/lib/limelight-rb.jar +0 -0
- data/ruby/lib/limelight.jar +0 -0
- data/ruby/lib/limelight.rb +48 -0
- data/{lib → ruby/lib}/limelight/animation.rb +3 -3
- data/ruby/lib/limelight/builtin/players.rb +21 -0
- data/ruby/lib/limelight/builtin/players/button.rb +7 -0
- data/ruby/lib/limelight/builtin/players/check_box.rb +24 -0
- data/ruby/lib/limelight/builtin/players/combo_box.rb +50 -0
- data/ruby/lib/limelight/builtin/players/curtains.rb +12 -0
- data/ruby/lib/limelight/builtin/players/image.rb +38 -0
- data/ruby/lib/limelight/builtin/players/radio_button.rb +36 -0
- data/ruby/lib/limelight/builtin/players/stage_mover.rb +19 -0
- data/ruby/lib/limelight/builtin/players/stage_sizer.rb +23 -0
- data/ruby/lib/limelight/builtin/players/text_area.rb +10 -0
- data/ruby/lib/limelight/builtin/players/text_box.rb +10 -0
- data/{lib → ruby/lib}/limelight/dsl/build_exception.rb +2 -2
- data/{lib → ruby/lib}/limelight/dsl/menu_bar.rb +3 -3
- data/{lib → ruby/lib}/limelight/dsl/prop_builder.rb +25 -16
- data/{lib → ruby/lib}/limelight/dsl/stage_builder.rb +4 -4
- data/{lib → ruby/lib}/limelight/dsl/styles_builder.rb +14 -18
- data/{lib → ruby/lib}/limelight/file_chooser.rb +10 -10
- data/{lib → ruby/lib}/limelight/file_filter.rb +6 -6
- data/ruby/lib/limelight/java_couplings.rb +70 -0
- data/{lib → ruby/lib}/limelight/java_util.rb +6 -6
- data/{lib → ruby/lib}/limelight/limelight_exception.rb +3 -3
- data/ruby/lib/limelight/limelight_init.rb +24 -0
- data/ruby/lib/limelight/main.rb +15 -0
- data/ruby/lib/limelight/mouse.rb +76 -0
- data/ruby/lib/limelight/optionable.rb +42 -0
- data/{lib → ruby/lib}/limelight/paint_action.rb +8 -8
- data/{lib → ruby/lib}/limelight/pen.rb +7 -7
- data/ruby/lib/limelight/player.rb +148 -0
- data/ruby/lib/limelight/player_recruiter.rb +54 -0
- data/ruby/lib/limelight/production.rb +257 -0
- data/ruby/lib/limelight/prop.rb +344 -0
- data/ruby/lib/limelight/scene.rb +120 -0
- data/ruby/lib/limelight/specs/spec_helper.rb +191 -0
- data/ruby/lib/limelight/stage.rb +268 -0
- data/ruby/lib/limelight/string.rb +32 -0
- data/{lib → ruby/lib}/limelight/studio.rb +4 -3
- data/ruby/lib/limelight/style.rb +294 -0
- data/ruby/lib/limelight/templates/sources/features/step_definitions/limelight_steps.rb.template +47 -0
- data/ruby/lib/limelight/templates/sources/features/support/env.rb.template +35 -0
- data/{lib → ruby/lib}/limelight/templates/sources/freezing/limelight_init.rb.template +0 -0
- data/{lib → ruby/lib}/limelight/templates/sources/production/production.rb.template +2 -2
- data/{lib → ruby/lib}/limelight/templates/sources/production/spec/spec_helper.rb.template +0 -0
- data/{lib → ruby/lib}/limelight/templates/sources/production/stages.rb.template +0 -0
- data/{lib → ruby/lib}/limelight/templates/sources/production/styles.rb.template +0 -0
- data/ruby/lib/limelight/templates/sources/project/Rakefile.template +15 -0
- data/ruby/lib/limelight/templates/sources/project/spec_helper.rb.template +12 -0
- data/{lib → ruby/lib}/limelight/templates/sources/scene/props.rb.template +0 -0
- data/{lib → ruby/lib}/limelight/templates/sources/scene/styles.rb.template +0 -0
- data/{lib → ruby/lib}/limelight/templates/sources/scene_spec/scene_spec.rb.template +0 -0
- data/ruby/lib/limelight/theater.rb +76 -0
- data/{lib → ruby/lib}/limelight/util.rb +6 -25
- data/ruby/lib/limelight/util/hashes.rb +39 -0
- data/ruby/lib/limelight/util/map_hash.rb +191 -0
- data/ruby/lib/limelight/util/string_hash.rb +64 -0
- metadata +97 -390
- data/bin/icons/icon.ico +0 -0
- data/bin/icons/icon_48.gif +0 -0
- data/bin/icons/limelight.icns +0 -0
- data/bin/ll +0 -10
- data/bin/ll.bat +0 -5
- data/lib/init.rb +0 -12
- data/lib/limelight.jar +0 -0
- data/lib/limelight/builtin/players.rb +0 -16
- data/lib/limelight/builtin/players/button.rb +0 -39
- data/lib/limelight/builtin/players/check_box.rb +0 -50
- data/lib/limelight/builtin/players/combo_box.rb +0 -89
- data/lib/limelight/builtin/players/combo_box_popup_list.rb +0 -19
- data/lib/limelight/builtin/players/combo_box_popup_list_item.rb +0 -21
- data/lib/limelight/builtin/players/curtains.rb +0 -23
- data/lib/limelight/builtin/players/image.rb +0 -54
- data/lib/limelight/builtin/players/password_box.rb +0 -34
- data/lib/limelight/builtin/players/radio_button.rb +0 -65
- data/lib/limelight/builtin/players/stage_mover.rb +0 -31
- data/lib/limelight/builtin/players/stage_sizer.rb +0 -34
- data/lib/limelight/builtin/players/text_area.rb +0 -34
- data/lib/limelight/builtin/players/text_box.rb +0 -34
- data/lib/limelight/builtin/styles.rb +0 -35
- data/lib/limelight/builtin/utilities_production/alert/players/alert.rb +0 -14
- data/lib/limelight/builtin/utilities_production/alert/props.rb +0 -8
- data/lib/limelight/builtin/utilities_production/alert/styles.rb +0 -14
- data/lib/limelight/builtin/utilities_production/incompatible_version/props.rb +0 -20
- data/lib/limelight/builtin/utilities_production/incompatible_version/styles.rb +0 -12
- data/lib/limelight/builtin/utilities_production/production.rb +0 -66
- data/lib/limelight/builtin/utilities_production/stages.rb +0 -12
- data/lib/limelight/builtin/utilities_production/styles.rb +0 -53
- data/lib/limelight/button_group_cache.rb +0 -11
- data/lib/limelight/casting_director.rb +0 -112
- data/lib/limelight/commands/command.rb +0 -168
- data/lib/limelight/commands/create_command.rb +0 -98
- data/lib/limelight/commands/freeze_command.rb +0 -131
- data/lib/limelight/commands/help_command.rb +0 -61
- data/lib/limelight/commands/open_command.rb +0 -60
- data/lib/limelight/commands/pack_command.rb +0 -53
- data/lib/limelight/commands/unpack_command.rb +0 -44
- data/lib/limelight/commands/version_command.rb +0 -31
- data/lib/limelight/data.rb +0 -37
- data/lib/limelight/file_loader.rb +0 -46
- data/lib/limelight/gems.rb +0 -51
- data/lib/limelight/java_couplings.rb +0 -67
- data/lib/limelight/limelight_init.rb +0 -12
- data/lib/limelight/main.rb +0 -105
- data/lib/limelight/producer.rb +0 -233
- data/lib/limelight/production.rb +0 -203
- data/lib/limelight/prop.rb +0 -367
- data/lib/limelight/scene.rb +0 -151
- data/lib/limelight/specs/spec_helper.rb +0 -136
- data/lib/limelight/specs/test_scene_opener.rb +0 -63
- data/lib/limelight/stage.rb +0 -353
- data/lib/limelight/string.rb +0 -38
- data/lib/limelight/styles/style.rb +0 -288
- data/lib/limelight/templates/production_templater.rb +0 -49
- data/lib/limelight/templates/scene_templater.rb +0 -47
- data/lib/limelight/templates/sources/production/init.rb.template +0 -15
- data/lib/limelight/templates/templater.rb +0 -131
- data/lib/limelight/templates/templater_logger.rb +0 -39
- data/lib/limelight/theater.rb +0 -109
- data/lib/limelight/util/downloader.rb +0 -115
- data/lib/limelight/version.rb +0 -20
- data/productions/examples/8thlight.com/about/about.txt +0 -24
- data/productions/examples/8thlight.com/about/props.rb +0 -11
- data/productions/examples/8thlight.com/about/styles.rb +0 -2
- data/productions/examples/8thlight.com/footer.rb +0 -6
- data/productions/examples/8thlight.com/home/props.rb +0 -28
- data/productions/examples/8thlight.com/home/styles.rb +0 -2
- data/productions/examples/8thlight.com/images/anvil.jpg +0 -0
- data/productions/examples/8thlight.com/images/bg.jpg +0 -0
- data/productions/examples/8thlight.com/images/botticelli.jpg +0 -0
- data/productions/examples/8thlight.com/images/button_bg.jpg +0 -0
- data/productions/examples/8thlight.com/images/canvas_bg.jpg +0 -0
- data/productions/examples/8thlight.com/images/footer_bg.jpg +0 -0
- data/productions/examples/8thlight.com/images/header.jpg +0 -0
- data/productions/examples/8thlight.com/images/moses.jpg +0 -0
- data/productions/examples/8thlight.com/images/statemachine_thumbnail.png +0 -0
- data/productions/examples/8thlight.com/images/thumbnail_book.jpg +0 -0
- data/productions/examples/8thlight.com/menu.rb +0 -11
- data/productions/examples/8thlight.com/services/props.rb +0 -11
- data/productions/examples/8thlight.com/services/services.txt +0 -8
- data/productions/examples/8thlight.com/services/styles.rb +0 -2
- data/productions/examples/8thlight.com/stages.rb +0 -8
- data/productions/examples/8thlight.com/styles.rb +0 -210
- data/productions/examples/calculator/players/button.rb +0 -24
- data/productions/examples/calculator/players/calculator.rb +0 -15
- data/productions/examples/calculator/players/calculator_model.rb +0 -13
- data/productions/examples/calculator/props.rb +0 -23
- data/productions/examples/calculator/styles.rb +0 -36
- data/productions/examples/langstons_ant/html_javascript/ant.css +0 -39
- data/productions/examples/langstons_ant/html_javascript/ant.html +0 -22
- data/productions/examples/langstons_ant/html_javascript/ant.js +0 -23
- data/productions/examples/langstons_ant/init.rb +0 -4
- data/productions/examples/langstons_ant/players/ant.rb +0 -103
- data/productions/examples/langstons_ant/players/log.rb +0 -29
- data/productions/examples/langstons_ant/players/start_stop_button.rb +0 -37
- data/productions/examples/langstons_ant/players/world.rb +0 -35
- data/productions/examples/langstons_ant/props.rb +0 -22
- data/productions/examples/langstons_ant/styles.rb +0 -104
- data/productions/examples/sandbox/alerts/incompatible_production/default_scene/props.rb +0 -10
- data/productions/examples/sandbox/alerts/incompatible_production/default_scene/styles.rb +0 -32
- data/productions/examples/sandbox/alerts/incompatible_production/production.rb +0 -52
- data/productions/examples/sandbox/alerts/incompatible_production/spec/default_scene/default_scene_spec.rb +0 -16
- data/productions/examples/sandbox/alerts/incompatible_production/spec/spec_helper.rb +0 -8
- data/productions/examples/sandbox/alerts/incompatible_production/stages.rb +0 -20
- data/productions/examples/sandbox/alerts/incompatible_production/styles.rb +0 -15
- data/productions/examples/sandbox/alerts/players/alerts.rb +0 -17
- data/productions/examples/sandbox/alerts/props.rb +0 -10
- data/productions/examples/sandbox/alerts/styles.rb +0 -46
- data/productions/examples/sandbox/background_images/props.rb +0 -22
- data/productions/examples/sandbox/background_images/styles.rb +0 -40
- data/productions/examples/sandbox/click_me/players/chromaton.rb +0 -52
- data/productions/examples/sandbox/click_me/props.rb +0 -8
- data/productions/examples/sandbox/click_me/styles.rb +0 -11
- data/productions/examples/sandbox/floaters/players/floater.rb +0 -108
- data/productions/examples/sandbox/floaters/players/surface.rb +0 -21
- data/productions/examples/sandbox/floaters/props.rb +0 -10
- data/productions/examples/sandbox/floaters/styles.rb +0 -24
- data/productions/examples/sandbox/frameing/players/sandbox.rb +0 -17
- data/productions/examples/sandbox/frameing/props.rb +0 -35
- data/productions/examples/sandbox/frameing/styles.rb +0 -45
- data/productions/examples/sandbox/gradients/players/spinner.rb +0 -20
- data/productions/examples/sandbox/gradients/players/teaser.rb +0 -19
- data/productions/examples/sandbox/gradients/players/wave.rb +0 -19
- data/productions/examples/sandbox/gradients/players/waves.rb +0 -19
- data/productions/examples/sandbox/gradients/props.rb +0 -13
- data/productions/examples/sandbox/gradients/styles.rb +0 -47
- data/productions/examples/sandbox/header.rb +0 -22
- data/productions/examples/sandbox/homer/players/homer.rb +0 -24
- data/productions/examples/sandbox/homer/props.rb +0 -10
- data/productions/examples/sandbox/homer/styles.rb +0 -16
- data/productions/examples/sandbox/images/arch.jpg +0 -0
- data/productions/examples/sandbox/images/beach.jpg +0 -0
- data/productions/examples/sandbox/images/homer.jpg +0 -0
- data/productions/examples/sandbox/images/limelight_spotlight.jpg +0 -0
- data/productions/examples/sandbox/images/logo.png +0 -0
- data/productions/examples/sandbox/images/marilyn.jpg +0 -0
- data/productions/examples/sandbox/images/space.png +0 -0
- data/productions/examples/sandbox/images_scene/props.rb +0 -36
- data/productions/examples/sandbox/images_scene/styles.rb +0 -34
- data/productions/examples/sandbox/inputs/players/button_input.rb +0 -48
- data/productions/examples/sandbox/inputs/players/check_box_input.rb +0 -40
- data/productions/examples/sandbox/inputs/players/combo_box_input.rb +0 -41
- data/productions/examples/sandbox/inputs/players/radio_button_input.rb +0 -43
- data/productions/examples/sandbox/inputs/players/text_area_input.rb +0 -36
- data/productions/examples/sandbox/inputs/players/text_box_input.rb +0 -36
- data/productions/examples/sandbox/inputs/props.rb +0 -40
- data/productions/examples/sandbox/inputs/styles.rb +0 -39
- data/productions/examples/sandbox/kiosk/players/kiosk.rb +0 -39
- data/productions/examples/sandbox/kiosk/props.rb +0 -9
- data/productions/examples/sandbox/kiosk/styles.rb +0 -37
- data/productions/examples/sandbox/players/sandbox.rb +0 -11
- data/productions/examples/sandbox/rounded_corners/players/box.rb +0 -11
- data/productions/examples/sandbox/rounded_corners/props.rb +0 -22
- data/productions/examples/sandbox/rounded_corners/styles.rb +0 -17
- data/productions/examples/sandbox/scrolling/players/add_button.rb +0 -19
- data/productions/examples/sandbox/scrolling/players/cell.rb +0 -15
- data/productions/examples/sandbox/scrolling/props.rb +0 -45
- data/productions/examples/sandbox/scrolling/styles.rb +0 -33
- data/productions/examples/sandbox/sketching/players/sketchpad.rb +0 -46
- data/productions/examples/sandbox/sketching/props.rb +0 -25
- data/productions/examples/sandbox/sketching/styles.rb +0 -35
- data/productions/examples/sandbox/sounds/bird.au +0 -0
- data/productions/examples/sandbox/sounds/cat.au +0 -0
- data/productions/examples/sandbox/sounds/cow.au +0 -0
- data/productions/examples/sandbox/sounds/dog.au +0 -0
- data/productions/examples/sandbox/sounds/donkey.au +0 -0
- data/productions/examples/sandbox/sounds/duck.au +0 -0
- data/productions/examples/sandbox/sounds/players/clip.rb +0 -10
- data/productions/examples/sandbox/sounds/props.rb +0 -10
- data/productions/examples/sandbox/sounds/styles.rb +0 -17
- data/productions/examples/sandbox/spec/alerts/alerts_spec.rb +0 -16
- data/productions/examples/sandbox/stage_handles/players/sizer.rb +0 -38
- data/productions/examples/sandbox/stage_handles/props.rb +0 -17
- data/productions/examples/sandbox/stage_handles/styles.rb +0 -58
- data/productions/examples/sandbox/stages.rb +0 -8
- data/productions/examples/sandbox/styles.rb +0 -35
- data/productions/examples/sandbox/teaser/players/fader.rb +0 -58
- data/productions/examples/sandbox/teaser/props.rb +0 -14
- data/productions/examples/sandbox/teaser/styles.rb +0 -21
- data/productions/examples/tutorials/tutorial_1/players/sample.rb +0 -11
- data/productions/examples/tutorials/tutorial_1/props.rb +0 -9
- data/productions/examples/tutorials/tutorial_1/styles.rb +0 -25
- data/productions/stage_composer/init.rb +0 -10
- data/productions/stage_composer/inspector/players/inspector.rb +0 -80
- data/productions/stage_composer/inspector/players/prop_row.rb +0 -12
- data/productions/stage_composer/inspector/players/prop_tree.rb +0 -33
- data/productions/stage_composer/inspector/players/style_table.rb +0 -12
- data/productions/stage_composer/inspector/players/style_value.rb +0 -16
- data/productions/stage_composer/inspector/props.rb +0 -19
- data/productions/stage_composer/inspector/styles.rb +0 -71
- data/productions/stage_composer/lib/init.rb +0 -5
- data/productions/stage_composer/lib/limelight/composer/controller.rb +0 -51
- data/productions/stage_composer/lib/limelight/composer/lethargy.rb +0 -24
- data/productions/stage_composer/production.rb +0 -6
- data/productions/stage_composer/stages.rb +0 -15
- data/productions/startup/images/logo.png +0 -0
- data/productions/startup/images/splash.png +0 -0
- data/productions/startup/production.rb +0 -52
- data/productions/startup/spec/default_scene/default_scene_spec.rb +0 -16
- data/productions/startup/spec/spec_helper.rb +0 -8
- data/productions/startup/stages.rb +0 -9
- data/productions/startup/styles.rb +0 -15
- data/productions/startup/welcome/players/browse_button.rb +0 -10
- data/productions/startup/welcome/players/download_button.rb +0 -17
- data/productions/startup/welcome/players/sandbox_button.rb +0 -11
- data/productions/startup/welcome/props.rb +0 -23
- data/productions/startup/welcome/styles.rb +0 -103
- data/spec/limelight/builtin/players/button_spec.rb +0 -20
- data/spec/limelight/builtin/players/check_box_spec.rb +0 -29
- data/spec/limelight/builtin/players/combo_box_spec.rb +0 -29
- data/spec/limelight/builtin/players/image_spec.rb +0 -43
- data/spec/limelight/builtin/players/password_box_spec.rb +0 -27
- data/spec/limelight/builtin/players/radio_button_spec.rb +0 -64
- data/spec/limelight/builtin/players/stage_mover_spec.rb +0 -36
- data/spec/limelight/builtin/players/stage_sizer_spec.rb +0 -40
- data/spec/limelight/builtin/players/text_area_spec.rb +0 -27
- data/spec/limelight/builtin/players/text_box_spec.rb +0 -27
- data/spec/limelight/builtin/utilities_production/spec_helper.rb +0 -7
- data/spec/limelight/builtin/utilities_production/utilities_production_spec.rb +0 -147
- data/spec/limelight/casting_director_spec.rb +0 -164
- data/spec/limelight/commands/command_spec.rb +0 -26
- data/spec/limelight/commands/create_command_spec.rb +0 -108
- data/spec/limelight/commands/freeze_command_spec.rb +0 -143
- data/spec/limelight/commands/help_command_spec.rb +0 -42
- data/spec/limelight/commands/open_command_spec.rb +0 -53
- data/spec/limelight/commands/pack_command_spec.rb +0 -43
- data/spec/limelight/commands/unpack_command_spec.rb +0 -47
- data/spec/limelight/data_spec.rb +0 -36
- data/spec/limelight/dsl/prop_builder_spec.rb +0 -245
- data/spec/limelight/dsl/stage_builder_spec.rb +0 -90
- data/spec/limelight/dsl/styles_builder_spec.rb +0 -194
- data/spec/limelight/file_chooser_spec.rb +0 -64
- data/spec/limelight/file_filter_spec.rb +0 -29
- data/spec/limelight/file_loader_spec.rb +0 -28
- data/spec/limelight/gems_spec.rb +0 -92
- data/spec/limelight/java_util_spec.rb +0 -37
- data/spec/limelight/main_spec.rb +0 -40
- data/spec/limelight/paint_action_spec.rb +0 -30
- data/spec/limelight/pen_spec.rb +0 -62
- data/spec/limelight/producer_spec.rb +0 -246
- data/spec/limelight/production_spec.rb +0 -97
- data/spec/limelight/prop_spec.rb +0 -431
- data/spec/limelight/scene_spec.rb +0 -173
- data/spec/limelight/stage_spec.rb +0 -247
- data/spec/limelight/string_spec.rb +0 -38
- data/spec/limelight/templates/production_templater_spec.rb +0 -66
- data/spec/limelight/templates/scene_templater_spec.rb +0 -51
- data/spec/limelight/templates/templater_logger_spec.rb +0 -41
- data/spec/limelight/templates/templater_spec.rb +0 -107
- data/spec/limelight/theater_spec.rb +0 -120
- data/spec/limelight/util/downloader_spec.rb +0 -92
- 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
|