airake 0.1.12 → 0.2.1
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/History.txt +8 -0
- data/Manifest.txt +19 -8
- data/README.txt +6 -12
- data/app_generators/airake/USAGE +2 -2
- data/app_generators/airake/airake_generator.rb +25 -15
- data/app_generators/airake/templates/README +3 -12
- data/app_generators/browsair/USAGE +5 -0
- data/app_generators/browsair/browsair_generator.rb +91 -0
- data/app_generators/browsair/templates/README +1 -0
- data/app_generators/{airake/templates → shared}/Rakefile +6 -8
- data/app_generators/shared/application.mxml +25 -0
- data/app_generators/{airake/templates → shared}/descriptor.xml +10 -10
- data/app_generators/shared/icons/MouseRunnerDotComGraphicsLicense.txt +15 -0
- data/app_generators/shared/icons/Web.png +0 -0
- data/bin/browsair +12 -0
- data/config/hoe.rb +1 -1
- data/lib/airake/commands/adl.rb +29 -0
- data/lib/airake/commands/adt.rb +58 -0
- data/lib/airake/commands/amxmlc.rb +52 -0
- data/lib/airake/core_ext/blank.rb +56 -0
- data/lib/airake/project.rb +27 -106
- data/lib/airake/runner.rb +35 -0
- data/lib/airake/tasks/air.rake +62 -8
- data/lib/airake/tasks/deployment.rake +0 -3
- data/lib/airake/version.rb +2 -2
- data/lib/airake.rb +9 -0
- data/test/test_airake_generator.rb +5 -6
- data/test/test_browsair_generator.rb +49 -0
- metadata +26 -12
- data/app_generators/airake/templates/application.mxml +0 -6
- data/log/debug.log +0 -0
- /data/app_generators/{airake/templates → shared}/lib/flexunit-08.30.2007.swc +0 -0
- /data/app_generators/{airake/templates → shared}/test/Test-app.xml +0 -0
- /data/app_generators/{airake/templates → shared}/test/Test.mxml +0 -0
- /data/app_generators/{airake/templates → shared}/test/suite/AllTests.as +0 -0
data/History.txt
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
== 0.2.1 2007-10-10
|
2
|
+
|
3
|
+
* Created browsair generator
|
4
|
+
* Fixed air:package task
|
5
|
+
* Fixed package icon support; added ASSETS env variable
|
6
|
+
* Added air:certificate task
|
7
|
+
* Default project is a browsair which points to airake resources page
|
8
|
+
|
1
9
|
== 0.1.12 2007-10-08
|
2
10
|
|
3
11
|
* Updated generator test scaffolding to Beta 2
|
data/Manifest.txt
CHANGED
@@ -7,28 +7,38 @@ Rakefile
|
|
7
7
|
app_generators/airake/USAGE
|
8
8
|
app_generators/airake/airake_generator.rb
|
9
9
|
app_generators/airake/templates/README
|
10
|
-
app_generators/airake/templates/Rakefile
|
11
|
-
app_generators/airake/templates/application.mxml
|
12
|
-
app_generators/airake/templates/descriptor.xml
|
13
10
|
app_generators/airake/templates/lib/corelib-08.30.2007.swc
|
14
|
-
app_generators/
|
15
|
-
app_generators/
|
16
|
-
app_generators/
|
17
|
-
app_generators/
|
11
|
+
app_generators/browsair/USAGE
|
12
|
+
app_generators/browsair/browsair_generator.rb
|
13
|
+
app_generators/browsair/templates/README
|
14
|
+
app_generators/shared/Rakefile
|
15
|
+
app_generators/shared/application.mxml
|
16
|
+
app_generators/shared/descriptor.xml
|
17
|
+
app_generators/shared/icons/MouseRunnerDotComGraphicsLicense.txt
|
18
|
+
app_generators/shared/icons/Web.png
|
19
|
+
app_generators/shared/lib/flexunit-08.30.2007.swc
|
20
|
+
app_generators/shared/test/Test-app.xml
|
21
|
+
app_generators/shared/test/Test.mxml
|
22
|
+
app_generators/shared/test/suite/AllTests.as
|
18
23
|
bin/airake
|
24
|
+
bin/browsair
|
19
25
|
config/hoe.rb
|
20
26
|
config/requirements.rb
|
21
27
|
lib/airake.rb
|
28
|
+
lib/airake/commands/adl.rb
|
29
|
+
lib/airake/commands/adt.rb
|
30
|
+
lib/airake/commands/amxmlc.rb
|
31
|
+
lib/airake/core_ext/blank.rb
|
22
32
|
lib/airake/daemonize.rb
|
23
33
|
lib/airake/fcsh.rb
|
24
34
|
lib/airake/fcshd.rb
|
25
35
|
lib/airake/project.rb
|
36
|
+
lib/airake/runner.rb
|
26
37
|
lib/airake/tasks.rb
|
27
38
|
lib/airake/tasks/air.rake
|
28
39
|
lib/airake/tasks/deployment.rake
|
29
40
|
lib/airake/tasks/fcsh.rake
|
30
41
|
lib/airake/version.rb
|
31
|
-
log/debug.log
|
32
42
|
script/destroy
|
33
43
|
script/generate
|
34
44
|
setup.rb
|
@@ -37,5 +47,6 @@ tasks/environment.rake
|
|
37
47
|
tasks/website.rake
|
38
48
|
test/test_airake.rb
|
39
49
|
test/test_airake_generator.rb
|
50
|
+
test/test_browsair_generator.rb
|
40
51
|
test/test_generator_helper.rb
|
41
52
|
test/test_helper.rb
|
data/README.txt
CHANGED
@@ -42,16 +42,13 @@ To include adl and adt (from AIR SDK):
|
|
42
42
|
|
43
43
|
# Testing
|
44
44
|
rake air:test
|
45
|
+
|
46
|
+
# Create certificate (Specify ENV["CERTIFICATE"] = "path/to/certificate.pfx")
|
47
|
+
rake air:certificate
|
45
48
|
|
46
49
|
# Package AIR file
|
47
50
|
rake air:package
|
48
51
|
|
49
|
-
== Deprecated tasks
|
50
|
-
|
51
|
-
Renamed air:start_fcshd to fcsh:start
|
52
|
-
Renamed air:stop_fcshd to fcsh:stop
|
53
|
-
Renamed air:restart_fcshd to fcsh:restart
|
54
|
-
|
55
52
|
== Adding other tasks
|
56
53
|
|
57
54
|
Add tasks to the rakefile, for example:
|
@@ -68,7 +65,7 @@ This is experimental. In the Rakefile, specify:
|
|
68
65
|
|
69
66
|
# Override default settings, this is experimental
|
70
67
|
# cwd = File.expand_path(File.dirname(__FILE__))
|
71
|
-
#ENV["
|
68
|
+
#ENV["AMXMLC_PATH"] = "mxmlc"
|
72
69
|
#ENV["ADT_PATH"] = "adt"
|
73
70
|
#ENV["BIN_DIR"] = "#{cwd}/bin"
|
74
71
|
#ENV["SRC_DIR"] = "#{cwd}/src"
|
@@ -77,9 +74,6 @@ This is experimental. In the Rakefile, specify:
|
|
77
74
|
#ENV["APPXML_PATH"] = "#{cwd}/src/MyProject-app.xml"
|
78
75
|
#ENV["AIR_PATH"] = "#{cwd}/bin/MyProject.air"
|
79
76
|
#ENV["SWF_PATH"] = "#{cwd}/bin/MyProject.swf"
|
80
|
-
#ENV["
|
77
|
+
#ENV["AMXMLC_EXTRA_OPTS"] = ...
|
81
78
|
#ENV["ADL_EXTRA_OPTS"] = ...
|
82
|
-
#ENV["ADT_EXTRA_OPTS"] = ...
|
83
|
-
#ENV["MXMLC_COMMAND"] = ...
|
84
|
-
#ENV["ADL_COMMAND"] = ...
|
85
|
-
#ENV["ADT_COMMAND"] = ...
|
79
|
+
#ENV["ADT_EXTRA_OPTS"] = ...
|
data/app_generators/airake/USAGE
CHANGED
@@ -1,37 +1,48 @@
|
|
1
1
|
class AirakeGenerator < RubiGen::Base
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
attr_reader :app_name
|
3
|
+
attr_reader :app_name, :title, :url, :description
|
6
4
|
|
7
5
|
def initialize(runtime_args, runtime_options = {})
|
8
6
|
super
|
9
7
|
usage if args.empty? || args.size < 1
|
10
8
|
@destination_root = File.expand_path(args.shift)
|
11
9
|
@app_name = File.basename(@destination_root).camelize
|
10
|
+
@title = @app_name
|
11
|
+
@url = "http://airake.rubyforge.org/resources.html"
|
12
|
+
@description = "Put description here"
|
12
13
|
extract_options
|
13
14
|
end
|
14
15
|
|
15
|
-
def manifest
|
16
|
+
def manifest
|
16
17
|
record do |m|
|
17
18
|
# Ensure appropriate folder(s) exists
|
18
19
|
m.directory ''
|
19
20
|
BASEDIRS.each { |path| m.directory path }
|
20
21
|
|
21
|
-
# Create stubs
|
22
|
-
m.template "Rakefile", "Rakefile"
|
23
22
|
m.file "README", "README"
|
24
|
-
m.
|
25
|
-
|
23
|
+
m.file "lib/corelib-08.30.2007.swc", "lib/corelib-08.30.2007.swc"
|
24
|
+
|
25
|
+
# Shared templates
|
26
|
+
shared_path = "../../shared"
|
26
27
|
|
27
28
|
# Lib
|
28
|
-
m.file "lib/
|
29
|
-
m.file "lib/flexunit-08.30.2007.swc", "lib/flexunit-08.30.2007.swc"
|
29
|
+
m.file "#{shared_path}/lib/flexunit-08.30.2007.swc", "lib/flexunit-08.30.2007.swc"
|
30
30
|
|
31
31
|
# Test
|
32
|
-
m.file "test/Test-app.xml", "test/Test-app.xml"
|
33
|
-
m.file "test/Test.mxml", "test/Test.mxml"
|
34
|
-
m.
|
32
|
+
m.file "#{shared_path}/test/Test-app.xml", "test/Test-app.xml"
|
33
|
+
m.file "#{shared_path}/test/Test.mxml", "test/Test.mxml"
|
34
|
+
m.directory "test/suite"
|
35
|
+
m.file "#{shared_path}/test/suite/AllTests.as", "test/suite/AllTests.as"
|
36
|
+
|
37
|
+
m.template "#{shared_path}/Rakefile", "Rakefile"
|
38
|
+
m.template "#{shared_path}/descriptor.xml", "src/#{app_name}-app.xml"
|
39
|
+
m.template "#{shared_path}/application.mxml", "src/#{app_name}.mxml"
|
40
|
+
|
41
|
+
# Icons
|
42
|
+
m.directory "src/assets/app_icons"
|
43
|
+
m.file "#{shared_path}/icons/Web.png", "src/assets/app_icons/icon_128.png"
|
44
|
+
m.file "#{shared_path}/icons/MouseRunnerDotComGraphicsLicense.txt", "src/assets/app_icons/MouseRunnerDotComGraphicsLicense.txt"
|
45
|
+
|
35
46
|
end
|
36
47
|
end
|
37
48
|
|
@@ -40,7 +51,7 @@ class AirakeGenerator < RubiGen::Base
|
|
40
51
|
<<-EOS
|
41
52
|
Creates an AIR project scaffold.
|
42
53
|
|
43
|
-
USAGE: #{spec.name} path/to/AppName
|
54
|
+
USAGE: #{spec.name} [path/to/AppName]
|
44
55
|
EOS
|
45
56
|
end
|
46
57
|
|
@@ -69,6 +80,5 @@ EOS
|
|
69
80
|
lib
|
70
81
|
src
|
71
82
|
test
|
72
|
-
test/suite
|
73
83
|
)
|
74
84
|
end
|
@@ -42,12 +42,6 @@ To include adl and adt (from AIR SDK):
|
|
42
42
|
# Package AIR file
|
43
43
|
rake air:package
|
44
44
|
|
45
|
-
== Deprecated tasks
|
46
|
-
|
47
|
-
Renamed air:start_fcshd to fcsh:start
|
48
|
-
Renamed air:stop_fcshd to fcsh:stop
|
49
|
-
Renamed air:restart_fcshd to fcsh:restart
|
50
|
-
|
51
45
|
== Adding other tasks
|
52
46
|
|
53
47
|
Add tasks to the rakefile, for example:
|
@@ -64,7 +58,7 @@ This is experimental. In the Rakefile, specify:
|
|
64
58
|
|
65
59
|
# Override default settings, this is experimental
|
66
60
|
# cwd = File.expand_path(File.dirname(__FILE__))
|
67
|
-
#ENV["
|
61
|
+
#ENV["AMXMLC_PATH"] = "mxmlc"
|
68
62
|
#ENV["ADT_PATH"] = "adt"
|
69
63
|
#ENV["BIN_DIR"] = "#{cwd}/bin"
|
70
64
|
#ENV["SRC_DIR"] = "#{cwd}/src"
|
@@ -73,9 +67,6 @@ This is experimental. In the Rakefile, specify:
|
|
73
67
|
#ENV["APPXML_PATH"] = "#{cwd}/src/MyProject-app.xml"
|
74
68
|
#ENV["AIR_PATH"] = "#{cwd}/bin/MyProject.air"
|
75
69
|
#ENV["SWF_PATH"] = "#{cwd}/bin/MyProject.swf"
|
76
|
-
#ENV["
|
70
|
+
#ENV["AMXMLC_EXTRA_OPTS"] = ...
|
77
71
|
#ENV["ADL_EXTRA_OPTS"] = ...
|
78
|
-
#ENV["ADT_EXTRA_OPTS"] = ...
|
79
|
-
#ENV["MXMLC_COMMAND"] = ...
|
80
|
-
#ENV["ADL_COMMAND"] = ...
|
81
|
-
#ENV["ADT_COMMAND"] = ...
|
72
|
+
#ENV["ADT_EXTRA_OPTS"] = ...
|
@@ -0,0 +1,91 @@
|
|
1
|
+
class BrowsairGenerator < RubiGen::Base
|
2
|
+
|
3
|
+
attr_reader :app_name, :url, :title, :description, :icon_src_path
|
4
|
+
|
5
|
+
def initialize(runtime_args, runtime_options = {})
|
6
|
+
super
|
7
|
+
usage if args.empty? || args.size < 2
|
8
|
+
@destination_root = File.expand_path(args.shift)
|
9
|
+
@app_name = File.basename(@destination_root)
|
10
|
+
@url = args.shift
|
11
|
+
@title = "#{@app_name} - #{@url}"
|
12
|
+
@description = "AIR Browser for #{@url}"
|
13
|
+
@icon_src_path = File.expand_path(args.shift) unless args.empty?
|
14
|
+
extract_options
|
15
|
+
end
|
16
|
+
|
17
|
+
def manifest
|
18
|
+
record do |m|
|
19
|
+
# Ensure appropriate folder(s) exists
|
20
|
+
m.directory ''
|
21
|
+
BASEDIRS.each { |path| m.directory path }
|
22
|
+
|
23
|
+
m.file "README", "README"
|
24
|
+
|
25
|
+
# Shared templates
|
26
|
+
shared_path = "../../shared"
|
27
|
+
|
28
|
+
# Lib
|
29
|
+
m.file "#{shared_path}/lib/flexunit-08.30.2007.swc", "lib/flexunit-08.30.2007.swc"
|
30
|
+
|
31
|
+
# Test
|
32
|
+
m.file "#{shared_path}/test/Test-app.xml", "test/Test-app.xml"
|
33
|
+
m.file "#{shared_path}/test/Test.mxml", "test/Test.mxml"
|
34
|
+
m.directory "test/suite"
|
35
|
+
m.file "#{shared_path}/test/suite/AllTests.as", "test/suite/AllTests.as"
|
36
|
+
|
37
|
+
# Basic
|
38
|
+
m.template "#{shared_path}/Rakefile", "Rakefile"
|
39
|
+
m.template "#{shared_path}/descriptor.xml", "src/#{app_name}-app.xml"
|
40
|
+
m.template "#{shared_path}/application.mxml", "src/#{app_name}.mxml"
|
41
|
+
|
42
|
+
# Icons
|
43
|
+
m.directory "src/assets/app_icons"
|
44
|
+
|
45
|
+
if @icon_src_path.blank?
|
46
|
+
m.file "#{shared_path}/icons/Web.png", "src/assets/app_icons/icon_128.png"
|
47
|
+
m.file "#{shared_path}/icons/MouseRunnerDotComGraphicsLicense.txt", "src/assets/app_icons/MouseRunnerDotComGraphicsLicense.txt"
|
48
|
+
else
|
49
|
+
icon_dest_path = destination_path("src/assets/app_icons/icon_128.png")
|
50
|
+
FileUtils.cp(icon_src_path, icon_dest_path)
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
protected
|
57
|
+
def banner
|
58
|
+
<<-EOS
|
59
|
+
Create an AIR browser for a specific URL.
|
60
|
+
|
61
|
+
USAGE: #{spec.name} [name] [http://the.url] [path/to/icon_128.png (optional)]
|
62
|
+
EOS
|
63
|
+
end
|
64
|
+
|
65
|
+
def add_options!(opts)
|
66
|
+
opts.separator ''
|
67
|
+
opts.separator 'Options:'
|
68
|
+
# For each option below, place the default
|
69
|
+
# at the top of the file next to "default_options"
|
70
|
+
# opts.on("-a", "--author=\"Your Name\"", String,
|
71
|
+
# "Some comment about this option",
|
72
|
+
# "Default: none") { |options[:author]| }
|
73
|
+
opts.on("-v", "--version", "Show the #{File.basename($0)} version number and quit.")
|
74
|
+
end
|
75
|
+
|
76
|
+
def extract_options
|
77
|
+
# for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
|
78
|
+
# Templates can access these value via the attr_reader-generated methods, but not the
|
79
|
+
# raw instance variable value.
|
80
|
+
# @author = options[:author]
|
81
|
+
end
|
82
|
+
|
83
|
+
# Installation skeleton. Intermediate directories are automatically
|
84
|
+
# created so don't sweat their absence here.
|
85
|
+
BASEDIRS = %w(
|
86
|
+
bin
|
87
|
+
lib
|
88
|
+
src
|
89
|
+
test
|
90
|
+
)
|
91
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
Browser AIR application
|
@@ -1,17 +1,15 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'airake'
|
3
3
|
|
4
|
+
# Specify certificate path
|
5
|
+
ENV["CERTIFICATE"] ||= "cert.pfx"
|
6
|
+
|
7
|
+
# dirname $0
|
4
8
|
ENV["BASE_DIR"] ||= File.expand_path(File.dirname(__FILE__))
|
5
9
|
|
6
10
|
# MXML options
|
7
11
|
ENV["MXML"] ||= "src/<%= app_name %>.mxml"
|
8
12
|
ENV["MXML_TEST"] ||= "test/Test.mxml"
|
9
13
|
|
10
|
-
#
|
11
|
-
|
12
|
-
# Uncomment for custom FCSH settings
|
13
|
-
#ENV["FCSH_IP"] ||= "127.0.0.1"
|
14
|
-
#ENV["FCSH_PORT"] ||= "20569"
|
15
|
-
|
16
|
-
# For debug
|
17
|
-
#ENV["DEBUG"] = "true"
|
14
|
+
# Assets to package
|
15
|
+
ENV["ASSETS"] ||= "src/assets"
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" showStatusBar="false">
|
3
|
+
|
4
|
+
<mx:VBox width="100%" height="100%" backgroundColor="#FFFFFF">
|
5
|
+
|
6
|
+
<mx:HBox id="buttons" width="100%" paddingLeft="5" paddingTop="5"
|
7
|
+
borderColor="#CCCCCC" borderSides="bottom" borderThickness="2" borderStyle="solid">
|
8
|
+
|
9
|
+
<mx:Button label="Back" click="html.htmlControl.historyBack()" />
|
10
|
+
<mx:Button label="Forward" click="html.htmlControl.historyForward()" />
|
11
|
+
<mx:Button label="Home" click="html.location = '<%= url %>'" />
|
12
|
+
<!-- <mx:Button label="Cancel" click="html.htmlControl.cancelLoad()" /> -->
|
13
|
+
<!-- <mx:Label text="{html.location}" width="100%" /> -->
|
14
|
+
|
15
|
+
<mx:HBox width="100%" horizontalAlign="right" paddingBottom="5" paddingRight="5">
|
16
|
+
<mx:Button label="Hide" click="buttons.height = 0" />
|
17
|
+
</mx:HBox>
|
18
|
+
</mx:HBox>
|
19
|
+
|
20
|
+
<mx:VBox width="100%" height="100%" >
|
21
|
+
<mx:HTML id="html" width="100%" height="100%" location="<%= url %>" />
|
22
|
+
</mx:VBox>
|
23
|
+
</mx:VBox>
|
24
|
+
|
25
|
+
</mx:WindowedApplication>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<application xmlns="http://ns.adobe.com/air/application/1.0.M5" appId="com.
|
2
|
+
<application xmlns="http://ns.adobe.com/air/application/1.0.M5" appId="com.ducktyper.browsair.<%= app_name %>" version="0.0.1">
|
3
3
|
|
4
4
|
<!--
|
5
5
|
AIR Application Descriptor File:
|
@@ -34,12 +34,12 @@
|
|
34
34
|
<!--
|
35
35
|
The title displayed in the AIR application installer.
|
36
36
|
-->
|
37
|
-
<title
|
37
|
+
<title><%= title %></title>
|
38
38
|
|
39
39
|
<!--
|
40
40
|
The description displayed in the AIR application installer.
|
41
41
|
-->
|
42
|
-
<description
|
42
|
+
<description><%= description %></description>
|
43
43
|
|
44
44
|
<!--
|
45
45
|
The application copyright information.
|
@@ -51,9 +51,9 @@
|
|
51
51
|
-->
|
52
52
|
<initialWindow>
|
53
53
|
<!--
|
54
|
-
The title
|
54
|
+
The window title.
|
55
55
|
-->
|
56
|
-
<title
|
56
|
+
<title><%= title %></title>
|
57
57
|
|
58
58
|
<!--
|
59
59
|
The main content file of the application, which must be a SWF or HTML
|
@@ -118,12 +118,12 @@
|
|
118
118
|
<!-- <height>500</height> -->
|
119
119
|
<!-- <x>150</x> -->
|
120
120
|
<!-- <y>150</y> -->
|
121
|
-
<x>100</x>
|
122
|
-
<y>100</y>
|
123
|
-
<width>600</width>
|
124
|
-
<height>400</height>
|
125
121
|
<!-- <minSize>300 300</minSize> -->
|
126
122
|
<!-- <maxSize>800 800</maxSize> -->
|
123
|
+
<width>1024</width>
|
124
|
+
<height>768</height>
|
125
|
+
<x>100</x>
|
126
|
+
<y>50</y>
|
127
127
|
</initialWindow>
|
128
128
|
|
129
129
|
<!--
|
@@ -154,7 +154,7 @@
|
|
154
154
|
<!-- <image16x16>icons/AIRApp_16.png</image16x16> -->
|
155
155
|
<!-- <image32x32>icons/AIRApp_32.png</image32x32> -->
|
156
156
|
<!-- <image48x48>icons/AIRApp_48.png</image48x48> -->
|
157
|
-
|
157
|
+
<image128x128>src/assets/app_icons/icon_128.png</image128x128>
|
158
158
|
</icon>
|
159
159
|
|
160
160
|
<!--
|
@@ -0,0 +1,15 @@
|
|
1
|
+
Thanks for downloading ColoCons. While I want you to enjoy these icons for free, I ask that you please abide by the terms that they are licensed under.
|
2
|
+
Enjoy and come back to MouseRunner.com for all free content and resources.
|
3
|
+
|
4
|
+
|
5
|
+
The graphics contained in these files are licensed under the Creative Commons Attribution-ShareAlike 2.5 License
|
6
|
+
|
7
|
+
Furthermore,
|
8
|
+
You may not claim the works as your own.
|
9
|
+
You must provide a link back to www.MouseRunner.com when using on a website, for commercial purposes, and for applications.
|
10
|
+
|
11
|
+
Visit the address below to learn more about the Creative Commons license.
|
12
|
+
http://creativecommons.org/licenses/by-nc-sa/2.5/legalcode
|
13
|
+
|
14
|
+
|
15
|
+
|
Binary file
|
data/bin/browsair
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rubigen'
|
3
|
+
|
4
|
+
if %w(-v --version).include? ARGV.first
|
5
|
+
require 'newgem/version'
|
6
|
+
puts "#{File.basename($0)} #{Newgem::VERSION::STRING}"
|
7
|
+
exit(0)
|
8
|
+
end
|
9
|
+
|
10
|
+
require 'rubigen/scripts/generate'
|
11
|
+
RubiGen::Base.use_application_sources! :airake
|
12
|
+
RubiGen::Scripts::Generate.new.run(ARGV, :generator => 'browsair')
|
data/config/hoe.rb
CHANGED
@@ -2,7 +2,7 @@ require 'airake/version'
|
|
2
2
|
|
3
3
|
AUTHOR = 'Gabriel Handford, Min Kim'
|
4
4
|
EMAIL = "gabrielh@gmail.com"
|
5
|
-
DESCRIPTION = "Adobe AIR tasks"
|
5
|
+
DESCRIPTION = "Adobe AIR generators and tasks"
|
6
6
|
GEM_NAME = 'airake'
|
7
7
|
RUBYFORGE_PROJECT = 'airake' # The unix name for your project
|
8
8
|
HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Airake
|
2
|
+
|
3
|
+
module Commands
|
4
|
+
|
5
|
+
class Adl
|
6
|
+
|
7
|
+
attr_reader :project, :path, :extra_opts
|
8
|
+
|
9
|
+
def initialize(project, options = {})
|
10
|
+
@project = project
|
11
|
+
@path = options[:adl_path] || "adl"
|
12
|
+
@extra_opts = options[:adl_extra_opts]
|
13
|
+
end
|
14
|
+
|
15
|
+
# Get the ADL command
|
16
|
+
def launch
|
17
|
+
command = []
|
18
|
+
command << @path
|
19
|
+
command << @extra_opts
|
20
|
+
command << project.appxml_path
|
21
|
+
command << project.base_dir
|
22
|
+
command.compact.join(" ")
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
module Airake
|
2
|
+
|
3
|
+
module Commands
|
4
|
+
|
5
|
+
class Adt
|
6
|
+
|
7
|
+
attr_reader :project, :path, :certificate, :extra_opts, :assets
|
8
|
+
|
9
|
+
def initialize(project, options = {})
|
10
|
+
@project = project
|
11
|
+
@path = options[:adt_path] || "adt"
|
12
|
+
@certificate = options[:certificate]
|
13
|
+
@extra_opts = options[:adt_extra_opts]
|
14
|
+
@assets = options[:assets]
|
15
|
+
end
|
16
|
+
|
17
|
+
# Get the ADT command
|
18
|
+
def package
|
19
|
+
command = []
|
20
|
+
command << @path
|
21
|
+
command << @extra_opts
|
22
|
+
command << "-package"
|
23
|
+
command << "-certificate #{@certificate}"
|
24
|
+
command << project.relative_path(project.air_path)
|
25
|
+
command << project.relative_path(project.appxml_path)
|
26
|
+
command << project.relative_path(project.swf_path)
|
27
|
+
command << @assets
|
28
|
+
command.compact.join(" ")
|
29
|
+
end
|
30
|
+
|
31
|
+
# Generate a certificate
|
32
|
+
#
|
33
|
+
# cn:: Common name
|
34
|
+
# pfx_file:: Output certificate path
|
35
|
+
# key_type:: 1024-RSA, 2048-RSA
|
36
|
+
# password:: Password
|
37
|
+
# optionals:: :ou, :o, :c
|
38
|
+
#
|
39
|
+
# Example result: adt -certificate -cn ADigitalID 1024-RSA SigningCert.pfx 39#wnetx3tl
|
40
|
+
def certificate(cn, pfx_file, key_type, password, optionals = {})
|
41
|
+
command = []
|
42
|
+
command << @path
|
43
|
+
command << "-certificate"
|
44
|
+
command << "-cn #{cn}"
|
45
|
+
command << "-ou #{optionals[:ou]}" if !optionals[:ou].blank?
|
46
|
+
command << "-o #{optionals[:o]}" if !optionals[:o].blank?
|
47
|
+
command << "-c #{optionals[:c]}" if !optionals[:c].blank?
|
48
|
+
command << key_type
|
49
|
+
command << pfx_file
|
50
|
+
command << password
|
51
|
+
command.compact.join(" ")
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module Airake
|
2
|
+
|
3
|
+
module Commands
|
4
|
+
|
5
|
+
class Amxmlc
|
6
|
+
|
7
|
+
attr_reader :project, :path, :extra_opts
|
8
|
+
|
9
|
+
def initialize(project, options = {})
|
10
|
+
@project = project
|
11
|
+
@path = options[:amxmlc_path] || "amxmlc"
|
12
|
+
@extra_opts = options[:amxmlc_extra_opts]
|
13
|
+
end
|
14
|
+
|
15
|
+
# Get the amxmlc command
|
16
|
+
def compile
|
17
|
+
command = []
|
18
|
+
command << @path
|
19
|
+
#command << "+configname=air"
|
20
|
+
command << source_path_option
|
21
|
+
command << library_path_option
|
22
|
+
command << "-output #{project.swf_path}"
|
23
|
+
command << project.debug_option
|
24
|
+
command << @extra_opts
|
25
|
+
command << "-disable-incremental-optimizations=true"
|
26
|
+
command << "-- #{project.mxml_path}"
|
27
|
+
command.compact.join(" ")
|
28
|
+
end
|
29
|
+
|
30
|
+
protected
|
31
|
+
|
32
|
+
def source_path_option
|
33
|
+
# List of directories in lib/ for source_path +=
|
34
|
+
lib_source_paths = Dir["#{project.lib_dir}/*"].collect { |f| f if File.directory?(f) }.compact
|
35
|
+
lib_source_paths << project.test_dir if File.directory?(project.test_dir)
|
36
|
+
lib_source_paths << project.src_dir if File.directory?(project.src_dir)
|
37
|
+
|
38
|
+
source_paths ||= lib_source_paths
|
39
|
+
source_paths.empty? ? "" : "-source-path #{source_paths.join(" ")}"
|
40
|
+
end
|
41
|
+
|
42
|
+
def library_path_option
|
43
|
+
library_paths = []
|
44
|
+
library_paths << project.lib_dir if File.directory?(project.lib_dir)
|
45
|
+
library_paths.empty? ? "" : "-library-path+=#{library_paths.join(" ")}"
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
class Object
|
2
|
+
# An object is blank if it's nil, empty, or a whitespace string.
|
3
|
+
# For example, "", " ", nil, [], and {} are blank.
|
4
|
+
#
|
5
|
+
# This simplifies
|
6
|
+
# if !address.nil? && !address.empty?
|
7
|
+
# to
|
8
|
+
# if !address.blank?
|
9
|
+
def blank?
|
10
|
+
if respond_to?(:empty?) && respond_to?(:strip)
|
11
|
+
empty? or strip.empty?
|
12
|
+
elsif respond_to?(:empty?)
|
13
|
+
empty?
|
14
|
+
else
|
15
|
+
!self
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
class NilClass #:nodoc:
|
21
|
+
def blank?
|
22
|
+
true
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class FalseClass #:nodoc:
|
27
|
+
def blank?
|
28
|
+
true
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
class TrueClass #:nodoc:
|
33
|
+
def blank?
|
34
|
+
false
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
class Array #:nodoc:
|
39
|
+
alias_method :blank?, :empty?
|
40
|
+
end
|
41
|
+
|
42
|
+
class Hash #:nodoc:
|
43
|
+
alias_method :blank?, :empty?
|
44
|
+
end
|
45
|
+
|
46
|
+
class String #:nodoc:
|
47
|
+
def blank?
|
48
|
+
empty? || strip.empty?
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
class Numeric #:nodoc:
|
53
|
+
def blank?
|
54
|
+
false
|
55
|
+
end
|
56
|
+
end
|
data/lib/airake/project.rb
CHANGED
@@ -8,13 +8,12 @@ module Airake
|
|
8
8
|
attr_reader :base_dir, :bin_dir, :src_dir, :lib_dir, :test_dir
|
9
9
|
attr_reader :mxml_path, :appxml_path, :air_path, :swf_path
|
10
10
|
attr_reader :debug
|
11
|
+
attr_reader :options
|
12
|
+
attr_reader :assets
|
11
13
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
Options = [ :mxmlc_path, :adt_path, :bin_dir, :src_dir, :lib_dir, :test_dir,
|
16
|
-
:appxml_path, :air_path, :swf_path, :debug, :mxmlc_command, :adt_command,
|
17
|
-
:adl_command, :mxmlc_extra_opts, :adl_extra_opts, :adt_extra_opts ]
|
14
|
+
# Options to override defaults
|
15
|
+
Options = [ :certificate, :assets, :amxmlc_path, :adt_path, :adt_path, :bin_dir, :src_dir, :lib_dir, :test_dir,
|
16
|
+
:appxml_path, :air_path, :swf_path, :debug, :amxmlc_extra_opts, :adl_extra_opts, :adt_extra_opts ]
|
18
17
|
|
19
18
|
# Construct project
|
20
19
|
#
|
@@ -24,50 +23,42 @@ module Airake
|
|
24
23
|
def initialize(base_dir, mxml_path, options = {})
|
25
24
|
@base_dir = base_dir
|
26
25
|
@mxml_path = mxml_path
|
26
|
+
@options = options
|
27
27
|
|
28
|
-
|
29
|
-
|
30
|
-
@adl_path = options[:adl] || "adl"
|
31
|
-
|
28
|
+
raise ArgumentError, "Invalid MXML path: #{mxml_path}" if mxml_path.blank?
|
29
|
+
|
32
30
|
@bin_dir = options[:bin_dir] || File.join(base_dir, "bin")
|
33
31
|
@src_dir = options[:src_dir] || File.join(base_dir, "src")
|
34
32
|
@lib_dir = options[:lib_dir] || File.join(base_dir, "lib")
|
35
33
|
@test_dir = options[:test_dir] || File.join(base_dir, "test")
|
36
|
-
|
34
|
+
|
37
35
|
@project_name = File.basename(@mxml_path, ".mxml")
|
38
|
-
mxml_dir = File.expand_path(File.dirname(@mxml_path))
|
36
|
+
mxml_dir = File.expand_path(File.dirname(@mxml_path))
|
39
37
|
@appxml_path = options[:appxml_path] || File.join(mxml_dir, "#{project_name}-app.xml")
|
40
|
-
|
38
|
+
|
41
39
|
# Dest package files
|
42
40
|
@air_path = options[:air_path] || File.join(@bin_dir, "#{project_name}.air")
|
43
41
|
@swf_path = options[:swf_path] || File.join(@bin_dir, "#{project_name}.swf")
|
44
42
|
|
45
|
-
|
46
|
-
|
47
|
-
@mxmlc_extra_opts = options[:mxmlc_extra_opts]
|
48
|
-
@adl_extra_opts = options[:adl_extra_opts]
|
49
|
-
@adt_extra_opts = options[:adt_extra_opts]
|
50
|
-
|
51
|
-
@mxmlc_command = options[:mxmlc_command] || load_mxmlc_command
|
52
|
-
@adt_command = options[:adt_command] || load_adt_command
|
53
|
-
@adl_command = options[:adl_command] || load_adl_command
|
43
|
+
# Debug options
|
44
|
+
@debug = options[:debug].is_a?(TrueClass) || options[:debug] == "true"
|
54
45
|
end
|
55
46
|
|
56
|
-
#
|
57
|
-
def
|
58
|
-
|
47
|
+
# Flex compiler command
|
48
|
+
def amxmlc
|
49
|
+
Airake::Commands::Amxmlc.new(self, @options)
|
59
50
|
end
|
60
|
-
|
61
|
-
#
|
62
|
-
def
|
63
|
-
|
64
|
-
end
|
65
|
-
|
66
|
-
# Run the Adobe Debug Launcher
|
67
|
-
def run_adl
|
68
|
-
run(adl_command)
|
51
|
+
|
52
|
+
# ADL command
|
53
|
+
def adl
|
54
|
+
Airake::Commands::Adl.new(self, @options)
|
69
55
|
end
|
70
56
|
|
57
|
+
# ADT command
|
58
|
+
def adt
|
59
|
+
Airake::Commands::Adt.new(self, @options)
|
60
|
+
end
|
61
|
+
|
71
62
|
# Create project using parameters from rake ENV
|
72
63
|
#
|
73
64
|
# You can set any of the options via ENV; just upcase it. <tt>:foo_bar => ENV["FOO_BAR"]</tt>
|
@@ -83,58 +74,10 @@ module Airake
|
|
83
74
|
env_key = option_key.to_s.upcase
|
84
75
|
options[option_key] = env[env_key] if env.has_key?(env_key)
|
85
76
|
end
|
86
|
-
puts "Using options: #{options.inspect}" unless options.empty?
|
77
|
+
#puts "Using options: #{options.inspect}" unless options.empty?
|
87
78
|
self.new(base_dir, mxml, options)
|
88
79
|
end
|
89
80
|
|
90
|
-
protected
|
91
|
-
|
92
|
-
# Get the mxmlc command
|
93
|
-
def load_mxmlc_command
|
94
|
-
command = []
|
95
|
-
command << @mxmlc_path
|
96
|
-
command << "+configname=air"
|
97
|
-
command << source_path_option
|
98
|
-
command << "-library-path+=#{@lib_dir}"
|
99
|
-
command << "-output #{@swf_path}"
|
100
|
-
command << debug_option
|
101
|
-
command << @mxmlc_extra_opts
|
102
|
-
command << "-disable-incremental-optimizations=true"
|
103
|
-
command << "-- #{@mxml_path}"
|
104
|
-
command.compact.join(" ")
|
105
|
-
end
|
106
|
-
|
107
|
-
# Get the ADT command
|
108
|
-
def load_adt_command
|
109
|
-
command = []
|
110
|
-
command << @adt_path
|
111
|
-
command << @adt_extra_opts
|
112
|
-
command << "-package #{relative_path(@air_path)}"
|
113
|
-
command << relative_path(@appxml_path)
|
114
|
-
command << relative_path(@swf_path)
|
115
|
-
command.compact.join(" ")
|
116
|
-
end
|
117
|
-
|
118
|
-
# Get the ADL command
|
119
|
-
def load_adl_command
|
120
|
-
command = []
|
121
|
-
command << @adl_path
|
122
|
-
command << @adl_extra_opts
|
123
|
-
command << @appxml_path
|
124
|
-
command << @base_dir
|
125
|
-
command.compact.join(" ")
|
126
|
-
end
|
127
|
-
|
128
|
-
# List of directories in lib/ for source_path +=
|
129
|
-
def lib_source_paths
|
130
|
-
Dir["#{@lib_dir}/*"].collect { |f| f if File.directory?(f) }.compact + [ @test_dir, @src_dir ]
|
131
|
-
end
|
132
|
-
|
133
|
-
def source_path_option
|
134
|
-
@source_paths ||= lib_source_paths
|
135
|
-
@source_paths.empty? ? "" : "-source-path #{@source_paths.join(" ")}"
|
136
|
-
end
|
137
|
-
|
138
81
|
def debug_option
|
139
82
|
"-debug=#{@debug}" if @debug
|
140
83
|
end
|
@@ -144,28 +87,6 @@ module Airake
|
|
144
87
|
Pathname.new(path).relative_path_from(Pathname.new(@base_dir))
|
145
88
|
end
|
146
89
|
|
147
|
-
# Handle system command failure
|
148
|
-
def fail(cmd, error_status)
|
149
|
-
fail_message = <<-EOS
|
150
|
-
|
151
|
-
The '#{cmd.split.first}' command failed to run. This could be because this executable isn't in the path.
|
152
|
-
|
153
|
-
To include mxmlc and fcsh:
|
154
|
-
export PATH="/path_to/flex3sdk_b2_100107/bin:$PATH"
|
155
|
-
|
156
|
-
To include adl and adt (from AIR SDK):
|
157
|
-
export PATH="/path_to/air_sdk/bin:$PATH"
|
158
|
-
|
159
|
-
EOS
|
160
|
-
#puts fail_message if error_status != 256 && error_status != 4096
|
161
|
-
raise "[#{error_status}] Failed to run command: #{cmd}"
|
162
|
-
end
|
163
|
-
|
164
|
-
# Run the (system) command
|
165
|
-
def run(cmd)
|
166
|
-
puts "Running: #{cmd}"
|
167
|
-
system cmd or fail(cmd, $?)
|
168
|
-
end
|
169
|
-
|
170
90
|
end
|
91
|
+
|
171
92
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Airake
|
2
|
+
|
3
|
+
class Runner
|
4
|
+
|
5
|
+
class << self
|
6
|
+
# Handle system command failure
|
7
|
+
def fail(cmd, error_status)
|
8
|
+
# fail_message = <<-EOS
|
9
|
+
#
|
10
|
+
# The '#{cmd.split.first}' command failed to run. This could be because this executable isn't in the path.
|
11
|
+
#
|
12
|
+
# To include mxmlc and fcsh:
|
13
|
+
# export PATH="/path_to/flex3sdk_b2_100107/bin:$PATH"
|
14
|
+
#
|
15
|
+
# To include adl and adt (from AIR SDK):
|
16
|
+
# export PATH="/path_to/air_sdk/bin:$PATH"
|
17
|
+
#
|
18
|
+
# EOS
|
19
|
+
# puts fail_message if error_status != 256 && error_status != 4096
|
20
|
+
raise "[#{error_status}] Failed to run command: #{cmd}"
|
21
|
+
end
|
22
|
+
|
23
|
+
# Run the command using system(..)
|
24
|
+
def run(command, method, *args)
|
25
|
+
cmd = command.send(method, *args)
|
26
|
+
|
27
|
+
puts "Running: #{cmd}"
|
28
|
+
system cmd or fail(cmd, $?)
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
data/lib/airake/tasks/air.rake
CHANGED
@@ -5,10 +5,10 @@ namespace :air do
|
|
5
5
|
begin
|
6
6
|
project = Airake::Project.new_from_rake(ENV)
|
7
7
|
fcsh = PatternPark::FCSH.new_from_rake(ENV)
|
8
|
-
fcsh.execute([ project.base_dir, project.
|
8
|
+
fcsh.execute([ project.base_dir, project.amxmlc.compile ])
|
9
9
|
rescue PatternPark::FCSHConnectError => e
|
10
10
|
puts "Cannot connect to FCSHD (start by running: rake fcsh:start); Continuing compilation..."
|
11
|
-
project.
|
11
|
+
Airake::Runner.run(project.amxmlc, :compile)
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
@@ -16,24 +16,78 @@ namespace :air do
|
|
16
16
|
task :test do
|
17
17
|
ENV["DEBUG"] = "true" unless ENV.has_key?("DEBUG")
|
18
18
|
test_project = Airake::Project.new_from_rake(ENV, true)
|
19
|
-
test_project.
|
20
|
-
test_project.
|
19
|
+
Airake::Runner.run(test_project.amxmlc, :compile)
|
20
|
+
Airake::Runner.run(test_project.adl, :launch)
|
21
|
+
end
|
22
|
+
|
23
|
+
desc "Generate certificate"
|
24
|
+
task :certificate do
|
25
|
+
pfx_file = ENV["CERTIFICATE"]
|
26
|
+
|
27
|
+
if pfx_file.blank? || pfx_file == "path/to/certificate.pfx"
|
28
|
+
print "Certificate file (to create; e.g. cert.pfx): "
|
29
|
+
pfx_file = STDIN.gets.chomp!
|
30
|
+
end
|
31
|
+
|
32
|
+
if File.exist?(pfx_file)
|
33
|
+
raise "Certificate file exists at '#{pfx_file}'. If you want to generate a new certificate, please delete it first."
|
34
|
+
end
|
35
|
+
|
36
|
+
puts "Will generate a certificate file at: #{pfx_file}"
|
37
|
+
|
38
|
+
project = Airake::Project.new_from_rake(ENV)
|
39
|
+
optionals = {}
|
40
|
+
|
41
|
+
print "Specify common name (e.g. SelfSign, ADigitalID): "
|
42
|
+
cn = STDIN.gets.chomp!
|
43
|
+
|
44
|
+
print "Key type (e.g. 1024-RSA, 2048-RSA): "
|
45
|
+
key_type = STDIN.gets.chomp!
|
46
|
+
|
47
|
+
print "Org unit (optional; e.g QE): "
|
48
|
+
optionals[:ou] = STDIN.gets.chomp!
|
49
|
+
|
50
|
+
print "Org name (optional; e.g Example - CO): "
|
51
|
+
input = STDIN.gets.chomp!
|
52
|
+
optionals[:o] = "\"#{input}\"" unless input.blank?
|
53
|
+
|
54
|
+
print "Country (optional; e.g. US): "
|
55
|
+
optionals[:c] = STDIN.gets.chomp!
|
56
|
+
|
57
|
+
print "Password: "
|
58
|
+
password = STDIN.gets.chomp!
|
59
|
+
|
60
|
+
Airake::Runner.run(project.adt, :certificate, cn, pfx_file, key_type, password, optionals)
|
61
|
+
end
|
62
|
+
|
63
|
+
# Check certificate configuration for package task
|
64
|
+
task :check_certificate do
|
65
|
+
pfx_file = ENV["CERTIFICATE"]
|
66
|
+
|
67
|
+
if pfx_file.blank? || pfx_file == "path/to/certificate.pfx"
|
68
|
+
raise <<-EOS
|
69
|
+
No certificate path found (or not set). Please specify ENV[\"CERTIFICATE\"] = \"path/to/certificate.pfx\" in Rakefile.
|
70
|
+
If you don't have a certificate run rake air:certificate to generate one.
|
71
|
+
EOS
|
72
|
+
end
|
73
|
+
|
74
|
+
raise "Certificate does not exist yet. Run rake air:certificate to generate one at #{pfx_file}" unless File.exist?(pfx_file)
|
21
75
|
end
|
22
76
|
|
23
77
|
desc "Package"
|
24
|
-
task :package => :compile do
|
78
|
+
task :package => [ :check_certificate, :compile ] do
|
25
79
|
project = Airake::Project.new_from_rake(ENV)
|
26
|
-
project.
|
80
|
+
Airake::Runner.run(project.adt, :package)
|
27
81
|
end
|
28
82
|
|
29
83
|
task :set_debug do
|
30
84
|
ENV["DEBUG"] = "true" unless ENV.has_key?("DEBUG")
|
31
85
|
end
|
32
86
|
|
33
|
-
desc "
|
87
|
+
desc "Launch ADL"
|
34
88
|
task :adl => [ :set_debug, :compile ] do
|
35
89
|
project = Airake::Project.new_from_rake(ENV)
|
36
|
-
project.
|
90
|
+
Airake::Runner.run(project.adl, :launch)
|
37
91
|
end
|
38
92
|
|
39
93
|
end
|
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
namespace :air do
|
4
4
|
|
5
|
-
desc "Start the FCSHD process (DEPRECATED)"
|
6
5
|
task :start_fcshd do
|
7
6
|
puts "Starting FCSHD..."
|
8
7
|
PatternPark::FCSHD.start_from_rake(ENV)
|
@@ -10,7 +9,6 @@ namespace :air do
|
|
10
9
|
|
11
10
|
task :fcshd => :start_fcshd # Alias
|
12
11
|
|
13
|
-
desc "Stop the FCSHD process (DEPRECATED)"
|
14
12
|
task :stop_fcshd do
|
15
13
|
begin
|
16
14
|
fcsh = PatternPark::FCSH.new_from_rake(ENV)
|
@@ -20,7 +18,6 @@ namespace :air do
|
|
20
18
|
end
|
21
19
|
end
|
22
20
|
|
23
|
-
desc "Restart the FCSHD process (DEPRECATED)"
|
24
21
|
task :restart_fcshd => [ :stop_fcshd, :sleep, :start_fcshd ]
|
25
22
|
|
26
23
|
task :sleep do
|
data/lib/airake/version.rb
CHANGED
data/lib/airake.rb
CHANGED
@@ -3,10 +3,19 @@ $:.unshift File.dirname(__FILE__)
|
|
3
3
|
require 'airake/daemonize'
|
4
4
|
require 'airake/fcsh'
|
5
5
|
require 'airake/fcshd'
|
6
|
+
require 'airake/commands/amxmlc'
|
7
|
+
require 'airake/commands/adl'
|
8
|
+
require 'airake/commands/adt'
|
6
9
|
require 'airake/project'
|
10
|
+
require 'airake/runner'
|
7
11
|
require 'rake'
|
8
12
|
require 'airake/tasks'
|
9
13
|
|
14
|
+
unless Object.respond_to?(:blank?)
|
15
|
+
require 'airake/core_ext/blank'
|
16
|
+
end
|
17
|
+
|
18
|
+
|
10
19
|
module Airake
|
11
20
|
|
12
21
|
end
|
@@ -3,12 +3,11 @@ require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
|
|
3
3
|
class TestAirakeGenerator < Test::Unit::TestCase
|
4
4
|
include RubiGen::GeneratorTestHelper
|
5
5
|
|
6
|
-
attr_reader :app_name
|
6
|
+
attr_reader :app_name
|
7
7
|
|
8
8
|
def setup
|
9
9
|
bare_setup
|
10
10
|
@app_name = "foo"
|
11
|
-
@app_id = "com.foo.Bar"
|
12
11
|
end
|
13
12
|
|
14
13
|
def teardown
|
@@ -30,7 +29,7 @@ class TestAirakeGenerator < Test::Unit::TestCase
|
|
30
29
|
# bare_teardown - place this in teardown method to destroy the TMP_ROOT or APP_ROOT folder after each test
|
31
30
|
|
32
31
|
def test_generator_with_options
|
33
|
-
run_generator('airake', [APP_ROOT
|
32
|
+
run_generator('airake', [APP_ROOT], sources)
|
34
33
|
assert_generated_file "Rakefile"
|
35
34
|
assert_generated_file "README"
|
36
35
|
assert_directory_exists "bin"
|
@@ -39,10 +38,10 @@ class TestAirakeGenerator < Test::Unit::TestCase
|
|
39
38
|
assert_directory_exists "test"
|
40
39
|
end
|
41
40
|
|
42
|
-
|
41
|
+
private
|
42
|
+
|
43
43
|
def sources
|
44
|
-
[RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path))
|
45
|
-
]
|
44
|
+
[ RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path)) ]
|
46
45
|
end
|
47
46
|
|
48
47
|
def generator_path
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
|
2
|
+
|
3
|
+
class TestBrowsairGenerator < Test::Unit::TestCase
|
4
|
+
include RubiGen::GeneratorTestHelper
|
5
|
+
|
6
|
+
attr_reader :app_name, :url
|
7
|
+
|
8
|
+
def setup
|
9
|
+
bare_setup
|
10
|
+
@app_name = "GReader"
|
11
|
+
@url = "http://reader.google.com"
|
12
|
+
end
|
13
|
+
|
14
|
+
def teardown
|
15
|
+
bare_teardown
|
16
|
+
end
|
17
|
+
|
18
|
+
# Some generator-related assertions:
|
19
|
+
# assert_generated_file(name, &block) # block passed the file contents
|
20
|
+
# assert_directory_exists(name)
|
21
|
+
# assert_generated_class(name, &block)
|
22
|
+
# assert_generated_module(name, &block)
|
23
|
+
# assert_generated_test_for(name, &block)
|
24
|
+
# The assert_generated_(class|module|test_for) &block is passed the body of the class/module within the file
|
25
|
+
# assert_has_method(body, *methods) # check that the body has a list of methods (methods with parentheses not supported yet)
|
26
|
+
#
|
27
|
+
# Other helper methods are:
|
28
|
+
# app_root_files - put this in teardown to show files generated by the test method (e.g. p app_root_files)
|
29
|
+
# bare_setup - place this in setup method to create the APP_ROOT folder for each test
|
30
|
+
# bare_teardown - place this in teardown method to destroy the TMP_ROOT or APP_ROOT folder after each test
|
31
|
+
|
32
|
+
def test_generator_with_options
|
33
|
+
run_generator('browsair', [ APP_ROOT, @url ], sources)
|
34
|
+
assert_generated_file "Rakefile"
|
35
|
+
assert_generated_file "README"
|
36
|
+
assert_directory_exists "bin"
|
37
|
+
assert_directory_exists "src"
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def sources
|
43
|
+
[ RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path)) ]
|
44
|
+
end
|
45
|
+
|
46
|
+
def generator_path
|
47
|
+
"app_generators"
|
48
|
+
end
|
49
|
+
end
|
metadata
CHANGED
@@ -3,15 +3,15 @@ rubygems_version: 0.9.4
|
|
3
3
|
specification_version: 1
|
4
4
|
name: airake
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.1
|
7
|
-
date: 2007-10-
|
8
|
-
summary: Adobe AIR tasks
|
6
|
+
version: 0.2.1
|
7
|
+
date: 2007-10-11 00:00:00 -04:00
|
8
|
+
summary: Adobe AIR generators and tasks
|
9
9
|
require_paths:
|
10
10
|
- lib
|
11
11
|
email: gabrielh@gmail.com
|
12
12
|
homepage: http://airake.rubyforge.org
|
13
13
|
rubyforge_project: airake
|
14
|
-
description: Adobe AIR tasks
|
14
|
+
description: Adobe AIR generators and tasks
|
15
15
|
autorequire:
|
16
16
|
default_executable:
|
17
17
|
bindir: bin
|
@@ -38,28 +38,38 @@ files:
|
|
38
38
|
- app_generators/airake/USAGE
|
39
39
|
- app_generators/airake/airake_generator.rb
|
40
40
|
- app_generators/airake/templates/README
|
41
|
-
- app_generators/airake/templates/Rakefile
|
42
|
-
- app_generators/airake/templates/application.mxml
|
43
|
-
- app_generators/airake/templates/descriptor.xml
|
44
41
|
- app_generators/airake/templates/lib/corelib-08.30.2007.swc
|
45
|
-
- app_generators/
|
46
|
-
- app_generators/
|
47
|
-
- app_generators/
|
48
|
-
- app_generators/
|
42
|
+
- app_generators/browsair/USAGE
|
43
|
+
- app_generators/browsair/browsair_generator.rb
|
44
|
+
- app_generators/browsair/templates/README
|
45
|
+
- app_generators/shared/Rakefile
|
46
|
+
- app_generators/shared/application.mxml
|
47
|
+
- app_generators/shared/descriptor.xml
|
48
|
+
- app_generators/shared/icons/MouseRunnerDotComGraphicsLicense.txt
|
49
|
+
- app_generators/shared/icons/Web.png
|
50
|
+
- app_generators/shared/lib/flexunit-08.30.2007.swc
|
51
|
+
- app_generators/shared/test/Test-app.xml
|
52
|
+
- app_generators/shared/test/Test.mxml
|
53
|
+
- app_generators/shared/test/suite/AllTests.as
|
49
54
|
- bin/airake
|
55
|
+
- bin/browsair
|
50
56
|
- config/hoe.rb
|
51
57
|
- config/requirements.rb
|
52
58
|
- lib/airake.rb
|
59
|
+
- lib/airake/commands/adl.rb
|
60
|
+
- lib/airake/commands/adt.rb
|
61
|
+
- lib/airake/commands/amxmlc.rb
|
62
|
+
- lib/airake/core_ext/blank.rb
|
53
63
|
- lib/airake/daemonize.rb
|
54
64
|
- lib/airake/fcsh.rb
|
55
65
|
- lib/airake/fcshd.rb
|
56
66
|
- lib/airake/project.rb
|
67
|
+
- lib/airake/runner.rb
|
57
68
|
- lib/airake/tasks.rb
|
58
69
|
- lib/airake/tasks/air.rake
|
59
70
|
- lib/airake/tasks/deployment.rake
|
60
71
|
- lib/airake/tasks/fcsh.rake
|
61
72
|
- lib/airake/version.rb
|
62
|
-
- log/debug.log
|
63
73
|
- script/destroy
|
64
74
|
- script/generate
|
65
75
|
- setup.rb
|
@@ -68,11 +78,13 @@ files:
|
|
68
78
|
- tasks/website.rake
|
69
79
|
- test/test_airake.rb
|
70
80
|
- test/test_airake_generator.rb
|
81
|
+
- test/test_browsair_generator.rb
|
71
82
|
- test/test_generator_helper.rb
|
72
83
|
- test/test_helper.rb
|
73
84
|
test_files:
|
74
85
|
- test/test_airake.rb
|
75
86
|
- test/test_airake_generator.rb
|
87
|
+
- test/test_browsair_generator.rb
|
76
88
|
- test/test_generator_helper.rb
|
77
89
|
- test/test_helper.rb
|
78
90
|
rdoc_options:
|
@@ -84,8 +96,10 @@ extra_rdoc_files:
|
|
84
96
|
- Manifest.txt
|
85
97
|
- Notes.txt
|
86
98
|
- README.txt
|
99
|
+
- app_generators/shared/icons/MouseRunnerDotComGraphicsLicense.txt
|
87
100
|
executables:
|
88
101
|
- airake
|
102
|
+
- browsair
|
89
103
|
extensions: []
|
90
104
|
|
91
105
|
requirements: []
|
data/log/debug.log
DELETED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|