airake 0.1.12 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. data/History.txt +8 -0
  2. data/Manifest.txt +19 -8
  3. data/README.txt +6 -12
  4. data/app_generators/airake/USAGE +2 -2
  5. data/app_generators/airake/airake_generator.rb +25 -15
  6. data/app_generators/airake/templates/README +3 -12
  7. data/app_generators/browsair/USAGE +5 -0
  8. data/app_generators/browsair/browsair_generator.rb +91 -0
  9. data/app_generators/browsair/templates/README +1 -0
  10. data/app_generators/{airake/templates → shared}/Rakefile +6 -8
  11. data/app_generators/shared/application.mxml +25 -0
  12. data/app_generators/{airake/templates → shared}/descriptor.xml +10 -10
  13. data/app_generators/shared/icons/MouseRunnerDotComGraphicsLicense.txt +15 -0
  14. data/app_generators/shared/icons/Web.png +0 -0
  15. data/bin/browsair +12 -0
  16. data/config/hoe.rb +1 -1
  17. data/lib/airake/commands/adl.rb +29 -0
  18. data/lib/airake/commands/adt.rb +58 -0
  19. data/lib/airake/commands/amxmlc.rb +52 -0
  20. data/lib/airake/core_ext/blank.rb +56 -0
  21. data/lib/airake/project.rb +27 -106
  22. data/lib/airake/runner.rb +35 -0
  23. data/lib/airake/tasks/air.rake +62 -8
  24. data/lib/airake/tasks/deployment.rake +0 -3
  25. data/lib/airake/version.rb +2 -2
  26. data/lib/airake.rb +9 -0
  27. data/test/test_airake_generator.rb +5 -6
  28. data/test/test_browsair_generator.rb +49 -0
  29. metadata +26 -12
  30. data/app_generators/airake/templates/application.mxml +0 -6
  31. data/log/debug.log +0 -0
  32. /data/app_generators/{airake/templates → shared}/lib/flexunit-08.30.2007.swc +0 -0
  33. /data/app_generators/{airake/templates → shared}/test/Test-app.xml +0 -0
  34. /data/app_generators/{airake/templates → shared}/test/Test.mxml +0 -0
  35. /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/airake/templates/lib/flexunit-08.30.2007.swc
15
- app_generators/airake/templates/test/Test-app.xml
16
- app_generators/airake/templates/test/Test.mxml
17
- app_generators/airake/templates/test/suite/AllTests.as
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["MXMLC_PATH"] = "mxmlc"
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["MXMLC_EXTRA_OPTS"] = ...
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"] = ...
@@ -1,5 +1,5 @@
1
1
  Description:
2
-
2
+ Creates an AIR project scaffold.
3
3
 
4
4
  Usage:
5
-
5
+ airake [path/to/AppName]
@@ -1,37 +1,48 @@
1
1
  class AirakeGenerator < RubiGen::Base
2
2
 
3
- #default_options :author => nil
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.template "descriptor.xml", "src/#{app_name}-app.xml"
25
- m.template "application.mxml", "src/#{app_name}.mxml"
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/corelib-08.30.2007.swc", "lib/corelib-08.30.2007.swc"
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.file "test/suite/AllTests.as", "test/suite/AllTests.as"
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 com.company.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["MXMLC_PATH"] = "mxmlc"
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["MXMLC_EXTRA_OPTS"] = ...
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,5 @@
1
+ Description:
2
+ Create an AIR browser for a specific URL.
3
+
4
+ Usage:
5
+ browsair [name] [http://the.url] [path/to/icon_128.png (optional)]
@@ -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
- # For task list run, rake --tasks
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.companyName.<%= app_name %>" version="0.0.1">
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>Put description here</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 displayed in the AIR application installer.
54
+ The window title.
55
55
  -->
56
- <title></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
- <!-- <image128x128>icons/AIRApp_128.png</image128x128> -->
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
@@ -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
- attr_reader :mxmlc_path, :adt_path, :adl_path
13
- attr_reader :mxmlc_command, :adt_command, :adl_command, :mxmlc_extra_opts
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
- @mxmlc_path = options[:mxmlc_path] || "mxmlc"
29
- @adt_path = options[:adt_path] || "adt"
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
- @debug = options[:debug].is_a?(TrueClass) || options[:debug] == "true"
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
- # Run the Adobe Developer Tool
57
- def run_adt
58
- run(adt_command)
47
+ # Flex compiler command
48
+ def amxmlc
49
+ Airake::Commands::Amxmlc.new(self, @options)
59
50
  end
60
-
61
- # Run the Flex compiler
62
- def run_mxmlc
63
- run(mxmlc_command)
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
@@ -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.mxmlc_command ])
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.run_mxmlc
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.run_mxmlc
20
- test_project.run_adl
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.run_adt
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 "Apollo Debug Luncher"
87
+ desc "Launch ADL"
34
88
  task :adl => [ :set_debug, :compile ] do
35
89
  project = Airake::Project.new_from_rake(ENV)
36
- project.run_adl
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
@@ -1,8 +1,8 @@
1
1
  module Airake #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
- MINOR = 1
5
- TINY = 12
4
+ MINOR = 2
5
+ TINY = 1
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
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, :app_id
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, "com.foo.MyProject"], sources)
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
- private
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.12
7
- date: 2007-10-08 00:00:00 -04:00
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/airake/templates/lib/flexunit-08.30.2007.swc
46
- - app_generators/airake/templates/test/Test-app.xml
47
- - app_generators/airake/templates/test/Test.mxml
48
- - app_generators/airake/templates/test/suite/AllTests.as
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: []
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" title="<%= app_name %>">
3
-
4
- <mx:Label text="Hi"/>
5
-
6
- </mx:WindowedApplication>
data/log/debug.log DELETED
File without changes