#encoding: UTF-8 Encoding.default_external = Encoding.find('UTF-8') =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 'colorize' require 'io/console' require 'CapicuaGen/capicua_gen' require 'CapicuaGenMelchior/melchior' require 'CapicuaGenGaspar/gaspar' require 'CapicuaGenBalthazar/balthazar' ENABLE_CODE_MAID_FEATURE = false OUT_DIR ="." puts %q{ Este es un ejemplo de 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. Este es un ejemplo generado automáticamente para comprender el uso de CapicuaGen, incluye el uso de generadores de los siguientes tipos: CapicuaGenEssential agrega referencia a los generadores de características * Melchior: Analizador de script SQL. * Gaspar: Generador de código en C# * Balthazar: Generador de código en Android ¿Quieres ver el código para generar tus propiedas características? Revisa los siguientes repositorios: }.colorize(:blue) puts 'CapicuaGen -> https://github.com/jbautistamartin/CapicuaGen'.colorize(:yellow) << $/ puts 'CapicuaGenMelchior -> https://github.com/jbautistamartin/CapicuaGenMelchior'.colorize(:yellow) << $/ puts 'CapicuaGenGaspar -> https://github.com/jbautistamartin/CapicuaGenGaspar'.colorize(:yellow) << $/ puts 'CapicuaGenBalthazar -> https://github.com/jbautistamartin/CapicuaGenBalthazar'.colorize(:yellow)<< $/ puts puts %q{ Se incluye deshabilitada la característica de formatear apropiadamente código fuente C#, la característica es 'CodeMaidCleanerFeature', que aunque muy interesante, es MUY lenta. Puede activarse esta característica cambiando el código de este archivo: }.colorize(:blue) puts "ENABLE_CODE_MAID_FEATURE = true".colorize(:yellow) puts puts %q{ Pulse enter para continuar. }.colorize(:green) STDIN.gets.chomp puts "Comenzando generación...".colorize(:yellow) puts # # Configuraciones generales # script_directory = File.join(File.dirname(__FILE__), 'scripts') script_northwind = File.join(script_directory, 'instnwnd.sql') # # Generación de las características comunes # feature_entity = CapicuaGen::Melchior::EntitySqlDataAccessFeature.new(:name => 'feature_entity') do |f| f.add_sql_file script_northwind end feature_data_access = CapicuaGen::Gaspar::CSSqlDataAccessFeature.new(:name => 'feature_data_access') feature_connection_provider = CapicuaGen::Gaspar::CSDBConnectionProviderFeature.new(:name => 'feature_connection_provider') feature_business_interface = CapicuaGen::Gaspar::CSSqlEntityInterfaceFeature.new(:name => 'feature_business_interface') feature_header = CapicuaGen::Gaspar::CSHeaderFooterFeature.new(:name => 'feature_header', :include_regex => [/\.(cs|java)$/i]) feature_cleaner = CapicuaGen::Gaspar::CodeMaidCleanerFeature.new(:name => 'feature_cleaner') # # Creacion de los generadores # generator_windows = CapicuaGen::Generator.new do |g| # Creo las características necesarias feature_proyect = CapicuaGen::Gaspar::CSProyectWindowsFormFeature.new(:name => 'proyect') feature_business_entity = CapicuaGen::Gaspar::CSSqlEntityFeature.new(:name => 'feature_business_entity') feature_main_form = CapicuaGen::Gaspar::CSMDIWindowsFormFeature.new(:name => 'feature_main_form') feature_splash_form = CapicuaGen::Gaspar::CSSplashWindowsFeature.new(:name => 'feature_splash_form') feature_about_form = CapicuaGen::Gaspar::CSAboutWindowsFormFeature.new(:name => 'feature_about_form') feature_catalog_form = CapicuaGen::Gaspar::CSCatalogWindowsFormFeature.new(:name => 'feature_catalog_form') # Agrego las característica al generador g.add_feature_and_target feature_entity, feature_data_access, feature_main_form, feature_splash_form, feature_about_form, feature_catalog_form, feature_business_interface, feature_business_entity, feature_proyect, feature_connection_provider, feature_header # Agrego la parte el limpieador de código g.add_feature_and_target feature_cleaner if ENABLE_CODE_MAID_FEATURE g.generation_attributes.add :out_dir => OUT_DIR, :namespace => "Capicua.NorthWindWindowsExample", :assembly_title => 'Título del ejemplo', :assembly_description => 'Descripción del ejemplo', :assembly_company => 'Compañia del ejemplo', :assembly_product => 'Producto del ejemplo', :assembly_copyright => 'Copyright del ejemplo', :assembly_trademark => 'Trademark del ejemplo', :assembly_culture => 'null', :assembly_version => '1.0.0.0', :assembly_file_version => '1.0.0.0', :app_config_db_connection_name => 'NorthwindConnectionString', :app_config_db_connection_string => 'Data Source= localhost\sqlexpress;Initial Catalog= Northwind;Integrated Security= True', :app_config_db_connection_provider => 'System.Data.SqlClient' end # Creo el generador generator_web = CapicuaGen::Generator.new do |g| # Creo las características necesarias feature_proyect_web = CapicuaGen::Gaspar::CSProyectRESTFulFeature.new(:name => 'proyect_web') feature_business_entity = CapicuaGen::Gaspar::CSSqlEntityFeature.new(:name => 'feature_business_entity', :class_accessor => "public") feature_catalog_service = CapicuaGen::Gaspar::CSRESTFULCatalogFeature.new(:name => 'feature_catalog_service') # Agrego las característica al generador g.add_feature_and_target feature_entity, feature_data_access, feature_business_interface, feature_proyect_web, feature_catalog_service, feature_business_entity, feature_connection_provider, feature_header # Agrego la parte el limpieador de código g.add_feature_and_target feature_cleaner if ENABLE_CODE_MAID_FEATURE #Configuro los atributos del generador g.generation_attributes.add :out_dir => OUT_DIR, :namespace => "Capicua.NorthWindServiceExample", :assembly_title => 'Título del ejemplo', :assembly_description => 'Descripción del ejemplo', :assembly_company => 'Compañia del ejemplo', :assembly_product => 'Producto del ejemplo', :assembly_copyright => 'Copyright del ejemplo', :assembly_trademark => 'Trademark del ejemplo', :assembly_culture => 'null', :assembly_version => '1.0.0.0', :assembly_file_version => '1.0.0.0', :app_config_db_connection_name => 'NorthwindConnectionString', :app_config_db_connection_string => 'Data Source= localhost\sqlexpress;Initial Catalog= Northwind;Integrated Security= True', :app_config_db_connection_provider => 'System.Data.SqlClient', :local_url => "http://localhost/EjemploRESTFul" end # Creo el generador para android generator_android = CapicuaGen::Generator.new do |g| # Generación de caractertisticas feature_beans_entity = CapicuaGen::Balthazar::AndySqlEntityFeature.new(:name => 'feature_beans_entity') feature_json = CapicuaGen::Balthazar::AndyWebRequestFeature.new(:name => 'feature_json') feature_fragment = CapicuaGen::Balthazar::AndyEntityCardViewFragmentFeature.new(:name => 'feature_fragment') feature_splash = CapicuaGen::Balthazar::AndySplashActivityFeature.new(:name => 'feature_splash') feature_main = CapicuaGen::Balthazar::AndyMainActivityFeature.new(:name => 'feature_main') feature_android_context = CapicuaGen::Balthazar::AndyContextProvider.new(:name => 'feature_android_context') feature_ic_launcher = CapicuaGen::Balthazar::AndyIcLauncherFeature.new(:name => 'feature_ic_launcher') # Agrego las característica al generador g.add_feature_and_target feature_entity, feature_beans_entity, feature_json, feature_fragment, feature_splash, feature_main, feature_header, feature_android_context, feature_ic_launcher g.generation_attributes.add :out_dir => File.join(OUT_DIR, "NorthWindAndroidExample/app/src/main"), :package => "com.capicua.northWindAndroidExample", :web_timeout => 60000, # 10.0.0.2 hace referencia a el host que esta corriendo el depurador de Android :remote_url => 'http://10.0.2.2/EjemploRESTFul/Services/Catalogs.svc', :app_title => 'Título del ejemplo', :app_description => 'Descripción del ejemplo', :app_copyright => 'Copyright del ejemplo', :app_version => '1.0.0.0' # Puedes comentar esta linea y configurar una IP en particular # g.generation_attributes[:remote_url]= 'http://192.168.1.15/EjemploRESTFul/Services/Catalogs.svc' end # # Ejecuto los generadores # generator_windows.generate generator_web.generate generator_android.generate