lib/CapicuaGen/template_feature.rb in CapicuaGen-0.0.3 vs lib/CapicuaGen/template_feature.rb in CapicuaGen-0.1.0

- old
+ new

@@ -145,16 +145,17 @@ end def configure_template_directories # Configuro las rutas de los templates - self.template_directories << get_template_local_dir(get_class_file) + template_local_dir = get_template_local_dir(get_class_file) + self.template_directories << template_local_dir if template_local_dir self.template_directories << File.join(File.dirname(get_class_file), '../template') end - # Configura los objetivos de las platillas (despues de establecer el generador) + # Configura los objetivos de las platillas (despues de establecer el generador) def configure_template_targets end # Genero el codigo, usando todas las plantillas configuradas @@ -214,22 +215,28 @@ if template_target.copy_only exists= File.exist?(out_file) - FileUtils.cp template_file, out_file + # Creo el directorio + FileUtils::mkdir_p File.dirname(out_file) if exists - message_helper.puts_created_template(File.basename(out_file), out_file, :override) + if @generator.argv_options.force + FileUtils.cp template_file, out_file + message_helper.puts_created_template(File.basename(out_file), out_file, :override) + else + message_helper.puts_created_template(File.basename(out_file), out_file, :ignore) + end else + FileUtils.cp template_file, out_file message_helper.puts_created_template(File.basename(out_file), out_file, :new) end - else # Creo la salida - return TemplateHelper.generate_template(template_file, current_binding, :out_file => out_file, :feature => self, :force => argv_options.force) + return TemplateHelper.generate_template(template_file, current_binding, :out_file => out_file, :feature => self, :force => @generator.argv_options.force) end end @@ -287,13 +294,22 @@ protected # Directorio local para obtener los templates def get_template_local_dir(file) - feacture_directory= File.dirname(file).split('/') - feacture_name = feacture_directory[feacture_directory.count-2] - package_name = feacture_directory[feacture_directory.count-3] - return File.join(@generator.local_feature_directory, package_name, feacture_name, 'Template') + begin + feacture_directory= File.dirname(file).split('/') + feacture_name = feacture_directory[feacture_directory.count-2] + package_name = feacture_directory[feacture_directory.count-3] + gem_name = feacture_directory[feacture_directory.count-4] + template_local = File.join(@generator.local_templates, gem_name, package_name, feacture_name) + + return template_local + + rescue + #Seguramente no sigue la estructura indicada para templates + return nil + end end # For instances of class A only, we use the __FILE__ keyword. # This method is overwritten by the #get_file method defined above.