=begin CapicuaGen CapicuaGen es un software que ayuda a la creación automática de sistemas empresariales a través de la definición y ensamblado de diversos generadores de características. El proyecto fue iniciado por José Luis Bautista Martín, el 6 de enero de 2016. Puede modificar y distribuir este software, según le plazca, y usarlo para cualquier fin ya sea comercial, personal, educativo, o de cualquier índole, siempre y cuando incluya este mensaje, y se permita acceso al código fuente. Este software es código libre, y se licencia bajo LGPL. Para más información consultar http://www.gnu.org/licenses/lgpl.html =end require 'active_support/core_ext/object/blank' require 'uuidtools' require_relative '../../../Mixins/main_form_mixin' require_relative '../../../Mixins/splash_mixin' require_relative '../../../Proyect/CSProyect/Source/cs_proyect_feature' require_relative '../../../gaspar' module CapicuaGen::Gaspar # Característica generador de proyectos de Windows Form. class CSProyectWindowsFormFeature < CapicuaGen::Gaspar::CSProyectFeature include CapicuaGen include CapicuaGen::Gaspar public # Inicializa la característica def initialize(values= {}) super(values) # Configuro los tipos si estos no han sido configurados previamente self.types= [:proyect, :soluction, :app_config] if self.types.blank? # Configuro los templates set_template('soluction', Template.new(:file => 'Soluction.erb')) set_template('proyect', Template.new(:file => 'Proyect.erb')) set_template('app.config', Template.new(:file => 'App.erb')) set_template('assemblyInfo', Template.new(:file => 'AssemblyInfo.erb')) set_template('program', Template.new(:file => 'Program.erb')) set_template('excepcion_controlada', Template.new(:file => 'ExcepcionControlada.erb')) set_template('control_excepciones', Template.new(:file => 'ControlExcepciones.erb')) # Configuro los Guid de la solucion self.generation_attributes[:soluction_guid]= UUIDTools::UUID.random_create.to_s.upcase self.generation_attributes[:project_guid] = UUIDTools::UUID.random_create.to_s.upcase end # Configura los objetivos de las platillas (despues de establecer el generador) def configure_template_targets # Configuro los templates set_template_target('soluction', TemplateTarget.new(:out_file => "../#{@generator.generation_attributes[:namespace]}.sln", :types => :soluction)) set_template_target('proyect', TemplateTarget.new(:out_file => "#{@generator.generation_attributes[:namespace]}.csproj", :types => :proyect)) set_template_target('app.config', TemplateTarget.new(:out_file => "App.Config", :types => :proyect_file)) set_template_target('assemblyInfo', TemplateTarget.new(:out_file => 'Properties/AssemblyInfo.cs', :types => :proyect_file)) set_template_target('program', TemplateTarget.new(:out_file => "Program.cs", :types => :proyect_file)) set_template_target('excepcion_controlada', TemplateTarget.new(:out_file => "ExcepcionControlada.cs", :types => :proyect_file)) set_template_target('control_excepciones', TemplateTarget.new(:out_file => "ControlExcepciones.cs", :types => :proyect_file)) end # Devuelve la localizacion del archivo app.config def get_app_config_file return File.join(generation_attributes[:out_dir], get_template_target_by_name('app.config').out_file) end end end