gator-as3-robotlegs 0.0.2.pre
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.rakeTasks +7 -0
- data/Gemfile +20 -0
- data/Gemfile.lock +41 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +26 -0
- data/Rakefile +55 -0
- data/VERSION +1 -0
- data/lib/gator/as3/robotlegs/generators.rb +3 -0
- data/lib/gator/as3/robotlegs/generators/collection.rb +29 -0
- data/lib/gator/as3/robotlegs/generators/command.as.tt +12 -0
- data/lib/gator/as3/robotlegs/generators/command.rb +57 -0
- data/lib/gator/as3/robotlegs/generators/context.as.tt +35 -0
- data/lib/gator/as3/robotlegs/generators/context.rb +57 -0
- data/lib/gator/as3/robotlegs/generators/mediator.as.tt +23 -0
- data/lib/gator/as3/robotlegs/generators/mediator.rb +68 -0
- data/lib/gator/as3/robotlegs/generators/model.as.tt +12 -0
- data/lib/gator/as3/robotlegs/generators/model.rb +57 -0
- data/lib/gator/as3/robotlegs/generators/service.as.tt +12 -0
- data/lib/gator/as3/robotlegs/generators/service.rb +57 -0
- data/lib/gator/as3/robotlegs/generators/test/asunit4.rb +3 -0
- data/lib/gator/as3/robotlegs/generators/test/asunit4/collection.rb +25 -0
- data/lib/gator/as3/robotlegs/generators/test/asunit4/command.as.tt +35 -0
- data/lib/gator/as3/robotlegs/generators/test/asunit4/command.rb +63 -0
- data/lib/gator/as3/robotlegs/generators/test/asunit4/mediator.as.tt +46 -0
- data/lib/gator/as3/robotlegs/generators/test/asunit4/mediator.rb +74 -0
- data/lib/gator/as3/robotlegs/generators/test/asunit4/runner.as.tt +21 -0
- data/lib/gator/as3/robotlegs/generators/test/asunit4/suite.as.tt +8 -0
- data/lib/gator/as3/robotlegs/generators/test/asunit4/suite.rb +43 -0
- data/lib/gator/as3/robotlegs/generators/test/asunit4/view.as.tt +41 -0
- data/lib/gator/as3/robotlegs/generators/test/asunit4/view.rb +64 -0
- data/lib/gator/as3/robotlegs/generators/view.as.tt +17 -0
- data/lib/gator/as3/robotlegs/generators/view.rb +57 -0
- data/lib/gator/as3/robotlegs/generators/view_with_mediator.rb +24 -0
- data/spec/gator.rb +10 -0
- data/spec/generators/collection_spec.rb +11 -0
- data/spec/generators/command_spec.rb +12 -0
- data/spec/sandbox/gator.rb +10 -0
- data/spec/spec_helper.rb +81 -0
- metadata +208 -0
@@ -0,0 +1,57 @@
|
|
1
|
+
module Gator
|
2
|
+
module AS3
|
3
|
+
module RobotLegs
|
4
|
+
|
5
|
+
class ModelGenerator < Task
|
6
|
+
include Gator::Project
|
7
|
+
|
8
|
+
define :command => "model",
|
9
|
+
:usage => "generate as3 rl model CLASS_NAME", :description => "Creates RobotLegs Model class."
|
10
|
+
|
11
|
+
argument :classname
|
12
|
+
|
13
|
+
class_option :test, :default => false
|
14
|
+
|
15
|
+
def self.source_root
|
16
|
+
File.dirname __FILE__
|
17
|
+
end
|
18
|
+
|
19
|
+
def generate
|
20
|
+
src = project.path(:source, :main, :as3)
|
21
|
+
@package_name, @class_name = split_class_name(classname)
|
22
|
+
@class_name += "Model"
|
23
|
+
src = File.join(src, @package_name.split(".").join(File::SEPARATOR)) unless @package_name == ""
|
24
|
+
template "model.as.tt", File.join(src, "#{@class_name}.as")
|
25
|
+
end
|
26
|
+
|
27
|
+
def generate_test
|
28
|
+
return unless options[:test]
|
29
|
+
invoke resolve_subcommand(["test", "model"],["test","klass"])
|
30
|
+
end
|
31
|
+
|
32
|
+
no_tasks {
|
33
|
+
|
34
|
+
def package_name
|
35
|
+
@package_name
|
36
|
+
end
|
37
|
+
|
38
|
+
def class_name
|
39
|
+
@class_name
|
40
|
+
end
|
41
|
+
|
42
|
+
}
|
43
|
+
|
44
|
+
protected
|
45
|
+
|
46
|
+
def split_class_name(class_name)
|
47
|
+
pieces = class_name.split "."
|
48
|
+
class_name = pieces.pop
|
49
|
+
package_name = pieces.join "."
|
50
|
+
return package_name, class_name
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
module Gator
|
2
|
+
module AS3
|
3
|
+
module RobotLegs
|
4
|
+
|
5
|
+
class ServiceGenerator < Task
|
6
|
+
include Gator::Project
|
7
|
+
|
8
|
+
define :command => "service",
|
9
|
+
:usage => "generate as3 rl service CLASS_NAME", :description => "Creates RobotLegs Service class."
|
10
|
+
|
11
|
+
argument :classname
|
12
|
+
|
13
|
+
class_option :test, :default => false
|
14
|
+
|
15
|
+
def self.source_root
|
16
|
+
File.dirname __FILE__
|
17
|
+
end
|
18
|
+
|
19
|
+
def generate
|
20
|
+
src = project.path(:source, :main, :as3)
|
21
|
+
@package_name, @class_name = split_class_name(classname)
|
22
|
+
@class_name += "Service"
|
23
|
+
src = File.join(src, @package_name.split(".").join(File::SEPARATOR)) unless @package_name == ""
|
24
|
+
template "service.as.tt", File.join(src, "#{@class_name}.as")
|
25
|
+
end
|
26
|
+
|
27
|
+
def generate_test
|
28
|
+
return unless options[:test]
|
29
|
+
invoke resolve_subcommand(["test", "service"],["test","klass"])
|
30
|
+
end
|
31
|
+
|
32
|
+
no_tasks {
|
33
|
+
|
34
|
+
def package_name
|
35
|
+
@package_name
|
36
|
+
end
|
37
|
+
|
38
|
+
def class_name
|
39
|
+
@class_name
|
40
|
+
end
|
41
|
+
|
42
|
+
}
|
43
|
+
|
44
|
+
protected
|
45
|
+
|
46
|
+
def split_class_name(class_name)
|
47
|
+
pieces = class_name.split "."
|
48
|
+
class_name = pieces.pop
|
49
|
+
package_name = pieces.join "."
|
50
|
+
return package_name, class_name
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/command'
|
2
|
+
require File.dirname(__FILE__) + '/mediator'
|
3
|
+
require File.dirname(__FILE__) + '/view'
|
4
|
+
require File.dirname(__FILE__) + '/suite'
|
5
|
+
|
6
|
+
module Gator
|
7
|
+
module AS3
|
8
|
+
module RobotLegs
|
9
|
+
module ASUnit4
|
10
|
+
|
11
|
+
class TestGeneratorCollection < Gator::Command
|
12
|
+
|
13
|
+
define :command => "test",
|
14
|
+
:usage => "generate as3 robotlegs test GENERATOR", :description => "TestGenerators for robotlegs with ASUnit4"
|
15
|
+
|
16
|
+
register_subcommand CommandTestGenerator
|
17
|
+
register_subcommand MediatorTestGenerator
|
18
|
+
register_subcommand ViewTestGenerator
|
19
|
+
register_subcommand SuiteGenerator
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
package <%= package_name %>
|
2
|
+
{
|
3
|
+
import asunit.asserts.*;
|
4
|
+
|
5
|
+
public class <%= class_name %>
|
6
|
+
{
|
7
|
+
private var instance:<%= instance_name %>;
|
8
|
+
|
9
|
+
[Before]
|
10
|
+
public function setUp():void
|
11
|
+
{
|
12
|
+
instance=new <%= instance_name %>();
|
13
|
+
instance.eventDispatcher=new EventDispatcher();
|
14
|
+
}
|
15
|
+
|
16
|
+
[After]
|
17
|
+
public function tearDown():void
|
18
|
+
{
|
19
|
+
instance=null;
|
20
|
+
}
|
21
|
+
|
22
|
+
[Test]
|
23
|
+
public function should_be_instantiated():void
|
24
|
+
{
|
25
|
+
assertTrue(instance is <%= instance_name %>);
|
26
|
+
}
|
27
|
+
|
28
|
+
[Test]
|
29
|
+
public function should_fail():void
|
30
|
+
{
|
31
|
+
assertTrue(false);
|
32
|
+
}
|
33
|
+
|
34
|
+
}
|
35
|
+
}
|
@@ -0,0 +1,63 @@
|
|
1
|
+
module Gator
|
2
|
+
module AS3
|
3
|
+
module RobotLegs
|
4
|
+
module ASUnit4
|
5
|
+
|
6
|
+
class CommandTestGenerator < Task
|
7
|
+
include Gator::Project
|
8
|
+
|
9
|
+
define :command => "command",
|
10
|
+
:usage => "generate as3 robotlegs test command CLASS_NAME", :description => "Creates ASUnit4 command test."
|
11
|
+
|
12
|
+
argument :classname
|
13
|
+
|
14
|
+
class_option :impl, :default => false
|
15
|
+
|
16
|
+
def self.source_root
|
17
|
+
File.dirname __FILE__
|
18
|
+
end
|
19
|
+
|
20
|
+
def generate
|
21
|
+
src = project.path(:source, :test, :as3)
|
22
|
+
@package_name, @class_name = split_class_name(classname)
|
23
|
+
@class_name += "CommandTest"
|
24
|
+
src = File.join(src, @package_name.split(".").join(File::SEPARATOR)) unless @package_name == ""
|
25
|
+
template "command.as.tt", File.join(src, "#{@class_name}.as")
|
26
|
+
end
|
27
|
+
|
28
|
+
def generate_implementation
|
29
|
+
invoke resolve_subcommand(["test","suite"],["as3","klass"]), [classname]
|
30
|
+
return unless options[:impl]
|
31
|
+
invoke resolve_subcommand(["robotlegs","command"],["as3","klass"])
|
32
|
+
end
|
33
|
+
|
34
|
+
no_tasks {
|
35
|
+
|
36
|
+
def package_name
|
37
|
+
@package_name
|
38
|
+
end
|
39
|
+
|
40
|
+
def class_name
|
41
|
+
@class_name
|
42
|
+
end
|
43
|
+
|
44
|
+
def instance_name
|
45
|
+
@class_name.chomp("Test")
|
46
|
+
end
|
47
|
+
|
48
|
+
}
|
49
|
+
|
50
|
+
protected
|
51
|
+
|
52
|
+
def split_class_name(class_name)
|
53
|
+
pieces = class_name.split "."
|
54
|
+
class_name = pieces.pop
|
55
|
+
package_name = pieces.join "."
|
56
|
+
return package_name, class_name
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
package <%= package_name %>
|
2
|
+
{
|
3
|
+
import asunit.asserts.*;
|
4
|
+
|
5
|
+
import <%= view_package_name %>.<%= view_class_name %>;
|
6
|
+
|
7
|
+
public class <%= class_name %>
|
8
|
+
{
|
9
|
+
private var instance:<%= instance_name %>;
|
10
|
+
|
11
|
+
[Before]
|
12
|
+
public function setUp():void
|
13
|
+
{
|
14
|
+
instance=new <%= instance_name %>();
|
15
|
+
instance.view=new <%= view_class_name %>();
|
16
|
+
instance.setViewComponent(instance.view);
|
17
|
+
instance.eventDispatcher=new EventDispatcher();
|
18
|
+
instance.onRegister();
|
19
|
+
}
|
20
|
+
|
21
|
+
[After]
|
22
|
+
public function tearDown():void
|
23
|
+
{
|
24
|
+
instance.onRemove();
|
25
|
+
instance=null;
|
26
|
+
}
|
27
|
+
|
28
|
+
[Test]
|
29
|
+
public function should_be_instantiated():void
|
30
|
+
{
|
31
|
+
assertTrue(instance is <%= instance_name %>);
|
32
|
+
}
|
33
|
+
|
34
|
+
[Test]
|
35
|
+
public function view_should_be_instantiated():void
|
36
|
+
{
|
37
|
+
assertTrue(instance.view is <%= view_class_name %>);
|
38
|
+
}
|
39
|
+
|
40
|
+
[Test]
|
41
|
+
public function should_fail():void
|
42
|
+
{
|
43
|
+
assertTrue(false);
|
44
|
+
}
|
45
|
+
}
|
46
|
+
}
|
@@ -0,0 +1,74 @@
|
|
1
|
+
module Gator
|
2
|
+
module AS3
|
3
|
+
module RobotLegs
|
4
|
+
module ASUnit4
|
5
|
+
|
6
|
+
class MediatorTestGenerator < Task
|
7
|
+
include Gator::Project
|
8
|
+
|
9
|
+
define :command => "mediator",
|
10
|
+
:usage => "generate as3 robotlegs test mediator CLASS_NAME", :description => "Creates ASUnit4 mediator test."
|
11
|
+
|
12
|
+
argument :classname
|
13
|
+
|
14
|
+
class_option :impl, :default => false
|
15
|
+
|
16
|
+
def self.source_root
|
17
|
+
File.dirname __FILE__
|
18
|
+
end
|
19
|
+
|
20
|
+
def generate
|
21
|
+
src = project.path(:source, :test, :as3)
|
22
|
+
@package_name, @class_name = split_class_name(classname)
|
23
|
+
@view_package_name = @package_name.dup << ".components"
|
24
|
+
@view_class_name = @class_name.dup
|
25
|
+
@class_name += "MediatorTest"
|
26
|
+
@package_name += ".mediators"
|
27
|
+
src = File.join(src, @package_name.split(".").join(File::SEPARATOR)) unless @package_name == ""
|
28
|
+
template "mediator.as.tt", File.join(src, "#{@class_name}.as")
|
29
|
+
end
|
30
|
+
|
31
|
+
def generate_implementation
|
32
|
+
invoke resolve_subcommand(["test","suite"],["as3","klass"]), [classname]
|
33
|
+
return unless options[:impl]
|
34
|
+
invoke resolve_subcommand(["robotlegs","mediator"],["as3","klass"])
|
35
|
+
end
|
36
|
+
|
37
|
+
no_tasks {
|
38
|
+
|
39
|
+
def package_name
|
40
|
+
@package_name
|
41
|
+
end
|
42
|
+
|
43
|
+
def class_name
|
44
|
+
@class_name
|
45
|
+
end
|
46
|
+
|
47
|
+
def instance_name
|
48
|
+
@class_name.chomp("Test")
|
49
|
+
end
|
50
|
+
|
51
|
+
def view_package_name
|
52
|
+
@view_package_name
|
53
|
+
end
|
54
|
+
|
55
|
+
def view_class_name
|
56
|
+
@view_class_name
|
57
|
+
end
|
58
|
+
|
59
|
+
}
|
60
|
+
|
61
|
+
protected
|
62
|
+
|
63
|
+
def split_class_name(class_name)
|
64
|
+
pieces = class_name.split "."
|
65
|
+
class_name = pieces.pop
|
66
|
+
package_name = pieces.join "."
|
67
|
+
return package_name, class_name
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
package
|
2
|
+
{
|
3
|
+
import asunit.core.TextCore;
|
4
|
+
import flash.display.MovieClip;
|
5
|
+
|
6
|
+
public class <%= test_runner_name %> extends MovieClip
|
7
|
+
{
|
8
|
+
protected var core:TextCore;
|
9
|
+
|
10
|
+
public function <%= test_runner_name %>()
|
11
|
+
{
|
12
|
+
core = new TextCore();
|
13
|
+
// You can run a single Test Case with:
|
14
|
+
// core.start(SomeTest, null, this);
|
15
|
+
// Or a single test method with:
|
16
|
+
// core.start(SomeTest, 'testMethod', this);
|
17
|
+
core.start(AllTests, null, this);
|
18
|
+
}
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module Gator
|
2
|
+
module AS3
|
3
|
+
module RobotLegs
|
4
|
+
module ASUnit4
|
5
|
+
|
6
|
+
class SuiteGenerator < Task
|
7
|
+
include Gator::Project
|
8
|
+
|
9
|
+
define :command => "suite",
|
10
|
+
:usage => "generate as3 asunit4 test suite CLASS_NAME", :description => "Creates ASUnit4 suite."
|
11
|
+
|
12
|
+
argument :classname
|
13
|
+
|
14
|
+
def self.source_root
|
15
|
+
File.dirname __FILE__
|
16
|
+
end
|
17
|
+
|
18
|
+
def generate
|
19
|
+
src = project.path(:source, :test, :as3)
|
20
|
+
@package_name = src.dup
|
21
|
+
@class_name = "AllTests"
|
22
|
+
template "suite.as.tt", File.join(src, "#{@class_name}.as")
|
23
|
+
end
|
24
|
+
|
25
|
+
no_tasks {
|
26
|
+
|
27
|
+
def package_name
|
28
|
+
@package_name
|
29
|
+
end
|
30
|
+
|
31
|
+
def class_name
|
32
|
+
@class_name
|
33
|
+
end
|
34
|
+
|
35
|
+
}
|
36
|
+
|
37
|
+
protected
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|