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.