sprout-as3-bundle 0.1.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. data/README +48 -0
  2. data/lib/sprout/as3.rb +5 -0
  3. data/lib/sprout/as3/version.rb +12 -0
  4. data/lib/sprout/as3_tasks.rb +7 -0
  5. data/lib/sprout/generators/class/USAGE +42 -0
  6. data/lib/sprout/generators/class/class_generator.rb +20 -0
  7. data/lib/sprout/generators/class/templates/Class.as +8 -0
  8. data/lib/sprout/generators/class/templates/Component.mxml +8 -0
  9. data/lib/sprout/generators/class/templates/TestCase.as +30 -0
  10. data/lib/sprout/generators/class/templates/TestSuite.as +18 -0
  11. data/lib/sprout/generators/project/project_generator.rb +26 -0
  12. data/lib/sprout/generators/project/templates/DefaultSkin.as +7 -0
  13. data/lib/sprout/generators/project/templates/MainClass.as +12 -0
  14. data/lib/sprout/generators/project/templates/ProjectSprouts.jpg +0 -0
  15. data/lib/sprout/generators/project/templates/README.txt +56 -0
  16. data/lib/sprout/generators/project/templates/TestRunner.as +15 -0
  17. data/lib/sprout/generators/project/templates/generate +21 -0
  18. data/lib/sprout/generators/project/templates/rakefile.rb +91 -0
  19. data/lib/sprout/generators/suite/USAGE +0 -0
  20. data/lib/sprout/generators/suite/suite_generator.rb +17 -0
  21. data/lib/sprout/generators/suite/templates/TestSuite.as +18 -0
  22. data/lib/sprout/generators/test/USAGE +37 -0
  23. data/lib/sprout/generators/test/templates/TestCase.as +30 -0
  24. data/lib/sprout/generators/test/templates/TestSuite.as +18 -0
  25. data/lib/sprout/generators/test/test_generator.rb +20 -0
  26. data/lib/sprout/tasks/asdoc_task.rb +39 -0
  27. data/lib/sprout/tasks/asunit_task.rb +44 -0
  28. data/lib/sprout/tasks/compc_doc.rb +508 -0
  29. data/lib/sprout/tasks/compc_task.rb +100 -0
  30. data/lib/sprout/tasks/fcsh_task.rb +13 -0
  31. data/lib/sprout/tasks/fdb_task.rb +0 -0
  32. data/lib/sprout/tasks/mxmlc_doc.rb +484 -0
  33. data/lib/sprout/tasks/mxmlc_task.rb +657 -0
  34. data/rakefile.rb +66 -0
  35. metadata +128 -0
data/README ADDED
@@ -0,0 +1,48 @@
1
+
2
+ = ActionScript 3.0 Bundle
3
+
4
+ The ActionScript 3 Bundle provides support for ActionScript 3.0 project and class generators as well as Rake build tasks.
5
+
6
+ You can install this bundle and run it's project generator as follows:
7
+
8
+ sprout -n as3 SomeProject
9
+
10
+ Once you have generated a new project, using a terminal, you can change to the newly created directory
11
+ and use script/generate to create a variety of other features.
12
+
13
+ To generate a new ActionScript class, test case and test suite, simply run the following from the
14
+ same directory as your rakefile.
15
+
16
+ script/generate class [fully-qualified-class-name]
17
+
18
+ For example:
19
+
20
+ script/generate class utils.MathUtil
21
+
22
+ While you can change where classes are created by modifying your ProjectModel,
23
+ if the default values are used, the following statements should be correct:
24
+
25
+ The class will be created in:
26
+ src/utils/MathUtil.as
27
+ The test case will will be created in:
28
+ test/utils/MathUtilTest.as
29
+ The test suite will be created or updated at:
30
+ test/AllTests.as
31
+
32
+ If the class name passed into this generator ends with 'Test', only a test case
33
+ and test suite will be generated in the test package and no class will be generated.
34
+
35
+ You can also only create the test case and test suite by calling it's generator directly as follows:
36
+
37
+ script/generate test utils.MathUtilTest
38
+
39
+ You can update only your test suite by simply initiating the suite generator as follows:
40
+
41
+ script/generate suite
42
+
43
+ = Available Rake Tasks
44
+
45
+ * Sprout::AsDocTask
46
+ * Sprout::AsUnitTask
47
+ * Sprout::COMPCTask
48
+ * Sprout::MXMLCTask
data/lib/sprout/as3.rb ADDED
@@ -0,0 +1,5 @@
1
+ require 'sprout'
2
+ require 'sprout/generator'
3
+ require 'sprout/as3_tasks'
4
+
5
+ Rails::Generator::Base.use_sprout_sources!('as3')
@@ -0,0 +1,12 @@
1
+ module Sprout # :nodoc:
2
+ class AS3 # :nodoc:
3
+ module VERSION #:nodoc:
4
+ MAJOR = 0
5
+ MINOR = 1
6
+ TINY = 27
7
+
8
+ STRING = [MAJOR, MINOR, TINY].join('.')
9
+ MAJOR_MINOR = [MAJOR, MINOR].join('.')
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,7 @@
1
+ sprout 'flashplayer'
2
+ require 'sprout/tasks/flashplayer_task'
3
+ require 'sprout/tasks/asunit_task'
4
+ require 'sprout/tasks/fdb_task'
5
+ require 'sprout/tasks/mxmlc_task'
6
+ require 'sprout/tasks/asdoc_task'
7
+ require 'sprout/tasks/compc_task'
@@ -0,0 +1,42 @@
1
+ Description:
2
+ Stubs out a new ActionScript class and test case and then rebuilds all test
3
+ suites. Pass the fully-qualified class name, either as a shell file target
4
+ or a dot-delimited string.
5
+
6
+ This command uses the Sprout::Generator::NamedBase class which will search
7
+ for configuration parameters as follows:
8
+
9
+ 1) Command line parameters will supercede any of the following.
10
+ 2) Search the current working directory and all parent directories
11
+ for a valid Rakefile.
12
+ 3) If a Rakefile is not found, classes will be created directly from the
13
+ current working directory.
14
+ 4) If a Rakefile is found, it will be loaded. If the rakefile instantiates
15
+ a Sprout::ProjectModel, that configuration will be used for source and test
16
+ paths, language preferences, and other values.
17
+ 5) If no ProjectModel is instantiated in your Rakefile, the Rakefile itself
18
+ will be treated as the project root, and classes will be created from that
19
+ directory.
20
+
21
+ You can edit the erb templates that this command uses in a variety of ways.
22
+ If you would like to edit the templates for all projects on your system,
23
+ simply copy the directory at: File.dirname(__FILE__) into:
24
+
25
+ #{SPROUT_HOME}/sprout/generators/
26
+
27
+ To edit templates for a single project, copy the directory to:
28
+
29
+ #{PROJECT_HOME}/script/generators/
30
+
31
+ Once you have the contents of this package copied, simply edit the files found
32
+ in the templates/ folder to your satisfaction.
33
+
34
+ Example:
35
+ `./script/generate class utils.MathUtil`
36
+
37
+ Will create the follow files:
38
+
39
+ Class: src/utils/MathUtil.as
40
+ Test Case: test/utils/MathUtilTest.as
41
+ Test Suites: test/AllTests.as
42
+ test/utils/AllTests.as
@@ -0,0 +1,20 @@
1
+
2
+ class ClassGenerator < Sprout::Generator::NamedBase # :nodoc:
3
+
4
+ def manifest
5
+ record do |m|
6
+ # m.class_collisions class_dir, "#{class_name}Controller", "#{class_name}ControllerTest", "#{class_name}Helper"
7
+
8
+ if(!user_requested_test)
9
+ m.directory full_class_dir
10
+ m.template 'Class.as', full_class_path
11
+ end
12
+
13
+ m.directory full_test_dir
14
+ m.template 'TestCase.as', full_test_case_path
15
+
16
+ m.template 'TestSuite.as', File.join(test_dir, 'AllTests.as')
17
+ end
18
+ end
19
+
20
+ end
@@ -0,0 +1,8 @@
1
+ package <%= package_name %> {
2
+
3
+ public class <%= class_name %> {
4
+
5
+ public function <%= class_name %>() {
6
+ }
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <mx:Container
3
+ xmlns:mx="http://www.adobe.com/2006/mxml"
4
+ xmlns="<%= package_name %>.*"
5
+ width="100%"
6
+ height="100%"
7
+ >
8
+ </mx:Container>
@@ -0,0 +1,30 @@
1
+ package <%= package_name %> {
2
+
3
+ import asunit.framework.TestCase;
4
+
5
+ public class <%= test_case_name %> extends TestCase {
6
+ private var <%= instance_name %>:<%= class_name %>;
7
+
8
+ public function <%= test_case_name %>(methodName:String=null) {
9
+ super(methodName)
10
+ }
11
+
12
+ override protected function setUp():void {
13
+ super.setUp();
14
+ <%= instance_name %> = new <%= class_name %>();
15
+ }
16
+
17
+ override protected function tearDown():void {
18
+ super.tearDown();
19
+ <%= instance_name %> = null;
20
+ }
21
+
22
+ public function testInstantiated():void {
23
+ assertTrue("<%= instance_name %> is <%= class_name %>", <%= instance_name %> is <%= class_name %>);
24
+ }
25
+
26
+ public function testFailure():void {
27
+ assertTrue("Failing test", false);
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,18 @@
1
+ package {
2
+ /**
3
+ * This file has been automatically created using
4
+ * #!/usr/bin/ruby script/generate suite
5
+ * If you modify it and run this script, your
6
+ * modifications will be lost!
7
+ */
8
+
9
+ import asunit.framework.TestSuite;<% test_case_classes.each do |test_case| %>
10
+ import <%= test_case %>;<% end %>
11
+
12
+ public class AllTests extends TestSuite {
13
+
14
+ public function AllTests() {<% test_case_classes.each do |test_case| %>
15
+ addTest(new <%= test_case %>());<% end %>
16
+ }
17
+ }
18
+ }
@@ -0,0 +1,26 @@
1
+
2
+ class ProjectGenerator < Sprout::Generator::NamedBase # :nodoc:
3
+
4
+ def manifest
5
+ record do |m|
6
+ base = class_name
7
+ m.directory base
8
+ m.directory File.join(base, 'assets/skins', project_name)
9
+ m.directory File.join(base, 'bin')
10
+ m.directory File.join(base, 'lib')
11
+ m.directory File.join(base, 'script')
12
+ m.directory File.join(base, 'src')
13
+ m.directory File.join(base, 'test')
14
+
15
+ m.file 'ProjectSprouts.jpg', File.join(base, 'assets/skins', project_name, 'ProjectSprouts.jpg')
16
+ m.template 'rakefile.rb', File.join(base, "rakefile.rb")
17
+ m.template 'README.txt', File.join(base, "README.txt")
18
+
19
+ m.template 'generate', File.join(base, 'script', "generate"), :chmod => 0755
20
+ m.template 'DefaultSkin.as', File.join(base, 'assets/skins', project_name + "Skin.as")
21
+
22
+ m.template 'MainClass.as', File.join(base, 'src', "#{class_name}.as")
23
+ m.template 'TestRunner.as', File.join(base, 'src', "#{class_name}Runner.as")
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,7 @@
1
+
2
+ package skins {
3
+ public class <%= project_name %>Skin {
4
+ [Embed(source="<%= project_name %>/ProjectSprouts.jpg")]
5
+ public static var ProjectSprouts:Class;
6
+ }
7
+ }
@@ -0,0 +1,12 @@
1
+ package {
2
+ import flash.display.Sprite;
3
+ import skins.<%= project_name %>Skin;
4
+
5
+ public class <%= project_name %> extends Sprite {
6
+
7
+ public function <%= project_name %>() {
8
+ addChild(new <%= project_name %>Skin.ProjectSprouts());
9
+ trace("<%= project_name %> instantiated!");
10
+ }
11
+ }
12
+ }
@@ -0,0 +1,56 @@
1
+
2
+ ########################################
3
+ This project was generated using Sprouts
4
+ http://code.google.com/p/projectsprouts/
5
+
6
+ Please report any bugs to:
7
+ http://code.google.com/p/projectsprouts/issues/list
8
+
9
+ Please feel free to ask questions at:
10
+ http://groups.google.com/group/projectsprouts
11
+
12
+ ########################################
13
+ Using your favorite terminal, cd to this directory have fun!
14
+
15
+ ########################################
16
+ To create a new ActionScript class, TestCase and rebuild all project TestSuites:
17
+
18
+ script/generate class -s utils.MathUtil
19
+
20
+ ########################################
21
+ To create a new Interface begin the name with I + Capital letter (eg: ISomeName)
22
+ or end the name with 'able'
23
+
24
+ Name begins with Capital 'I' followed by another capital letter
25
+ script/generate class utils.ISomeName
26
+
27
+ or
28
+
29
+ Name ends with 'able'
30
+ script/generate class utils.Observable
31
+
32
+ or
33
+
34
+ Explicitly identify interface creation
35
+ script/generate interface utils.SomeInterface
36
+
37
+ ########################################
38
+ To create a new TestCase only, enter the following:
39
+
40
+ script/generate test utils.SomeTest
41
+
42
+ ########################################
43
+ To compile and launch your application:
44
+
45
+ rake
46
+
47
+ ########################################
48
+ To compile and launch your test suites:
49
+
50
+ rake test
51
+
52
+ ########################################
53
+ To see all available rake tasks:
54
+
55
+ rake -T
56
+
@@ -0,0 +1,15 @@
1
+ package {
2
+ import asunit.textui.TestRunner;
3
+
4
+ public class <%= project_name %>Runner extends TestRunner {
5
+
6
+ public function <%= project_name %>Runner() {
7
+ // start(clazz:Class, methodName:String, showTrace:Boolean)
8
+ // NOTE: sending a particular class and method name will
9
+ // execute setUp(), the method and NOT tearDown.
10
+ // This allows you to get visual confirmation while developing
11
+ // visual entities
12
+ start(AllTests, null, TestRunner.SHOW_TRACE);
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env ruby
2
+ require 'rubygems'
3
+ require 'sprout'
4
+ sprout 'sprout-as3-bundle'
5
+
6
+ # Add a class name if TestSuites were generated
7
+ if(ARGV.size == 1 && ARGV[0] == 'suite')
8
+ ARGV << 'AllTests'
9
+ end
10
+
11
+ # Insert class type by default
12
+ if(ARGV.size == 1)
13
+ ARGV.unshift('class')
14
+ end
15
+
16
+ # Execute generators like this:
17
+ # script/generate class utils.MathUtil
18
+ # script/generate suite
19
+ # script/generate test utils.MathUtilTest
20
+
21
+ Sprout::Sprout.generate('as3', ARGV.shift, ARGV, File.dirname(File.dirname(__FILE__)))
@@ -0,0 +1,91 @@
1
+ require 'sprout'
2
+ sprout 'as3'
3
+
4
+ ############################################
5
+ # Uncomment and modify any of the following:
6
+ model = Sprout::ProjectModel.instance
7
+ model.project_name = '<%= project_name %>'
8
+
9
+ # Default Values:
10
+ # model.src_dir = 'src'
11
+ # model.lib_dir = 'lib'
12
+ # model.swc_dir = 'lib'
13
+ # model.bin_dir = 'bin'
14
+ # model.test_dir = 'test'
15
+ # model.asset_dir = 'assets'
16
+ model.language = 'as3'
17
+
18
+ output = "#{model.bin_dir}/<%= project_name %>.swf"
19
+ test_output = "#{model.bin_dir}/<%= project_name %>Runner.swf"
20
+
21
+ ############################################
22
+ # Set up remote library tasks
23
+ # the task name will be converted to a string
24
+ # and modified as follows sprout-#{name}-library
25
+ # unless you pass t.gem_name = 'full-sprout-name'
26
+ # For libraries that contain source code, the
27
+ # task name will also be the folder name that
28
+ # will be added to ProjectModel.lib_dir
29
+ # For a complete list of available sprout gems:
30
+ # http://gems.projectsprouts.org/quick/index
31
+ # You can also search that list directly from a
32
+ # terminal as follows:
33
+ # gem search -r library
34
+ # Any gems with 'sprout-' prefix and '-library'
35
+ # suffix can be be used as a library task.
36
+
37
+ library :asunit3
38
+ library :corelib
39
+
40
+ ############################################
41
+ # Launch the application using the Flash Player
42
+ # NOTE: double-quoted strings in ruby enable
43
+ # runtime expression evaluation using the
44
+ # following syntax:
45
+ # "Some String with: #{variable}"
46
+
47
+ desc "Compile and run main application"
48
+ flashplayer :run => output
49
+
50
+ # Make 'run' the default task
51
+ task :default => :run
52
+
53
+ ############################################
54
+ # Launch the test suites using the Flash Player
55
+
56
+ desc "Compile and run test suites"
57
+ flashplayer :test => test_output
58
+
59
+ ############################################
60
+ # Compile your application using mxmlc
61
+ # Any library tasks that are set as
62
+ # dependencies will automatically be added
63
+ # to the compiler source or swc paths
64
+
65
+ desc "Compile application"
66
+ mxmlc output => :corelib do |t|
67
+ t.warnings = true
68
+ t.default_background_color = '#FFFFFF'
69
+ t.default_frame_rate = 24
70
+ t.default_size = '600 400'
71
+ t.input = "#{model.src_dir}/<%= project_name %>.as"
72
+ t.source_path << model.asset_dir
73
+ # t.source_path << "#{model.lib_dir}/non-sprout-src-library"
74
+ # t.library_path << "#{model.lib_dir}/non-sprout.swc"
75
+ end
76
+
77
+ ############################################
78
+ # Compile test harness using mxmlc
79
+
80
+ desc "Compile test harness"
81
+ mxmlc test_output => [:asunit3, :corelib] do |t|
82
+ t.warnings = true
83
+ t.default_background_color = '#FFFFFF'
84
+ t.default_frame_rate = 24
85
+ t.verbose_stacktraces = true
86
+ t.default_size = "800 450"
87
+ t.input = "#{model.src_dir}/<%= project_name %>Runner.as"
88
+ t.source_path << model.src_dir
89
+ t.source_path << model.test_dir
90
+ t.source_path << model.asset_dir
91
+ end