class Entityjs::Comp

Public Class Methods

generate(name) click to toggle source
# File lib/entityjs/commands/comp.rb, line 5
    def self.generate(name)
      if !Dirc.game?
        return 2
      end

      if name.nil?
        return 4
      end
      
      if name.is_a? Array
        name = name.first
      end
      
      #remove extra slash
      if name[0] == '/'
        name = name[1..-1]
      end
      
      filename = name
      
      if name.index('.').nil?
        filename += '.js'
      end
      
      dir = Config.scripts_folder
      
      Dirc.create_dir(dir, true)
      
      #create folder if they don't exist
      folders = filename.split('/')
      filename = folders.pop
      
      if folders.size > 0
        folders.each do |i|
          Dirc.create_dir(i, true)
        end
        
      end
      
      if File.exists?(filename)
        return 3
      end
      
      comp_name = filename.split('.').shift
      
      File.open(filename, 'w') do |f|
        
        f.write(%Q(re.c\('#{comp_name}'\)
.requires\(''\)
.defines\({
  
}\)
.init\(function\(\){
  
}\)
.dispose\(function\(\){
  
}\);
))
        
        f.close
      end
      
      puts "Created comp: #{filename}"
      
      Dir.chdir(Dirc.game_root)
      
      Entityjs::Command.run('test', [name])
      
      return 0
    end