epall-limelight 0.5.0-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/bin/icons/icon.ico +0 -0
- data/bin/icons/icon_48.gif +0 -0
- data/bin/icons/limelight.icns +0 -0
- data/bin/limelight +5 -0
- data/bin/ll +10 -0
- data/bin/ll.bat +5 -0
- data/lib/init.rb +16 -0
- data/lib/limelight.jar +0 -0
- data/lib/limelight/animation.rb +41 -0
- data/lib/limelight/builtin/players.rb +16 -0
- data/lib/limelight/builtin/players/button.rb +39 -0
- data/lib/limelight/builtin/players/check_box.rb +50 -0
- data/lib/limelight/builtin/players/combo_box.rb +89 -0
- data/lib/limelight/builtin/players/combo_box_popup_list.rb +19 -0
- data/lib/limelight/builtin/players/combo_box_popup_list_item.rb +21 -0
- data/lib/limelight/builtin/players/curtains.rb +23 -0
- data/lib/limelight/builtin/players/image.rb +54 -0
- data/lib/limelight/builtin/players/password_box.rb +34 -0
- data/lib/limelight/builtin/players/radio_button.rb +65 -0
- data/lib/limelight/builtin/players/stage_mover.rb +31 -0
- data/lib/limelight/builtin/players/stage_sizer.rb +34 -0
- data/lib/limelight/builtin/players/text_area.rb +34 -0
- data/lib/limelight/builtin/players/text_box.rb +34 -0
- data/lib/limelight/builtin/styles.rb +35 -0
- data/lib/limelight/builtin/utilities_production/alert/players/alert.rb +11 -0
- data/lib/limelight/builtin/utilities_production/alert/props.rb +8 -0
- data/lib/limelight/builtin/utilities_production/alert/styles.rb +14 -0
- data/lib/limelight/builtin/utilities_production/incompatible_version/props.rb +20 -0
- data/lib/limelight/builtin/utilities_production/incompatible_version/styles.rb +12 -0
- data/lib/limelight/builtin/utilities_production/production.rb +62 -0
- data/lib/limelight/builtin/utilities_production/stages.rb +12 -0
- data/lib/limelight/builtin/utilities_production/styles.rb +53 -0
- data/lib/limelight/button_group_cache.rb +11 -0
- data/lib/limelight/casting_director.rb +112 -0
- data/lib/limelight/client/playbills.rb +86 -0
- data/lib/limelight/commands/command.rb +168 -0
- data/lib/limelight/commands/create_command.rb +98 -0
- data/lib/limelight/commands/freeze_command.rb +131 -0
- data/lib/limelight/commands/help_command.rb +61 -0
- data/lib/limelight/commands/open_command.rb +60 -0
- data/lib/limelight/commands/pack_command.rb +45 -0
- data/lib/limelight/commands/unpack_command.rb +44 -0
- data/lib/limelight/commands/version_command.rb +31 -0
- data/lib/limelight/data.rb +37 -0
- data/lib/limelight/dsl/build_exception.rb +55 -0
- data/lib/limelight/dsl/menu_bar.rb +71 -0
- data/lib/limelight/dsl/prop_builder.rb +155 -0
- data/lib/limelight/dsl/stage_builder.rb +105 -0
- data/lib/limelight/dsl/styles_builder.rb +157 -0
- data/lib/limelight/file_chooser.rb +68 -0
- data/lib/limelight/file_filter.rb +33 -0
- data/lib/limelight/file_loader.rb +46 -0
- data/lib/limelight/gems.rb +51 -0
- data/lib/limelight/java_couplings.rb +66 -0
- data/lib/limelight/java_util.rb +49 -0
- data/lib/limelight/limelight_exception.rb +24 -0
- data/lib/limelight/main.rb +108 -0
- data/lib/limelight/paint_action.rb +27 -0
- data/lib/limelight/pen.rb +83 -0
- data/lib/limelight/producer.rb +179 -0
- data/lib/limelight/production.rb +169 -0
- data/lib/limelight/prop.rb +367 -0
- data/lib/limelight/scene.rb +151 -0
- data/lib/limelight/specs/spec_helper.rb +87 -0
- data/lib/limelight/specs/test_scene_opener.rb +60 -0
- data/lib/limelight/stage.rb +292 -0
- data/lib/limelight/string.rb +38 -0
- data/lib/limelight/studio.rb +185 -0
- data/lib/limelight/styles.rb +347 -0
- data/lib/limelight/templates/production_templater.rb +49 -0
- data/lib/limelight/templates/scene_templater.rb +47 -0
- data/lib/limelight/templates/sources/freezing/limelight_init.rb.template +5 -0
- data/lib/limelight/templates/sources/production/init.rb.template +15 -0
- data/lib/limelight/templates/sources/production/production.rb.template +49 -0
- data/lib/limelight/templates/sources/production/spec/spec_helper.rb.template +12 -0
- data/lib/limelight/templates/sources/production/stages.rb.template +17 -0
- data/lib/limelight/templates/sources/production/styles.rb.template +12 -0
- data/lib/limelight/templates/sources/scene/props.rb.template +6 -0
- data/lib/limelight/templates/sources/scene/styles.rb.template +18 -0
- data/lib/limelight/templates/sources/scene_spec/scene_spec.rb.template +13 -0
- data/lib/limelight/templates/templater.rb +131 -0
- data/lib/limelight/templates/templater_logger.rb +39 -0
- data/lib/limelight/theater.rb +77 -0
- data/lib/limelight/util.rb +65 -0
- data/lib/limelight/util/downloader.rb +115 -0
- data/lib/limelight/version.rb +20 -0
- data/productions/examples/8thlight.com/about/about.txt +24 -0
- data/productions/examples/8thlight.com/about/props.rb +11 -0
- data/productions/examples/8thlight.com/about/styles.rb +2 -0
- data/productions/examples/8thlight.com/footer.rb +6 -0
- data/productions/examples/8thlight.com/home/props.rb +28 -0
- data/productions/examples/8thlight.com/home/styles.rb +2 -0
- 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 +11 -0
- data/productions/examples/8thlight.com/services/props.rb +11 -0
- data/productions/examples/8thlight.com/services/services.txt +8 -0
- data/productions/examples/8thlight.com/services/styles.rb +2 -0
- data/productions/examples/8thlight.com/stages.rb +8 -0
- data/productions/examples/8thlight.com/styles.rb +210 -0
- data/productions/examples/calculator/players/button.rb +24 -0
- data/productions/examples/calculator/players/calculator.rb +15 -0
- data/productions/examples/calculator/players/calculator_model.rb +13 -0
- data/productions/examples/calculator/props.rb +23 -0
- data/productions/examples/calculator/styles.rb +36 -0
- data/productions/examples/langstons_ant/html_javascript/ant.css +39 -0
- data/productions/examples/langstons_ant/html_javascript/ant.html +22 -0
- data/productions/examples/langstons_ant/html_javascript/ant.js +23 -0
- data/productions/examples/langstons_ant/init.rb +4 -0
- data/productions/examples/langstons_ant/players/ant.rb +103 -0
- data/productions/examples/langstons_ant/players/log.rb +29 -0
- data/productions/examples/langstons_ant/players/start_stop_button.rb +37 -0
- data/productions/examples/langstons_ant/players/world.rb +35 -0
- data/productions/examples/langstons_ant/props.rb +22 -0
- data/productions/examples/langstons_ant/styles.rb +104 -0
- data/productions/examples/sandbox/alerts/incompatible_production/default_scene/props.rb +10 -0
- data/productions/examples/sandbox/alerts/incompatible_production/default_scene/styles.rb +32 -0
- data/productions/examples/sandbox/alerts/incompatible_production/production.rb +52 -0
- data/productions/examples/sandbox/alerts/incompatible_production/spec/default_scene/default_scene_spec.rb +16 -0
- data/productions/examples/sandbox/alerts/incompatible_production/spec/spec_helper.rb +8 -0
- data/productions/examples/sandbox/alerts/incompatible_production/stages.rb +20 -0
- data/productions/examples/sandbox/alerts/incompatible_production/styles.rb +15 -0
- data/productions/examples/sandbox/alerts/players/alerts.rb +17 -0
- data/productions/examples/sandbox/alerts/props.rb +10 -0
- data/productions/examples/sandbox/alerts/styles.rb +46 -0
- data/productions/examples/sandbox/background_images/props.rb +22 -0
- data/productions/examples/sandbox/background_images/styles.rb +40 -0
- data/productions/examples/sandbox/click_me/players/chromaton.rb +52 -0
- data/productions/examples/sandbox/click_me/props.rb +8 -0
- data/productions/examples/sandbox/click_me/styles.rb +11 -0
- data/productions/examples/sandbox/floaters/players/floater.rb +108 -0
- data/productions/examples/sandbox/floaters/players/surface.rb +21 -0
- data/productions/examples/sandbox/floaters/props.rb +10 -0
- data/productions/examples/sandbox/floaters/styles.rb +24 -0
- data/productions/examples/sandbox/frameing/players/sandbox.rb +17 -0
- data/productions/examples/sandbox/frameing/props.rb +35 -0
- data/productions/examples/sandbox/frameing/styles.rb +45 -0
- data/productions/examples/sandbox/gradients/players/spinner.rb +20 -0
- data/productions/examples/sandbox/gradients/players/teaser.rb +19 -0
- data/productions/examples/sandbox/gradients/players/wave.rb +19 -0
- data/productions/examples/sandbox/gradients/players/waves.rb +19 -0
- data/productions/examples/sandbox/gradients/props.rb +13 -0
- data/productions/examples/sandbox/gradients/styles.rb +47 -0
- data/productions/examples/sandbox/header.rb +22 -0
- data/productions/examples/sandbox/homer/players/homer.rb +24 -0
- data/productions/examples/sandbox/homer/props.rb +10 -0
- data/productions/examples/sandbox/homer/styles.rb +16 -0
- 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 +36 -0
- data/productions/examples/sandbox/images_scene/styles.rb +34 -0
- data/productions/examples/sandbox/inputs/players/button_input.rb +48 -0
- data/productions/examples/sandbox/inputs/players/check_box_input.rb +40 -0
- data/productions/examples/sandbox/inputs/players/combo_box_input.rb +41 -0
- data/productions/examples/sandbox/inputs/players/radio_button_input.rb +43 -0
- data/productions/examples/sandbox/inputs/players/text_area_input.rb +36 -0
- data/productions/examples/sandbox/inputs/players/text_box_input.rb +36 -0
- data/productions/examples/sandbox/inputs/props.rb +40 -0
- data/productions/examples/sandbox/inputs/styles.rb +39 -0
- data/productions/examples/sandbox/kiosk/players/kiosk.rb +39 -0
- data/productions/examples/sandbox/kiosk/props.rb +9 -0
- data/productions/examples/sandbox/kiosk/styles.rb +37 -0
- data/productions/examples/sandbox/players/sandbox.rb +11 -0
- data/productions/examples/sandbox/rounded_corners/players/box.rb +11 -0
- data/productions/examples/sandbox/rounded_corners/props.rb +22 -0
- data/productions/examples/sandbox/rounded_corners/styles.rb +17 -0
- data/productions/examples/sandbox/scrolling/players/add_button.rb +19 -0
- data/productions/examples/sandbox/scrolling/players/cell.rb +15 -0
- data/productions/examples/sandbox/scrolling/props.rb +45 -0
- data/productions/examples/sandbox/scrolling/styles.rb +33 -0
- data/productions/examples/sandbox/sketching/players/sketchpad.rb +46 -0
- data/productions/examples/sandbox/sketching/props.rb +25 -0
- data/productions/examples/sandbox/sketching/styles.rb +35 -0
- 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 +10 -0
- data/productions/examples/sandbox/sounds/props.rb +10 -0
- data/productions/examples/sandbox/sounds/styles.rb +17 -0
- data/productions/examples/sandbox/spec/alerts/alerts_spec.rb +16 -0
- data/productions/examples/sandbox/stage_handles/players/sizer.rb +35 -0
- data/productions/examples/sandbox/stage_handles/props.rb +17 -0
- data/productions/examples/sandbox/stage_handles/styles.rb +58 -0
- data/productions/examples/sandbox/stages.rb +8 -0
- data/productions/examples/sandbox/styles.rb +35 -0
- data/productions/examples/sandbox/teaser/players/fader.rb +58 -0
- data/productions/examples/sandbox/teaser/props.rb +14 -0
- data/productions/examples/sandbox/teaser/styles.rb +21 -0
- data/productions/examples/tutorials/tutorial_1/players/sample.rb +11 -0
- data/productions/examples/tutorials/tutorial_1/props.rb +9 -0
- data/productions/examples/tutorials/tutorial_1/styles.rb +25 -0
- data/productions/playbills.lll +1 -0
- data/productions/stage_composer/init.rb +10 -0
- data/productions/stage_composer/inspector/players/inspector.rb +80 -0
- data/productions/stage_composer/inspector/players/prop_row.rb +12 -0
- data/productions/stage_composer/inspector/players/prop_tree.rb +33 -0
- data/productions/stage_composer/inspector/players/style_table.rb +12 -0
- data/productions/stage_composer/inspector/players/style_value.rb +16 -0
- data/productions/stage_composer/inspector/props.rb +19 -0
- data/productions/stage_composer/inspector/styles.rb +71 -0
- data/productions/stage_composer/lib/init.rb +5 -0
- data/productions/stage_composer/lib/limelight/composer/controller.rb +51 -0
- data/productions/stage_composer/lib/limelight/composer/lethargy.rb +24 -0
- data/productions/stage_composer/production.rb +6 -0
- data/productions/stage_composer/stages.rb +15 -0
- data/productions/startup/images/logo.png +0 -0
- data/productions/startup/images/splash.png +0 -0
- data/productions/startup/production.rb +52 -0
- data/productions/startup/spec/default_scene/default_scene_spec.rb +16 -0
- data/productions/startup/spec/spec_helper.rb +8 -0
- data/productions/startup/stages.rb +9 -0
- data/productions/startup/styles.rb +15 -0
- data/productions/startup/welcome/players/browse_button.rb +10 -0
- data/productions/startup/welcome/players/download_button.rb +17 -0
- data/productions/startup/welcome/players/sandbox_button.rb +11 -0
- data/productions/startup/welcome/props.rb +23 -0
- data/productions/startup/welcome/styles.rb +103 -0
- data/spec/limelight/builtin/players/button_spec.rb +20 -0
- data/spec/limelight/builtin/players/check_box_spec.rb +29 -0
- data/spec/limelight/builtin/players/combo_box_spec.rb +29 -0
- data/spec/limelight/builtin/players/image_spec.rb +43 -0
- data/spec/limelight/builtin/players/password_box_spec.rb +27 -0
- data/spec/limelight/builtin/players/radio_button_spec.rb +64 -0
- data/spec/limelight/builtin/players/stage_mover_spec.rb +36 -0
- data/spec/limelight/builtin/players/stage_sizer_spec.rb +40 -0
- data/spec/limelight/builtin/players/text_area_spec.rb +27 -0
- data/spec/limelight/builtin/players/text_box_spec.rb +27 -0
- data/spec/limelight/builtin/utilities_production/spec_helper.rb +7 -0
- data/spec/limelight/builtin/utilities_production/utilities_production_spec.rb +146 -0
- data/spec/limelight/casting_director_spec.rb +164 -0
- data/spec/limelight/client/playbills_spec.rb +79 -0
- data/spec/limelight/commands/command_spec.rb +26 -0
- data/spec/limelight/commands/create_command_spec.rb +108 -0
- data/spec/limelight/commands/freeze_command_spec.rb +143 -0
- data/spec/limelight/commands/help_command_spec.rb +42 -0
- data/spec/limelight/commands/open_command_spec.rb +52 -0
- data/spec/limelight/commands/pack_command_spec.rb +26 -0
- data/spec/limelight/commands/unpack_command_spec.rb +47 -0
- data/spec/limelight/data_spec.rb +36 -0
- data/spec/limelight/dsl/prop_builder_spec.rb +245 -0
- data/spec/limelight/dsl/stage_builder_spec.rb +90 -0
- data/spec/limelight/dsl/styles_builder_spec.rb +194 -0
- data/spec/limelight/file_chooser_spec.rb +64 -0
- data/spec/limelight/file_filter_spec.rb +29 -0
- data/spec/limelight/file_loader_spec.rb +28 -0
- data/spec/limelight/gems_spec.rb +92 -0
- data/spec/limelight/java_util_spec.rb +37 -0
- data/spec/limelight/main_spec.rb +40 -0
- data/spec/limelight/paint_action_spec.rb +30 -0
- data/spec/limelight/pen_spec.rb +62 -0
- data/spec/limelight/producer_spec.rb +210 -0
- data/spec/limelight/production_spec.rb +100 -0
- data/spec/limelight/prop_spec.rb +431 -0
- data/spec/limelight/scene_spec.rb +173 -0
- data/spec/limelight/stage_spec.rb +202 -0
- data/spec/limelight/string_spec.rb +38 -0
- data/spec/limelight/studio_spec.rb +157 -0
- data/spec/limelight/styles_spec.rb +53 -0
- data/spec/limelight/templates/production_templater_spec.rb +66 -0
- data/spec/limelight/templates/scene_templater_spec.rb +51 -0
- data/spec/limelight/templates/templater_logger_spec.rb +41 -0
- data/spec/limelight/templates/templater_spec.rb +107 -0
- data/spec/limelight/theater_spec.rb +72 -0
- data/spec/limelight/util/downloader_spec.rb +92 -0
- data/spec/spec_helper.rb +70 -0
- metadata +335 -0
|
@@ -0,0 +1,131 @@
|
|
|
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
|
|
@@ -0,0 +1,61 @@
|
|
|
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
|
|
@@ -0,0 +1,60 @@
|
|
|
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 usage summary.
|
|
10
|
+
#
|
|
11
|
+
# Usage: limelight open <production_path>
|
|
12
|
+
# Open a limelight production.
|
|
13
|
+
# options:
|
|
14
|
+
# -h, --help Prints this usage summary.
|
|
15
|
+
# -d, --drb_port=<port> Publish the Studio using DRb on the specified port.
|
|
16
|
+
#
|
|
17
|
+
class OpenCommand < Command
|
|
18
|
+
|
|
19
|
+
install_as "open"
|
|
20
|
+
|
|
21
|
+
DEFAULT_PRODUCTION = File.expand_path($LIMELIGHT_HOME + "/productions/startup")
|
|
22
|
+
|
|
23
|
+
attr_reader :drb_port
|
|
24
|
+
|
|
25
|
+
def initialize
|
|
26
|
+
self.print_backtrace = true
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def self.description
|
|
30
|
+
return "Open a limelight production."
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
protected ###########################################
|
|
34
|
+
|
|
35
|
+
def parameter_description
|
|
36
|
+
return "<production_path>"
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def do_requires
|
|
40
|
+
Main.initialize_context
|
|
41
|
+
require 'limelight/producer'
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def build_options(spec) #:nodoc:
|
|
45
|
+
spec.on("-d <port>", "--drb_port=<port>", "Publish the Studio using DRb on the specified port.") { |value| @drb_port = value }
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def parse_remainder(args)
|
|
49
|
+
@production_path = args.shift || DEFAULT_PRODUCTION
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def process
|
|
53
|
+
Studio.publish_on_drb(@drb_port.to_i) if @drb_port
|
|
54
|
+
Studio.open(@production_path)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
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 usage summary.
|
|
10
|
+
#
|
|
11
|
+
# Usage: limelight pack <production_path>
|
|
12
|
+
# Pack a limelight production into a .llp file.
|
|
13
|
+
# options:
|
|
14
|
+
# -h, --help Prints this usage summary.
|
|
15
|
+
#
|
|
16
|
+
class PackCommand < Command
|
|
17
|
+
|
|
18
|
+
install_as "pack"
|
|
19
|
+
|
|
20
|
+
def self.description #:nodoc:
|
|
21
|
+
return "Pack a limelight production into a .llp file."
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
protected ###########################################
|
|
25
|
+
|
|
26
|
+
def parameter_description #:nodoc:
|
|
27
|
+
return "<production_path>"
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def parse_remainder(args) #:nodoc:
|
|
31
|
+
@production_path = args.shift
|
|
32
|
+
raise "Missing production path" if @production_path.nil?
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def process #:nodoc:
|
|
36
|
+
packer = Limelight::Util::Packer.new
|
|
37
|
+
packer.pack(@production_path)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
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 usage summary.
|
|
10
|
+
#
|
|
11
|
+
# Usage: limelight unpack <production_path>
|
|
12
|
+
# Unpack a limelight production into the tmp directory.
|
|
13
|
+
# options:
|
|
14
|
+
# -h, --help Prints this usage summary.
|
|
15
|
+
#
|
|
16
|
+
class UnpackCommand < Command
|
|
17
|
+
|
|
18
|
+
install_as "unpack"
|
|
19
|
+
|
|
20
|
+
def self.description #:nodoc:
|
|
21
|
+
return "Unpack a limelight production into the tmp directory."
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
protected ###########################################
|
|
25
|
+
|
|
26
|
+
def parameter_description #:nodoc:
|
|
27
|
+
return "<production_path>"
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def parse_remainder(args) #:nodoc:
|
|
31
|
+
@production_path = args.shift
|
|
32
|
+
raise "Missing production path" if @production_path.nil?
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def process #:nodoc:
|
|
36
|
+
Main.initialize_temp_directory
|
|
37
|
+
packer = Limelight::Util::Packer.new
|
|
38
|
+
location = packer.unpack(@production_path)
|
|
39
|
+
puts "Production was unpacked to: #{location}"
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
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 the current Limelight version
|
|
10
|
+
#
|
|
11
|
+
class VersionCommand < Command
|
|
12
|
+
|
|
13
|
+
install_as "--version"
|
|
14
|
+
|
|
15
|
+
def self.description #:nodoc:
|
|
16
|
+
return "Prints the current Limelight version"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
protected ###########################################
|
|
20
|
+
|
|
21
|
+
def process #:nodoc:
|
|
22
|
+
require 'limelight/version'
|
|
23
|
+
puts "Limelight, version #{VERSION::STRING}"
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
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
|
+
|
|
6
|
+
class Data
|
|
7
|
+
|
|
8
|
+
class << self
|
|
9
|
+
|
|
10
|
+
def reset
|
|
11
|
+
@root = nil
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def root
|
|
15
|
+
@root = Context.instance.os.dataRoot if @root == nil
|
|
16
|
+
return @root
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def downloads_dir
|
|
20
|
+
return File.join(root, "Downloads")
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def productions_dir
|
|
24
|
+
return File.join(root, "Productions")
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def establish_data_dirs
|
|
28
|
+
Dir.mkdir(root) if !File.exists?(root)
|
|
29
|
+
Dir.mkdir(downloads_dir) if !File.exists?(downloads_dir)
|
|
30
|
+
Dir.mkdir(productions_dir) if !File.exists?(productions_dir)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
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
|
+
|
|
6
|
+
module DSL
|
|
7
|
+
|
|
8
|
+
# An Exception used by many of the DSL Builders. Allows nice errors messages, with line numbers, to be printed.
|
|
9
|
+
#
|
|
10
|
+
class BuildException < Exception
|
|
11
|
+
|
|
12
|
+
attr_reader :filename, :line_number
|
|
13
|
+
|
|
14
|
+
def initialize(filename, file_contents, e)
|
|
15
|
+
@filename = filename
|
|
16
|
+
@file_contents = file_contents
|
|
17
|
+
@original_exception = e
|
|
18
|
+
@line_number = find_line_number
|
|
19
|
+
super(build_error_message)
|
|
20
|
+
set_backtrace(e.backtrace)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def find_line_number
|
|
24
|
+
lines = [@original_exception.message].concat @original_exception.backtrace
|
|
25
|
+
line_number = nil
|
|
26
|
+
lines.each do |line|
|
|
27
|
+
match = line.match(/\(eval\):(\d+):/)
|
|
28
|
+
if (match)
|
|
29
|
+
line_number = match[1].to_i
|
|
30
|
+
break
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
return line_number
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def build_error_message
|
|
37
|
+
lines = @file_contents.split("\n")
|
|
38
|
+
if @line_number
|
|
39
|
+
start_line = @line_number - 4 < 0 ? 0 : @line_number - 4
|
|
40
|
+
end_line = @line_number + 2 >= lines.size ? lines.size - 1: @line_number + 2
|
|
41
|
+
message = "#{@filename}:#{@line_number}: #{@original_exception.message}"
|
|
42
|
+
message << "\n\t----- #{@filename} lines #{start_line + 1} - #{end_line + 1} -----"
|
|
43
|
+
(start_line..end_line).each do |i|
|
|
44
|
+
message << "\n\t#{i == @line_number - 1 ? "*": " "} #{i+1}: #{lines[i]}"
|
|
45
|
+
end
|
|
46
|
+
else
|
|
47
|
+
message = "#{@filename}:? : #{@original_exception.message}"
|
|
48
|
+
end
|
|
49
|
+
message << "\n"
|
|
50
|
+
return message
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
end
|
|
55
|
+
end
|