|
From: <luk...@us...> - 2006-09-06 08:11:15
|
Revision: 87
http://svn.sourceforge.net/asunit/?rev=87&view=rev
Author: lukebayes
Date: 2006-09-06 01:11:07 -0700 (Wed, 06 Sep 2006)
Log Message:
-----------
got robust template support
Modified Paths:
--------------
trunk/ruby/src/asunit.rb
trunk/ruby/src/asunit_arguments.rb
trunk/ruby/src/create_class.rb
trunk/ruby/src/template_resolver.rb
trunk/ruby/src/templates/Class.erb
Modified: trunk/ruby/src/asunit.rb
===================================================================
--- trunk/ruby/src/asunit.rb 2006-09-06 07:30:16 UTC (rev 86)
+++ trunk/ruby/src/asunit.rb 2006-09-06 08:11:07 UTC (rev 87)
@@ -62,18 +62,18 @@
arguments.classnames.each { |name|
if(name.ends_with? "Test")
begin
- create_class(name, settings, TEST_TEMPLATE, arguments.force?)
+ create_class(name, settings, TEST_TEMPLATE, arguments)
rescue Exception => e
results.push(e)
end
else
begin
- create_class(name, settings, AsUnit::CLASS_TEMPLATE, arguments.force?)
+ create_class(name, settings, AsUnit::CLASS_TEMPLATE, arguments)
rescue Exception => e
results.push(e)
end
begin
- create_class(name + "Test", settings, AsUnit::TEST_TEMPLATE, arguments.force?)
+ create_class(name + "Test", settings, AsUnit::TEST_TEMPLATE, arguments)
rescue Exception => e
results.push(e)
end
@@ -84,10 +84,10 @@
end
end
- def create_class(name, settings, template, force)
+ def create_class(name, settings, template, arguments)
begin
class_creator = AsUnit::CreateClass.new(name, settings, template)
- class_creator.run(force)
+ class_creator.run(arguments)
puts 'File Created at: ' + class_creator.final_path
return nil
rescue Exception => e
Modified: trunk/ruby/src/asunit_arguments.rb
===================================================================
--- trunk/ruby/src/asunit_arguments.rb 2006-09-06 07:30:16 UTC (rev 86)
+++ trunk/ruby/src/asunit_arguments.rb 2006-09-06 08:11:07 UTC (rev 87)
@@ -16,7 +16,7 @@
opts = OptionParser.new do |opts|
opts.banner = "Usage: #$0 [options] CLASSNAME(s)"
- opts.on('-d', '--display-object', 'class created is a subclass of flash.display.DisplayObject') do
+ opts.on('-d', '--display-object', 'class is a visual entity') do
self[:display_object] = true
end
@@ -24,13 +24,6 @@
self[:force] = true
end
- opts.on('-p', '--project-file [FILE]', 'use this project file instead of looking for the nearest one [FILE]') do |file|
- if(file.nil?)
- raise '-p [--project-file] argument must be followed by a relative or absolute file target"'
- end
- self[:project_file] = (file || '$')
- end
-
opts.on('-i', '--add-interface [STRING]', 'add an interface to this class [STRING]') do |inf|
if(inf.nil?)
raise '-i [--add-interface] argument must be followed by a fully-qualified interface name eg: "flash.events.IEventDispatcher"'
@@ -38,6 +31,13 @@
self[:interfaces].push(inf || '$')
end
+ opts.on('-p', '--project-file [FILE]', 'use provided project file [FILE]') do |file|
+ if(file.nil?)
+ raise '-p [--project-file] argument must be followed by a relative or absolute file target"'
+ end
+ self[:project_file] = (file || '$')
+ end
+
opts.on('-s', '--superclass [STRING]', 'superclass of class being created [STRING]') do |superclass|
if(superclass.nil?)
raise '-s [--superclass] argument must be followed by a fully-qualified class name eg: "flash.display.DisplayObject"'
@@ -77,6 +77,10 @@
return self[:classnames]
end
+ def display_object?
+ return self[:display_object]
+ end
+
def force?
return self[:force]
end
Modified: trunk/ruby/src/create_class.rb
===================================================================
--- trunk/ruby/src/create_class.rb 2006-09-06 07:30:16 UTC (rev 86)
+++ trunk/ruby/src/create_class.rb 2006-09-06 08:11:07 UTC (rev 87)
@@ -4,7 +4,7 @@
module AsUnit
class CreateClass
attr_accessor :settings, :template_name
- attr_reader :final_path
+ attr_reader :final_path, :resolver
def initialize(name, settings, template)
@settings = settings
@@ -13,12 +13,17 @@
@final_path = ''
end
- def run(force=false)
+ def run(args)
+ @resolver.superclass = args.superclass
+ @resolver.visual = args.display_object?
+ args.interfaces.each {|inf|
+ @resolver.add_interface(inf)
+ }
src = Dir.pwd + File::SEPARATOR + settings.templates + File::SEPARATOR + template_name
template = IO.read(src)
@resolver.template = template
parsed = @resolver.parse
- file = create_file(target_file(settings.src), force)
+ file = create_file(target_file(settings.src), args.force?)
file.write(parsed)
end
Modified: trunk/ruby/src/template_resolver.rb
===================================================================
--- trunk/ruby/src/template_resolver.rb 2006-09-06 07:30:16 UTC (rev 86)
+++ trunk/ruby/src/template_resolver.rb 2006-09-06 08:11:07 UTC (rev 87)
@@ -4,7 +4,7 @@
module AsUnit
class TemplateResolver
- attr_reader :template, :fullclass, :classname, :interfaces, :test_cases
+ attr_reader :template, :fullclass, :interfaces, :test_cases
attr_accessor :superclass, :visual
def initialize(fullclass)
@@ -28,16 +28,20 @@
return ERB.new(@template).result(binding)
end
- def package
- if(@package.nil?)
+ def classname(fullname=@classname)
+ return fullname.split('.').pop
+ end
+
+ def package(pkg=@package)
+ if(pkg.nil?)
segments = fullclass.split('.')
segments.pop
- @package = segments.join('.')
+ pkg = segments.join('.')
if(segments.length > 0)
- @package += ' '
+ pkg += ' '
end
end
- return @package
+ return pkg
end
def path
@@ -65,5 +69,42 @@
def visual?
return @visual.nil?
end
+
+ def superclass_decl
+ if(superclass?)
+ return ' extends ' + superclass.split('.').pop
+ else
+ return ''
+ end
+ end
+
+ def import_statements
+ imports = Array.new
+ if(superclass?)
+ imports.push(import_statement(superclass))
+ end
+ if(interfaces?)
+ interfaces.each {|inf|
+ imports.push(import_statement(inf))
+ }
+ end
+ imports.sort!
+ return imports.join("\n")
+ end
+
+ def import_statement(target)
+ return "\timport " + target + ";"
+ end
+
+ def interfaces_decl
+ if(!interfaces?)
+ return ''
+ end
+ infs = Array.new
+ interfaces.each {|inf|
+ infs.push(classname(inf))
+ }
+ return " implements " + infs.join(", ")
+ end
end
end
Modified: trunk/ruby/src/templates/Class.erb
===================================================================
--- trunk/ruby/src/templates/Class.erb 2006-09-06 07:30:16 UTC (rev 86)
+++ trunk/ruby/src/templates/Class.erb 2006-09-06 08:11:07 UTC (rev 87)
@@ -1,8 +1,10 @@
+
package <%= package %>{
- <% if(superclass?) %>import superclass <% end %>
+
+<%= import_statements %>
+
+ public class <%= classname %><%= superclass_decl %><%= interfaces_decl %> {
- public class <%= classname %><% if(superclass?) %> extends <%= superclass %><% end %> {
-
public function <%= classname %>() {
super();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|