epall-limelight 0.5.0-java
Sign up to get free protection for your applications and to get access to all the features.
- 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,53 @@
|
|
1
|
+
#- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
|
2
|
+
#- Limelight and all included source files are distributed under terms of the GNU LGPL.
|
3
|
+
|
4
|
+
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
5
|
+
require 'limelight/styles'
|
6
|
+
|
7
|
+
describe Limelight::Styles do
|
8
|
+
|
9
|
+
def const_format(name)
|
10
|
+
return name.gsub(" ", "")
|
11
|
+
end
|
12
|
+
|
13
|
+
def method_format(name)
|
14
|
+
return name.downcase.gsub(" ", "_")
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should have all the styles" do
|
18
|
+
Limelight::Styles::Style::STYLE_LIST.each do |descriptor|
|
19
|
+
const_name = const_format(descriptor.name)
|
20
|
+
Limelight::Styles.const_get(const_name)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
# it "should generate code" do
|
25
|
+
# Limelight::Styles::Style::STYLE_LIST.each do |descriptor|
|
26
|
+
# const_name = const_format(descriptor.name)
|
27
|
+
# method_name = method_format(descriptor.name)
|
28
|
+
# spaces = 40 - const_name.length
|
29
|
+
# puts "# Specifies the #{descriptor.name} of a prop."
|
30
|
+
# puts "#"
|
31
|
+
# puts "# style.#{method_name} = <value>"
|
32
|
+
# puts "#"
|
33
|
+
# puts "#{const_name} #{'' * spaces} = Limelight::Styles::Style::STYLE_LIST.get(#{descriptor.index})"
|
34
|
+
# puts ""
|
35
|
+
# end
|
36
|
+
# end
|
37
|
+
|
38
|
+
# it "should generate code" do
|
39
|
+
# Limelight::Styles::Style::STYLE_LIST.each do |descriptor|
|
40
|
+
# const_name = const_format(descriptor.name)
|
41
|
+
# method_name = method_format(descriptor.name)
|
42
|
+
# spaces = 40 - const_name.length
|
43
|
+
# puts "<tr>"
|
44
|
+
# puts "\t<td>'''#{method_name}'''</td>"
|
45
|
+
# puts "\t<td></td>"
|
46
|
+
# puts "\t<td>#{descriptor.defaultValue}</td>"
|
47
|
+
# puts "\t<td></td>"
|
48
|
+
# puts "</tr>"
|
49
|
+
# end
|
50
|
+
# end
|
51
|
+
|
52
|
+
|
53
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
#- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
|
2
|
+
#- Limelight and all included source files are distributed under terms of the GNU LGPL.
|
3
|
+
|
4
|
+
require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
|
5
|
+
require 'limelight/templates/production_templater'
|
6
|
+
|
7
|
+
describe Limelight::Templates::ProductionTemplater do
|
8
|
+
|
9
|
+
it "should initialize settings" do
|
10
|
+
templater = Limelight::Templates::ProductionTemplater.new(:production_path => "some_production", :scene_path => "default_scene", :spec_path => "spec")
|
11
|
+
|
12
|
+
templater.target_root.should == "."
|
13
|
+
templater.source_root.should == Limelight::Templates::Templater.source_dir
|
14
|
+
templater.tokens[:PRODUCTION_NAME].should == "Some Production"
|
15
|
+
templater.tokens[:DEFAULT_SCENE_NAME].should == "default_scene"
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should initialize settings for deep dir name" do
|
19
|
+
templater = Limelight::Templates::ProductionTemplater.new(:production_path => "dir1/dir2/some_production", :scene_path => "default_scene", :spec_path => "spec")
|
20
|
+
|
21
|
+
templater.target_root.should == "./dir1/dir2"
|
22
|
+
templater.source_root.should == Limelight::Templates::Templater.source_dir
|
23
|
+
templater.tokens[:PRODUCTION_NAME].should == "Some Production"
|
24
|
+
templater.tokens[:DEFAULT_SCENE_NAME].should == "default_scene"
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should initialize settings for root path" do
|
28
|
+
templater = Limelight::Templates::ProductionTemplater.new(:production_path => "/some_production", :scene_path => "default_scene", :spec_path => "spec")
|
29
|
+
|
30
|
+
templater.target_root.should == "/"
|
31
|
+
templater.source_root.should == Limelight::Templates::Templater.source_dir
|
32
|
+
templater.tokens[:PRODUCTION_NAME].should == "Some Production"
|
33
|
+
templater.tokens[:DEFAULT_SCENE_NAME].should == "default_scene"
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should generate files" do
|
37
|
+
templater = Limelight::Templates::ProductionTemplater.new(:production_path => "some_production", :scene_path => "default_scene", :spec_path => "spec")
|
38
|
+
|
39
|
+
templater.should_receive(:file).with("some_production/production.rb", "production/production.rb.template", templater.tokens)
|
40
|
+
templater.should_receive(:file).with("some_production/stages.rb", "production/stages.rb.template", templater.tokens)
|
41
|
+
templater.should_receive(:file).with("some_production/styles.rb", "production/styles.rb.template", templater.tokens)
|
42
|
+
templater.should_receive(:file).with("some_production/spec/spec_helper.rb", "production/spec/spec_helper.rb.template", templater.tokens)
|
43
|
+
|
44
|
+
templater.generate
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should generate files with different paths" do
|
48
|
+
templater = Limelight::Templates::ProductionTemplater.new(:production_path => "some_production", :scene_path => "default_scene", :spec_path => "../spec")
|
49
|
+
|
50
|
+
templater.should_receive(:file).with("some_production/production.rb", "production/production.rb.template", templater.tokens)
|
51
|
+
templater.should_receive(:file).with("some_production/stages.rb", "production/stages.rb.template", templater.tokens)
|
52
|
+
templater.should_receive(:file).with("some_production/styles.rb", "production/styles.rb.template", templater.tokens)
|
53
|
+
templater.should_receive(:file).with("some_production/../spec/spec_helper.rb", "production/spec/spec_helper.rb.template", templater.tokens)
|
54
|
+
|
55
|
+
templater.generate
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should have tokens" do
|
59
|
+
templater = Limelight::Templates::ProductionTemplater.new(:production_path => "some_production", :scene_path => "default_scene", :spec_path => "spec")
|
60
|
+
|
61
|
+
templater.tokens[:PRODUCTION_NAME].should == "Some Production"
|
62
|
+
templater.tokens[:DEFAULT_SCENE_NAME].should == "default_scene"
|
63
|
+
templater.tokens[:CURRENT_VERSION].should == Limelight::VERSION::STRING
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
#- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
|
2
|
+
#- Limelight and all included source files are distributed under terms of the GNU LGPL.
|
3
|
+
|
4
|
+
require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
|
5
|
+
require 'limelight/templates/scene_templater'
|
6
|
+
|
7
|
+
describe Limelight::Templates::SceneTemplater do
|
8
|
+
|
9
|
+
it "should initialize" do
|
10
|
+
templater = Limelight::Templates::SceneTemplater.new(:production_path => "prod", :scene_path => "some_scene", :spec_path => "spec")
|
11
|
+
|
12
|
+
templater.target_root.should == "./prod"
|
13
|
+
templater.source_root.should == Limelight::Templates::Templater.source_dir
|
14
|
+
templater.tokens[:SCENE_NAME].should == "some_scene"
|
15
|
+
templater.tokens[:SCENE_TITLE].should == "Some Scene"
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should generate files" do
|
19
|
+
templater = Limelight::Templates::SceneTemplater.new(:production_path => "prod", :scene_path => "some_scene", :spec_path => "spec")
|
20
|
+
|
21
|
+
templater.should_receive(:file).with("some_scene/props.rb", "scene/props.rb.template", templater.tokens)
|
22
|
+
templater.should_receive(:file).with("some_scene/styles.rb", "scene/styles.rb.template", templater.tokens)
|
23
|
+
templater.should_receive(:directory).with("some_scene/players")
|
24
|
+
templater.should_receive(:file).with("spec/some_scene/some_scene_spec.rb", "scene_spec/scene_spec.rb.template", templater.tokens)
|
25
|
+
|
26
|
+
templater.generate
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should generate files for a nested scene" do
|
30
|
+
templater = Limelight::Templates::SceneTemplater.new(:production_path => "prod", :scene_path => "nested/some_scene", :spec_path => "spec")
|
31
|
+
|
32
|
+
templater.should_receive(:file).with("nested/some_scene/props.rb", "scene/props.rb.template", templater.tokens)
|
33
|
+
templater.should_receive(:file).with("nested/some_scene/styles.rb", "scene/styles.rb.template", templater.tokens)
|
34
|
+
templater.should_receive(:directory).with("nested/some_scene/players")
|
35
|
+
templater.should_receive(:file).with("spec/nested/some_scene/some_scene_spec.rb", "scene_spec/scene_spec.rb.template", templater.tokens)
|
36
|
+
|
37
|
+
templater.generate
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should generate files" do
|
41
|
+
templater = Limelight::Templates::SceneTemplater.new(:production_path => "prod", :scene_path => "some_scene", :spec_path => "../spec")
|
42
|
+
|
43
|
+
templater.should_receive(:file).with("some_scene/props.rb", "scene/props.rb.template", templater.tokens)
|
44
|
+
templater.should_receive(:file).with("some_scene/styles.rb", "scene/styles.rb.template", templater.tokens)
|
45
|
+
templater.should_receive(:directory).with("some_scene/players")
|
46
|
+
templater.should_receive(:file).with("../spec/some_scene/some_scene_spec.rb", "scene_spec/scene_spec.rb.template", templater.tokens)
|
47
|
+
|
48
|
+
templater.generate
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
#- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
|
2
|
+
#- Limelight and all included source files are distributed under terms of the GNU LGPL.
|
3
|
+
|
4
|
+
require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
|
5
|
+
require 'limelight/templates/templater_logger'
|
6
|
+
|
7
|
+
describe Limelight::Templates::TemplaterLogger do
|
8
|
+
|
9
|
+
before(:each) do
|
10
|
+
@logger = Limelight::Templates::TemplaterLogger.new
|
11
|
+
@in, @out = IO.pipe
|
12
|
+
@logger.output = @out
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should have standard out as output" do
|
16
|
+
@logger = Limelight::Templates::TemplaterLogger.new
|
17
|
+
@logger.output.should == STDOUT
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should handle creating directories" do
|
21
|
+
@logger.creating_directory("dir1")
|
22
|
+
|
23
|
+
result = @in.readline
|
24
|
+
result.strip.should == "creating directory: dir1"
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should handle creating files" do
|
28
|
+
@logger.creating_file("file1")
|
29
|
+
|
30
|
+
result = @in.readline
|
31
|
+
result.strip.should == "creating file: file1"
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should handle file already exists" do
|
35
|
+
@logger.file_already_exists("file1")
|
36
|
+
|
37
|
+
result = @in.readline
|
38
|
+
result.strip.should == "file already exists: file1"
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
@@ -0,0 +1,107 @@
|
|
1
|
+
#- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
|
2
|
+
#- Limelight and all included source files are distributed under terms of the GNU LGPL.
|
3
|
+
|
4
|
+
require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
|
5
|
+
require 'limelight/templates/templater'
|
6
|
+
|
7
|
+
describe Limelight::Templates::Templater do
|
8
|
+
|
9
|
+
before(:each) do
|
10
|
+
TestDir.clean
|
11
|
+
@src_dir = File.join(TestDir.root, "src")
|
12
|
+
@logger = make_mock("logger")
|
13
|
+
@templater = Limelight::Templates::Templater.new(TestDir.root, @src_dir)
|
14
|
+
@templater.logger = @logger
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should have a templater logger" do
|
18
|
+
@templater = Limelight::Templates::Templater.new(TestDir.root, @src_dir)
|
19
|
+
@templater.logger.should_not == nil
|
20
|
+
@templater.logger.class.should == Limelight::Templates::TemplaterLogger
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should have a target root and source root directory" do
|
24
|
+
@templater.target_root.should == TestDir.root
|
25
|
+
@templater.source_root.should == @src_dir
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should prefix target root with dot if not absolute" do
|
29
|
+
Limelight::Templates::Templater.clarify("blah").should == "./blah"
|
30
|
+
Limelight::Templates::Templater.clarify("one/two").should == "./one/two"
|
31
|
+
Limelight::Templates::Templater.clarify("/root").should == "/root"
|
32
|
+
Limelight::Templates::Templater.clarify("./blah").should == "./blah"
|
33
|
+
Limelight::Templates::Templater.clarify("../blah").should == "../blah"
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should create a directory" do
|
37
|
+
@logger.should_receive(:creating_directory).with("#{TestDir.root}/blah")
|
38
|
+
|
39
|
+
@templater.directory "blah"
|
40
|
+
|
41
|
+
File.exists?(File.join(TestDir.root, "blah")).should == true
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should create nested directories" do
|
45
|
+
@logger.should_receive(:creating_directory).with("#{TestDir.root}/dir1")
|
46
|
+
@logger.should_receive(:creating_directory).with("#{TestDir.root}/dir1/dir2")
|
47
|
+
|
48
|
+
@templater.directory "dir1/dir2"
|
49
|
+
|
50
|
+
File.exists?(File.join(TestDir.root, "dir1/dir2")).should == true
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should create files from source" do
|
54
|
+
TestDir.create_file("src/file1.txt", "blah")
|
55
|
+
@logger.should_receive(:creating_file).with("#{TestDir.root}/f1.txt")
|
56
|
+
|
57
|
+
@templater.file "f1.txt", "file1.txt"
|
58
|
+
|
59
|
+
File.exists?(File.join(TestDir.root, "f1.txt")).should == true
|
60
|
+
IO.read(File.join(TestDir.root, "f1.txt")).should == "blah"
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should create files nested in directories" do
|
64
|
+
TestDir.create_file("src/file1.txt", "blah")
|
65
|
+
|
66
|
+
@logger.should_receive(:creating_directory).with("#{TestDir.root}/dir1")
|
67
|
+
@logger.should_receive(:creating_file).with("#{TestDir.root}/dir1/f1.txt")
|
68
|
+
|
69
|
+
@templater.file "dir1/f1.txt", "file1.txt"
|
70
|
+
|
71
|
+
path = File.join(TestDir.root, "dir1", "f1.txt")
|
72
|
+
File.exists?(path).should == true
|
73
|
+
IO.read(path).should == "blah"
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should skip files that already exist" do
|
77
|
+
TestDir.create_file("src/file1.txt", "blah")
|
78
|
+
TestDir.create_file("f1.txt", "existing content")
|
79
|
+
|
80
|
+
@logger.should_receive(:file_already_exists).with("#{TestDir.root}/f1.txt")
|
81
|
+
|
82
|
+
@templater.file "f1.txt", "file1.txt"
|
83
|
+
|
84
|
+
IO.read(File.join(TestDir.root, "f1.txt")).should == "existing content"
|
85
|
+
end
|
86
|
+
|
87
|
+
it "should replace one token in files" do
|
88
|
+
TestDir.create_file("src/file1.txt", "abc !-TOKEN1-! 123")
|
89
|
+
@logger.should_receive(:creating_file).with("#{TestDir.root}/f1.txt")
|
90
|
+
|
91
|
+
@templater.file "f1.txt", "file1.txt", :TOKEN1 => "you know me"
|
92
|
+
|
93
|
+
File.exists?(File.join(TestDir.root, "f1.txt")).should == true
|
94
|
+
IO.read(File.join(TestDir.root, "f1.txt")).should == "abc you know me 123"
|
95
|
+
end
|
96
|
+
|
97
|
+
it "should replace multiple tokens in files" do
|
98
|
+
TestDir.create_file("src/file1.txt", "!-TOKEN0-! !-TOKEN1-! !-TOKEN2-!")
|
99
|
+
@logger.should_receive(:creating_file).with("#{TestDir.root}/f1.txt")
|
100
|
+
|
101
|
+
@templater.file "f1.txt", "file1.txt", :TOKEN0 => "1", :TOKEN1 => "2", :TOKEN2 => "3"
|
102
|
+
|
103
|
+
File.exists?(File.join(TestDir.root, "f1.txt")).should == true
|
104
|
+
IO.read(File.join(TestDir.root, "f1.txt")).should == "1 2 3"
|
105
|
+
end
|
106
|
+
|
107
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
#- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
|
2
|
+
#- Limelight and all included source files are distributed under terms of the GNU LGPL.
|
3
|
+
|
4
|
+
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
5
|
+
require 'limelight/theater'
|
6
|
+
require 'limelight/stage'
|
7
|
+
|
8
|
+
describe Limelight::Theater do
|
9
|
+
|
10
|
+
before(:each) do
|
11
|
+
@theater = Limelight::Theater.new
|
12
|
+
@stage = @theater.add_stage("default")
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should allow adding of stages" do
|
16
|
+
@theater.stages.length.should == 1
|
17
|
+
@theater.stages[0].should == @stage
|
18
|
+
|
19
|
+
@stage.theater.should == @theater
|
20
|
+
@stage.name.should == "default"
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should not return the actual_list of stages" do
|
24
|
+
@theater.stages.should_not be(@theater.stages)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should know it's active stage" do
|
28
|
+
stage2 = @theater.add_stage("two")
|
29
|
+
|
30
|
+
@theater.active_stage.should == nil
|
31
|
+
@theater.stage_activated(stage2)
|
32
|
+
@theater.active_stage.should == stage2
|
33
|
+
@theater.stage_activated(@stage)
|
34
|
+
@theater.active_stage.should == @stage
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should allow recalling stage by name" do
|
38
|
+
stage2 = @theater.add_stage("two")
|
39
|
+
stage3 = @theater.add_stage("three")
|
40
|
+
|
41
|
+
@theater["default"].should == @stage
|
42
|
+
@theater["two"].should == stage2
|
43
|
+
@theater["three"].should == stage3
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should not allow duplicate theater names" do
|
47
|
+
lambda { @theater.add_stage("default") }.should raise_error(Limelight::LimelightException, "Duplicate stage name: 'default'")
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should have a default stage" do
|
51
|
+
@theater.default_stage.name.should == "Limelight"
|
52
|
+
@theater.default_stage.theater.should == @theater
|
53
|
+
|
54
|
+
@theater.default_stage.should be(@theater.default_stage)
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should construct stages with options" do
|
58
|
+
@theater.add_stage("Joe", :title => "Blowey")
|
59
|
+
|
60
|
+
@theater["Joe"].title.should == "Blowey"
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should remove closed stages" do
|
64
|
+
@theater.stage_activated(@stage)
|
65
|
+
|
66
|
+
@theater.stage_closed(@stage)
|
67
|
+
|
68
|
+
@theater["default"].should == nil
|
69
|
+
@theater.active_stage.should == nil
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
#- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
|
2
|
+
#- Limelight and all included source files are distributed under terms of the GNU LGPL.
|
3
|
+
|
4
|
+
require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
|
5
|
+
require 'limelight/util/downloader'
|
6
|
+
|
7
|
+
describe Limelight::Util::Downloader do
|
8
|
+
|
9
|
+
before(:each) do
|
10
|
+
Limelight::Data.stub!(:root).and_return(File.expand_path(File.join(TestDir.root, "Limelight")))
|
11
|
+
@downloader = Limelight::Util::Downloader.new
|
12
|
+
end
|
13
|
+
|
14
|
+
after(:each) do
|
15
|
+
TestDir.clean
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should download a local file with the file protocol" do
|
19
|
+
test_file = TestDir.create_file("test_dir/test_file.txt", "a test file")
|
20
|
+
|
21
|
+
path = @downloader.download("file://#{test_file}")
|
22
|
+
|
23
|
+
File.basename(path).should == "test_file.txt"
|
24
|
+
File.dirname(path).should == Limelight::Data.downloads_dir
|
25
|
+
File.exists?(path).should == true
|
26
|
+
IO.read(path).should == "a test file"
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should be find unique filenames" do
|
30
|
+
test_file = TestDir.create_file("test_dir/test_file.txt", "a test file")
|
31
|
+
|
32
|
+
path1 = @downloader.download("file://#{test_file}")
|
33
|
+
path2 = @downloader.download("file://#{test_file}")
|
34
|
+
path3 = @downloader.download("file://#{test_file}")
|
35
|
+
|
36
|
+
File.basename(path1).should == "test_file.txt"
|
37
|
+
File.basename(path2).should == "test_file_2.txt"
|
38
|
+
File.basename(path3).should == "test_file_3.txt"
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should raise not found exception whe bad URLs" do
|
42
|
+
test_file = TestDir.path("test_dir/test_file.txt")
|
43
|
+
|
44
|
+
lambda { @downloader.download("file://#{test_file}") }.should raise_error(Limelight::LimelightException, "Download failed. Not found: #{test_file}")
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should raise error on failed download" do
|
48
|
+
lambda { @downloader.download("http://blah.blah/blah.blah") }.should raise_error(Limelight::LimelightException)
|
49
|
+
|
50
|
+
path = File.join(Limelight::Data.downloads_dir, "blah.blah")
|
51
|
+
File.exists?(path).should == false
|
52
|
+
end
|
53
|
+
|
54
|
+
# The following tests should not run as part of the normal suite. They are expensive and require the net.
|
55
|
+
|
56
|
+
# it "should downaload via HTTP" do
|
57
|
+
# path = @downloader.download("http://limelight.8thlight.com/images/logo.png")
|
58
|
+
#
|
59
|
+
# File.basename(path).should == "logo.png"
|
60
|
+
# File.dirname(path).should == Limelight::Data.downloads_dir
|
61
|
+
# File.exists?(path).should == true
|
62
|
+
# end
|
63
|
+
#
|
64
|
+
# it "should handle 404s from HTTP" do
|
65
|
+
# url = "http://limelight.8thlight.com/blah.blah"
|
66
|
+
# lambda { @downloader.download(url) }.should raise_error(Limelight::LimelightException, "Download failed. 404: Not Found")
|
67
|
+
#
|
68
|
+
# path = File.join(Limelight::Data.downloads_dir, "blah.blah")
|
69
|
+
# File.exists?(path).should == false
|
70
|
+
# end
|
71
|
+
#
|
72
|
+
# it "should downaload via HTTPS" do
|
73
|
+
# path = @downloader.download("https://www.8thlight.com/images/header.jpg")
|
74
|
+
#
|
75
|
+
# File.basename(path).should == "header.jpg"
|
76
|
+
# File.dirname(path).should == Limelight::Data.downloads_dir
|
77
|
+
# File.exists?(path).should == true
|
78
|
+
# end
|
79
|
+
#
|
80
|
+
# it "should know how to get the filename from Content-Disposition" do
|
81
|
+
# path = @downloader.download("http://localhost:3000/playbills/1.llp")
|
82
|
+
#
|
83
|
+
# File.basename(path).should == "simon.llp"
|
84
|
+
# end
|
85
|
+
#
|
86
|
+
# it "should handle HTTP redirects" do
|
87
|
+
# path = @downloader.download("http://rubyforge.org/frs/download.php/37521/limelight-0.0.1-java.gem")
|
88
|
+
#
|
89
|
+
# File.basename(path).should == "limelight-0.0.1-java.gem"
|
90
|
+
# end
|
91
|
+
|
92
|
+
end
|