Sha256: 01c8847ed807a02e1d2a8613d38f8dbf1bd12dfa83376ddd8c744f47c93b99c5

Contents?: true

Size: 1.72 KB

Versions: 1

Compression:

Stored size: 1.72 KB

Contents

require "#{File.dirname(__FILE__)}/../../lib/coherent"
require "yaml"

class ClassGenerator < CoherentBaseGenerator

  default_options :author => nil

  attr_reader :name, :full_name, :namespace

  def initialize(runtime_args, runtime_options = {})
    super
    usage if args.empty?
    full_name= args.shift
    parts= full_name.split(".")
    
    
    @name= parts[-1]
    @full_name= full_name
    @namespace= parts[0..-2].join(".")
    
    if @namespace.empty?
      @target_folder = "src/js"
      project = YAML::load_file(PROJECT_FILE)
      if project["export"].is_a?(String)
        @namespace = project["export"]
        @full_name= [@namespace, @name].join(".")
      end
    else
      @target_folder = "src/js/#{namespace.gsub(".", "/")}"
    end
    
    extract_options
  end

  def manifest
    record do |m|

      copy_template_folder m, @target_folder
      
    end
  end

  protected
    def banner
      <<-EOS
Creates a ...

USAGE: #{$0} #{spec.name} name
EOS
    end

    def add_options!(opts)
      # opts.separator ''
      # opts.separator 'Options:'
      # For each option below, place the default
      # at the top of the file next to "default_options"
      # opts.on("-a", "--author=\"Your Name\"", String,
      #         "Some comment about this option",
      #         "Default: none") { |o| options[:author] = o }
      # opts.on("-v", "--version", "Show the #{File.basename($0)} version number and quit.")
    end

    def extract_options
      # for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
      # Templates can access these value via the attr_reader-generated methods, but not the
      # raw instance variable value.
      # @author = options[:author]
    end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
coherent-0.6.11 generators/class/class_generator.rb