Sha256: 1dcd35b2f6641dad9765c40ff7b84a5033b1d558b039f783415be2112bc49a39

Contents?: true

Size: 1.15 KB

Versions: 2

Compression:

Stored size: 1.15 KB

Contents

module Gator
  module AS3
    class ClassGenerator < Task
      include Gator::Project

      define :command => "klass",
             :usage => "generate as3 klass CLASS_NAME", :description => "Creates AS3 class."

      argument :classname

      class_option :test, :default => false

      def self.source_root
        File.dirname __FILE__
      end

      def generate
        src = project.path(:source, :main, :as3)
        @package_name, @class_name = split_class_name(classname)
        src = File.join(src, @package_name.split(".").join(File::SEPARATOR)) unless @package_name == ""
        template "klass.as.tt", File.join(src, "#{@class_name}.as")
      end

      def generate_test
        return unless options[:test]
        invoke parent.get_subcommand("test", "klass")
      end

      no_tasks {

        def package_name
          @package_name
        end

        def class_name
          @class_name
        end

      }

      protected

      def split_class_name(class_name)
        pieces = class_name.split "."
        class_name = pieces.pop
        package_name = pieces.join "."
        return package_name, class_name
      end

    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
gator-as3-0.0.5.pre lib/gator/as3/generators/klass.rb
gator-as3-0.0.2.pre lib/gator/as3/klass.rb