Skip to content

Commit

Permalink
Updated Service generator to extend FlashSDK::ClassGenerator and take…
Browse files Browse the repository at this point in the history
… advantage of FlashHelper methods
  • Loading branch information
kristoferjoseph committed Nov 29, 2010
1 parent d9b688b commit acc4455
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 73 deletions.
52 changes: 3 additions & 49 deletions lib/robotlegs/generators/project_generator.rb
Expand Up @@ -11,7 +11,6 @@ class ProjectGenerator < FlashSDK::ProjectGenerator
##
# Send flag shallow to prevent subdirectories vo, dto from being created
add_param :shallow, Boolean
add_param :package, String, { :default => ""}
add_param :proxy, String, { :default => "proxy" }
add_param :vo, String, { :default => "vo" }
add_param :view, String, { :default => "view" }
Expand Down Expand Up @@ -67,57 +66,12 @@ def manifest

protected

def project_name
return input.camel_case
end

def package_directory
split_parts package
end

def class_directory
parts = input_in_parts
if parts.size > 1
parts.pop
return File.join src, *parts
end
return src
end

def package_name
parts = split_parts package
return "#{parts.join('.')}"
end

def class_name
parts = input_in_parts
parts.pop.camel_case
end

def context_package
if package_name != ""
return package_name + ".*"
if default_package_name != ""
return default_package_name + ".*"
end
"*"
end

def input_in_parts
split_parts input
end

def split_parts(value)
provided_input = value
if provided_input.include?('/')
provided_input.gsub! /^#{src}\//, ''
provided_input = provided_input.split('/').join('.')
end

provided_input.gsub!(/\.as$/, '')
provided_input.gsub!(/\.mxml$/, '')
provided_input.gsub!(/\.xml$/, '')

provided_input.split('.')
end


end
end
28 changes: 14 additions & 14 deletions lib/robotlegs/generators/service_generator.rb
@@ -1,24 +1,24 @@
module Robotlegs
class ServiceGenerator < RobotlegsClassGeneratorBase

##
# This is how you add a parameter to your generator
# add_param :fwee, String, { :default => "fwee" }
add_param :package, String, { :default => "com.foo" }
class ServiceGenerator < FlashSDK::ClassGenerator

def manifest
directory input.snake_case do
template "#{input.camel_case}Service.as", "RobotlegsService.as"
if(!input.match(/Test$/))
directory service_directory do
template "#{class_name}Service.as", 'RobotlegsService.as'
end
end

unless no_test
generator :test_class, :input => "#{fully_qualified_class_name}Test"
end
end

def package_name
package
def service_directory
package_directory << 'service'
end

def class_name
""
def service_package
default_package_name << '.service'
end

end
Expand Down
2 changes: 1 addition & 1 deletion lib/robotlegs/generators/templates/RobotlegsService.as
@@ -1,4 +1,4 @@
package <%= package_name %>
package <%= service_package %>
{
import org.robotlegs.mvcs.Actor;

Expand Down
20 changes: 11 additions & 9 deletions test/unit/service_generator_test.rb
Expand Up @@ -20,16 +20,18 @@ class ServiceGeneratorTest < Test::Unit::TestCase
end

should "generate a new Service" do
@generator.input = "Service"
@generator.input = "Noodle"
@generator.package = "com.foo.bar"
@generator.execute
#
# input_dir = File.join(@temp, "service")
# assert_directory input_dir
#
# input_file = File.join(input_dir, "RobotlegsService.as")
# assert_file input_file do |content|
# assert_matches /Your content to assert here/, content
# end

input_dir = File.join(@temp, "com", "foo", "bar", "service")
assert_directory input_dir

input_file = File.join(input_dir, "NoodleService.as")
assert_file input_file do |content|
assert_match /com.foo.bar.service/, content
assert_match /Noodle/, content
end

end

Expand Down

0 comments on commit acc4455

Please sign in to comment.