airake 0.2.4 → 0.2.5

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 CHANGED
@@ -1,3 +1,11 @@
1
+ == 0.2.5 2007-10-17
2
+
3
+ * airake and browsair apps includes script/generate and script/destroy for rubigen scopes :air and :airake [drnic]
4
+ * airake @name and @app_name based on base_name not arguments [drnic]
5
+ * upgraded dependency rubigen 1.0.3 -> 1.0.4 [drnic]
6
+ * fixed bin/airake and browsair --version [gabe]
7
+ * added class generator [gabe]
8
+
1
9
  == 0.2.4 2007-10-13
2
10
 
3
11
  * Fixing custom icon specification
data/Manifest.txt CHANGED
@@ -4,6 +4,9 @@ Manifest.txt
4
4
  Notes.txt
5
5
  README.txt
6
6
  Rakefile
7
+ air_generators/class/USAGE
8
+ air_generators/class/class_generator.rb
9
+ air_generators/class/templates/Class.as
7
10
  app_generators/airake/USAGE
8
11
  app_generators/airake/airake_generator.rb
9
12
  app_generators/airake/templates/README
@@ -49,5 +52,6 @@ tasks/website.rake
49
52
  test/test_airake.rb
50
53
  test/test_airake_generator.rb
51
54
  test/test_browsair_generator.rb
55
+ test/test_class_generator.rb
52
56
  test/test_generator_helper.rb
53
57
  test/test_helper.rb
@@ -0,0 +1,8 @@
1
+ Description:
2
+
3
+ Creates an actionscript class at a src path.
4
+
5
+ Usage:
6
+
7
+ ./script/generate class com.foo.Bar [path/to/src (optional)]
8
+
@@ -0,0 +1,62 @@
1
+ class ClassGenerator < RubiGen::Base
2
+
3
+ attr_reader :name, :package, :class_name, :src_dir
4
+
5
+ def initialize(runtime_args, runtime_options = {})
6
+ super
7
+ usage if args.empty?
8
+ @name = args.shift
9
+
10
+ @src_dir = args.shift unless args.empty?
11
+ @src_dir ||= "src"
12
+
13
+ # Split com.foo.Bar into package ["com", "foo" ] and class_name "Bar"
14
+ if @name.rindex(".")
15
+ @package = @name[0...@name.rindex(".")]
16
+ @class_name = @name[@name.rindex(".")+1..-1]
17
+ else
18
+ @package = ""
19
+ @class_name = @name
20
+ end
21
+
22
+ extract_options
23
+ end
24
+
25
+ def manifest
26
+ record do |m|
27
+ # Ensure appropriate folder(s) exists
28
+
29
+ dir = src_dir
30
+ unless package.blank?
31
+ dir = File.join(src_dir, package.split("."))
32
+ m.directory dir
33
+ end
34
+
35
+ m.template "Class.as", File.join(dir, class_name + ".as")
36
+
37
+ end
38
+ end
39
+
40
+ protected
41
+ def banner
42
+ ""
43
+ end
44
+
45
+ def add_options!(opts)
46
+ # opts.separator ''
47
+ # opts.separator 'Options:'
48
+ # For each option below, place the default
49
+ # at the top of the file next to "default_options"
50
+ # opts.on("-a", "--author=\"Your Name\"", String,
51
+ # "Some comment about this option",
52
+ # "Default: none") { |options[:author]| }
53
+ # opts.on("-v", "--version", "Show the #{File.basename($0)} version number and quit.")
54
+ end
55
+
56
+ def extract_options
57
+ # for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
58
+ # Templates can access these value via the attr_reader-generated methods, but not the
59
+ # raw instance variable value.
60
+ # @author = options[:author]
61
+ end
62
+ end
@@ -0,0 +1,11 @@
1
+ package <%= package %> {
2
+
3
+ public class <%= class_name %> {
4
+
5
+ public function <%= class_name %>() {
6
+
7
+ }
8
+
9
+ }
10
+
11
+ }
@@ -1,11 +1,15 @@
1
1
  class AirakeGenerator < RubiGen::Base
2
2
 
3
+ DEFAULT_SHEBANG = File.join(Config::CONFIG['bindir'],
4
+ Config::CONFIG['ruby_install_name'])
5
+
3
6
  attr_reader :name, :app_name, :title, :url, :description, :show_buttons
4
7
 
5
8
  def initialize(runtime_args, runtime_options = {})
6
9
  super
7
10
  usage if args.empty? || args.size < 1
8
- @name = args.shift
11
+ @destination_root = File.expand_path(args.shift)
12
+ @name = base_name
9
13
  @app_name = @name.gsub(/\s+/, "").camelize
10
14
  @title = @name
11
15
  @url = "http://airake.rubyforge.org/resources.html"
@@ -13,11 +17,12 @@ class AirakeGenerator < RubiGen::Base
13
17
  @show_buttons = true
14
18
  extract_options
15
19
 
16
- @destination_root = File.expand_path(@name)
17
20
  @source_root = File.join(File.dirname(__FILE__), "..", "shared")
18
21
  end
19
22
 
20
- def manifest
23
+ def manifest
24
+ script_options = { :chmod => 0755, :shebang => options[:shebang] == DEFAULT_SHEBANG ? nil : options[:shebang] }
25
+
21
26
  record do |m|
22
27
  # Ensure appropriate folder(s) exists
23
28
  m.directory ''
@@ -44,6 +49,8 @@ class AirakeGenerator < RubiGen::Base
44
49
  m.file "icons/Web.png", "src/assets/app_icons/icon_128.png"
45
50
  m.file "icons/MouseRunnerDotComGraphicsLicense.txt", "src/assets/app_icons/MouseRunnerDotComGraphicsLicense.txt"
46
51
 
52
+ m.dependency "install_rubigen_scripts", [destination_root, "air", "airake"], :shebang => options[:shebang]
53
+
47
54
  end
48
55
  end
49
56
 
@@ -80,6 +87,7 @@ EOS
80
87
  bin
81
88
  lib
82
89
  src
90
+ script
83
91
  test
84
92
  )
85
93
  end
@@ -1,12 +1,15 @@
1
1
  class BrowsairGenerator < RubiGen::Base
2
+
3
+ DEFAULT_SHEBANG = File.join(Config::CONFIG['bindir'],
4
+ Config::CONFIG['ruby_install_name'])
2
5
 
3
6
  attr_reader :name, :app_name, :url, :title, :description, :icon_src_path, :show_buttons
4
7
 
5
8
  def initialize(runtime_args, runtime_options = {})
6
9
  super
7
10
  usage if args.empty? || args.size < 2
8
- @path = args.shift
9
- @name = File.basename(@path)
11
+ @destination_root = File.expand_path(args.shift)
12
+ @name = base_name
10
13
  @app_name = @name.gsub(/\s+/, "")
11
14
  @url = args.shift
12
15
  @title = "#{@name} - #{@url}"
@@ -14,7 +17,6 @@ class BrowsairGenerator < RubiGen::Base
14
17
  @icon_src_path = File.expand_path(args.shift) unless args.empty?
15
18
  extract_options
16
19
 
17
- @destination_root = File.expand_path(@path)
18
20
  @source_root = File.join(File.dirname(__FILE__), "..", "shared")
19
21
  end
20
22
 
@@ -54,7 +56,10 @@ class BrowsairGenerator < RubiGen::Base
54
56
  icon_dest_path = destination_path("src/assets/app_icons/icon_128.png")
55
57
  FileUtils.mkdir_p(destination_path("src/assets/app_icons"))
56
58
  FileUtils.cp(icon_src_path, icon_dest_path)
57
- end
59
+ end
60
+
61
+ m.dependency "install_rubigen_scripts", [destination_root, "air", "browsair"], :shebang => options[:shebang]
62
+
58
63
 
59
64
  end
60
65
  end
data/bin/airake CHANGED
@@ -2,8 +2,8 @@ require 'rubygems'
2
2
  require 'rubigen'
3
3
 
4
4
  if %w(-v --version).include? ARGV.first
5
- require 'newgem/version'
6
- puts "#{File.basename($0)} #{Newgem::VERSION::STRING}"
5
+ require 'airake/version'
6
+ puts "#{File.basename($0)} #{Airake::VERSION::STRING}"
7
7
  exit(0)
8
8
  end
9
9
 
data/bin/browsair CHANGED
@@ -2,8 +2,8 @@ require 'rubygems'
2
2
  require 'rubigen'
3
3
 
4
4
  if %w(-v --version).include? ARGV.first
5
- require 'newgem/version'
6
- puts "#{File.basename($0)} #{Newgem::VERSION::STRING}"
5
+ require 'airake/version'
6
+ puts "#{File.basename($0)} #{Airake::VERSION::STRING}"
7
7
  exit(0)
8
8
  end
9
9
 
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 generators and tasks"
5
+ DESCRIPTION = "Tasks and generators for Adobe AIR apps"
6
6
  GEM_NAME = 'airake'
7
7
  RUBYFORGE_PROJECT = 'airake' # The unix name for your project
8
8
  HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
@@ -61,7 +61,7 @@ hoe = Hoe.new(GEM_NAME, VERS) do |p|
61
61
  p.changes = p.paragraphs_of("History.txt", 0..1).join("\\n\\n")
62
62
  #p.extra_deps = [] # An array of rubygem dependencies [name, version], e.g. [ ['active_support', '>= 1.3.1'] ]
63
63
  p.extra_deps = [
64
- ['rubigen','>=1.0.3']
64
+ ['rubigen','>=1.0.4']
65
65
  ]
66
66
 
67
67
  #p.spec_extras = {} # A hash of extra values to set in the gemspec.
@@ -2,17 +2,21 @@ module Airake
2
2
 
3
3
  module Commands
4
4
 
5
+ # ADL (Adobe Debug Lancher)
6
+ #
7
+ # http://livedocs.adobe.com/labs/air/1/devappsflex/help.html?content=CommandLineTools_4.html#1031914
5
8
  class Adl < Base
6
9
 
7
10
  attr_reader :project, :path, :extra_opts
8
11
 
12
+ # options:: :adl_path, adl_extra_opts
9
13
  def initialize(project, options = {})
10
14
  @project = project
11
15
  @path = options[:adl_path] || "adl"
12
16
  @extra_opts = options[:adl_extra_opts]
13
17
  end
14
18
 
15
- # Get the ADL command
19
+ # Get the ADL launch command
16
20
  def launch
17
21
  command = []
18
22
  command << @path
@@ -2,10 +2,14 @@ module Airake
2
2
 
3
3
  module Commands
4
4
 
5
+ # ADT (Adobe Developer Tool)
6
+ #
7
+ # http://livedocs.adobe.com/labs/air/1/devappsflex/help.html?content=CommandLineTools_5.html
5
8
  class Adt < Base
6
9
 
7
10
  attr_reader :project, :path, :certificate, :extra_opts, :assets
8
11
 
12
+ # options:: :adt_path, :certificate, :adt_extra_opts, :assets
9
13
  def initialize(project, options = {})
10
14
  @project = project
11
15
  @path = options[:adt_path] || "adt"
@@ -14,7 +18,7 @@ module Airake
14
18
  @assets = options[:assets]
15
19
  end
16
20
 
17
- # Get the ADT command
21
+ # Get the ADT package command
18
22
  def package
19
23
  command = []
20
24
  command << @path
@@ -28,7 +32,7 @@ module Airake
28
32
  process(command)
29
33
  end
30
34
 
31
- # Generate a certificate
35
+ # Get the ADT certificate command to generate a certificate
32
36
  #
33
37
  # cn:: Common name
34
38
  # pfx_file:: Output certificate path
@@ -2,17 +2,21 @@ module Airake
2
2
 
3
3
  module Commands
4
4
 
5
+ # AMXMLC (AIR MXML compiler)
6
+ #
7
+ # http://livedocs.adobe.com/labs/air/1/devappsflex/help.html?content=CommandLineTools_2.html#1032546
5
8
  class Amxmlc < Base
6
9
 
7
10
  attr_reader :project, :path, :extra_opts
8
11
 
12
+ # options:: :amxmlc_path, :amxmlc_extra_opts
9
13
  def initialize(project, options = {})
10
14
  @project = project
11
15
  @path = options[:amxmlc_path] || "amxmlc"
12
16
  @extra_opts = options[:amxmlc_extra_opts]
13
17
  end
14
18
 
15
- # Get the amxmlc command
19
+ # Get the amxmlc compile command
16
20
  def compile
17
21
  command = []
18
22
  command << @path
@@ -2,7 +2,7 @@ module Airake #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 2
5
- TINY = 4
5
+ TINY = 5
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -36,6 +36,9 @@ class TestAirakeGenerator < Test::Unit::TestCase
36
36
  assert_directory_exists "lib"
37
37
  assert_directory_exists "src"
38
38
  assert_directory_exists "test"
39
+ assert_directory_exists "script"
40
+ assert_generated_file "script/generate"
41
+ assert_generated_file "script/destroy"
39
42
  end
40
43
 
41
44
  private
@@ -31,6 +31,9 @@ class TestBrowsairGenerator < Test::Unit::TestCase
31
31
  assert_generated_file "README"
32
32
  assert_directory_exists "bin"
33
33
  assert_directory_exists "src"
34
+ assert_directory_exists "script"
35
+ assert_generated_file "script/generate"
36
+ assert_generated_file "script/destroy"
34
37
  end
35
38
 
36
39
  def test_generator_with_icon
@@ -0,0 +1,43 @@
1
+ require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
2
+
3
+ class TestClassGenerator < Test::Unit::TestCase
4
+ include RubiGen::GeneratorTestHelper
5
+
6
+ def setup
7
+ bare_setup
8
+ end
9
+
10
+ def teardown
11
+ bare_teardown
12
+ end
13
+
14
+ # Some generator-related assertions:
15
+ # assert_generated_file(name, &block) # block passed the file contents
16
+ # assert_directory_exists(name)
17
+ # assert_generated_class(name, &block)
18
+ # assert_generated_module(name, &block)
19
+ # assert_generated_test_for(name, &block)
20
+ # The assert_generated_(class|module|test_for) &block is passed the body of the class/module within the file
21
+ # assert_has_method(body, *methods) # check that the body has a list of methods (methods with parentheses not supported yet)
22
+ #
23
+ # Other helper methods are:
24
+ # app_root_files - put this in teardown to show files generated by the test method (e.g. p app_root_files)
25
+ # bare_setup - place this in setup method to create the APP_ROOT folder for each test
26
+ # bare_teardown - place this in teardown method to destroy the TMP_ROOT or APP_ROOT folder after each test
27
+
28
+ def test_generator_without_options
29
+ clazz = "foo.bar.TestClassName"
30
+ run_generator('class', [clazz], sources)
31
+ assert_generated_file("src/foo/bar/TestClassName.as")
32
+ end
33
+
34
+ private
35
+
36
+ def sources
37
+ [ RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path)) ]
38
+ end
39
+
40
+ def generator_path
41
+ "air_generators"
42
+ end
43
+ 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.2.4
7
- date: 2007-10-13 00:00:00 -04:00
8
- summary: Adobe AIR generators and tasks
6
+ version: 0.2.5
7
+ date: 2007-10-17 00:00:00 -04:00
8
+ summary: Tasks and generators for Adobe AIR apps
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 generators and tasks
14
+ description: Tasks and generators for Adobe AIR apps
15
15
  autorequire:
16
16
  default_executable:
17
17
  bindir: bin
@@ -35,6 +35,9 @@ files:
35
35
  - Notes.txt
36
36
  - README.txt
37
37
  - Rakefile
38
+ - air_generators/class/USAGE
39
+ - air_generators/class/class_generator.rb
40
+ - air_generators/class/templates/Class.as
38
41
  - app_generators/airake/USAGE
39
42
  - app_generators/airake/airake_generator.rb
40
43
  - app_generators/airake/templates/README
@@ -80,12 +83,14 @@ files:
80
83
  - test/test_airake.rb
81
84
  - test/test_airake_generator.rb
82
85
  - test/test_browsair_generator.rb
86
+ - test/test_class_generator.rb
83
87
  - test/test_generator_helper.rb
84
88
  - test/test_helper.rb
85
89
  test_files:
86
90
  - test/test_airake.rb
87
91
  - test/test_airake_generator.rb
88
92
  - test/test_browsair_generator.rb
93
+ - test/test_class_generator.rb
89
94
  - test/test_generator_helper.rb
90
95
  - test/test_helper.rb
91
96
  rdoc_options:
@@ -113,5 +118,5 @@ dependencies:
113
118
  requirements:
114
119
  - - ">="
115
120
  - !ruby/object:Gem::Version
116
- version: 1.0.3
121
+ version: 1.0.4
117
122
  version: