class AppCommand::GenerateApi
Public Instance Methods
execute()
click to toggle source
# File lib/routes/generate/generate_api.rb, line 5 def execute begin @opts = command_options @args = arguments @generate_java = false opts_validate opts_routing Blufin::Terminal::custom(Blufin::SiteResolver::get_site_title(@site), 89, 'All files generated successfully.') rescue => e Blufin::Terminal::print_exception(e) end end
opts_routing()
click to toggle source
# File lib/routes/generate/generate_api.rb, line 75 def opts_routing cache_data_hashes @threads = [] # Write the Java POMs. @threads << Thread.new { yml_java_pom_writer = Blufin::YmlJavaPomWriter.new(@yml_maven.data_blufin, @yml_maven.data_app, @site) yml_java_pom_writer.write_poms_blufin yml_java_pom_writer.write_poms_app Blufin::Terminal::output('Java POMs...', Blufin::Terminal::MSG_PROCESSED) } # Write the Java Embedded Objects. @threads << Thread.new { yml_java_embedded_object_writer = Blufin::YmlJavaEmbeddedObjectWriter.new(@site, @yml_schema.get_schema_resources) yml_java_embedded_object_writer.write Blufin::Terminal::output('Embedded Objects...', Blufin::Terminal::MSG_PROCESSED) } # Write the Java (API) Resource Data. @threads << Thread.new { yml_java_resource_data_writer = Blufin::YmlJavaResourceDataWriter.new(@site, @yml_schema.get_schema_resources.dup) yml_java_resource_data_writer.write Blufin::Terminal::output('API Resource Data...', Blufin::Terminal::MSG_PROCESSED) } # Write the Java DTOs. @threads << Thread.new { yml_java_dto_writer = Blufin::YmlJavaDtoWriter.new(@site, @yml_schema.get_schema_data.dup, @yml_schema.get_schema_resources.dup) yml_java_dto_writer.write Blufin::Terminal::output('DTOs...', Blufin::Terminal::MSG_PROCESSED) } # Write the Java ENUMs. @threads << Thread.new { yml_java_enum_writer = Blufin::YmlJavaEnumWriter.new(@site, @yml_schema.get_schema_data.dup) yml_java_enum_writer.write Blufin::Terminal::output('Enums...', Blufin::Terminal::MSG_PROCESSED) } # Write the Java MetaData Classes. @threads << Thread.new { yml_java_meta_writer = Blufin::YmlJavaMetaWriter.new(@site, @yml_schema.get_schema_data.dup, @yml_schema.get_schema_resources.dup) yml_java_meta_writer.write Blufin::Terminal::output('MetaData classes...', Blufin::Terminal::MSG_PROCESSED) } # Write the Java DAOs. @threads << Thread.new { yml_java_dao_writer = Blufin::YmlJavaDaoWriter.new(@site, @yml_schema.get_schema_data.dup, @yml_schema.get_schema_resources.dup, @yml_schema.get_schema_fks) yml_java_dao_writer.write Blufin::Terminal::output('DAOs...', Blufin::Terminal::MSG_PROCESSED) } # Write the Java Model Classes. @threads << Thread.new { yml_java_model_writer = Blufin::YmlJavaModelWriter.new(@site, @yml_schema.get_schema_data.dup, @yml_schema.get_schema_resources.dup) yml_java_model_writer.write Blufin::Terminal::output('Models...', Blufin::Terminal::MSG_PROCESSED) } # Write the Java Validators. @threads << Thread.new { yml_java_validator_writer = Blufin::YmlJavaValidatorWriter.new(@site, @yml_schema.get_schema_data.dup, @yml_schema.get_schema_resources.dup) yml_java_validator_writer.write Blufin::Terminal::output('Validators...', Blufin::Terminal::MSG_PROCESSED) } # Write the Java MessageTypes (for Queue messages). @threads << Thread.new { yml_java_message_type_writer = Blufin::YmlJavaMessageTypeWriter.new(@site) yml_java_message_type_writer.write Blufin::Terminal::output('Message Queue classes...', Blufin::Terminal::MSG_PROCESSED) } # Write the Java CronTypes (for Cron Service). @threads << Thread.new { yml_java_cron_type_writer = Blufin::YmlJavaCronTypeWriter.new(@site) yml_java_cron_type_writer.write Blufin::Terminal::output('CronTypes...', Blufin::Terminal::MSG_PROCESSED) } # Write the Java API Resources. @threads << Thread.new { yml_java_api_resource_writer = Blufin::YmlJavaApiResourceWriter.new(@site, @yml_schema.get_schema_resources.dup) yml_java_api_resource_writer.write Blufin::Terminal::output('API Resources...', Blufin::Terminal::MSG_PROCESSED) } # Write the Java SDK Package. @threads << Thread.new { yml_sql_java_sdk_writer = Blufin::YmlJavaSdkWriter.new(@site, @yml_schema.get_schema_data.dup, @yml_schema.get_schema_resources.dup) yml_sql_java_sdk_writer.write Blufin::Terminal::output('SDK Package...', Blufin::Terminal::MSG_PROCESSED) } # Write the Java Worker Resources. @threads << Thread.new { yml_java_worker_writer = Blufin::YmlJavaWorkerWriter.new(@site) yml_java_worker_writer.write Blufin::Terminal::output('Worker Resources...', Blufin::Terminal::MSG_PROCESSED) } # TODO - Check that PATH_TO_RUBY exists (for the following 2)... Might be able to get rid of this if we manage to kill the config database. # Write the SQL Structure. @threads << Thread.new { yml_sql_structure_writer = Blufin::YmlSqlStructureWriter.new(@site, @yml_schema.get_schema_data.dup) yml_sql_structure_writer.write Blufin::Terminal::output('SQL Structure...', Blufin::Terminal::MSG_PROCESSED) } # Write the SQL Templates. @threads << Thread.new { yml_sql_template_writer = Blufin::YmlSqlTemplateWriter.new(@site, @yml_schema.get_schema_data.dup) yml_sql_template_writer.write Blufin::Terminal::output('SQL Templates...', Blufin::Terminal::MSG_PROCESSED) } # # Write Vue Service files. # yml_vue_service_writer = Blufin::YmlVueServiceWriter.new(@site, @yml_schema.get_schema_resources.dup) # yml_vue_service_writer.write # Blufin::Terminal::output('VueJs Services...', Blufin::Terminal::MSG_PROCESSED) @threads.each { |thread| thread.join } end
opts_validate()
click to toggle source
# File lib/routes/generate/generate_api.rb, line 27 def opts_validate @site = @args[0] ? Blufin::SiteResolver::validate_site(@args[0]) : Blufin::Site::DEFAULT_SITE # TODO - Re-enable Yes/no Prompt. # exit unless Blufin::Terminal::prompt_yes_no("Generate boiler-plate code for \xe2\x86\x92 #{Blufin::Terminal::format_action(Blufin::SiteResolver::get_site_title(@site))}", 'Continuing will overwrite all auto-generated code.', 'Continue?') @error_handler = Blufin::YmlErrorHandler.new(@site) # Must go first because it contains the most important configuration data. Blufin::SiteEmbedded::init(Blufin::ScannerJavaEmbeddedObjects::new(@site, @error_handler).get_data) config_file = "#{Blufin::SiteResolver::get_site_location(@site)}/#{Blufin::Site::PATH_TO_YML_CONFIG}/config.yml" Blufin::Terminal::error("Config file doesn't exist", config_file, true) unless Blufin::Files::file_exists(config_file) @yml_config = Blufin::YmlConfigValidator.new(@site, @error_handler) @yml_maven = Blufin::YmlMavenValidator.new(@site, @error_handler) # If there are YML at this point, display them & return. @error_handler.display_errors_if_any(true) Blufin::SiteAuth::init(@yml_config.config_data[Blufin::YmlConfigValidator::GLOBAL][Blufin::YmlConfigValidator::GLOBAL_AUTHENTICATION]) @java_scanner_source = Blufin::ScannerJavaSource::new(@site, @error_handler) @java_scanner_tests = Blufin::ScannerJavaTests::new(@site, @error_handler) @yml_schema = Blufin::YmlSchemaValidator.new(@site, @error_handler) @yml_resources = Blufin::YmlResourceValidator.new(@site, @error_handler) # If there are YML errors, display them & return. @error_handler.display_errors_if_any(true) if @yml_schema.get_errors_array.any? # Schema Errors are handled the "legacy" way. @yml_schema.get_errors_array.each do |hash| hash.each do |title, array| Blufin::Terminal::error(title, array, false) end end exit end end
Private Instance Methods
cache_data_hashes()
click to toggle source
Caches data-maps in the /tmp directory so other scripts can use it. @return void
# File lib/routes/generate/generate_api.rb, line 209 def cache_data_hashes Blufin::YmlCacheHandler.store(@site, Blufin::YmlCacheHandler::CONFIG, @yml_config.config_data) Blufin::YmlCacheHandler.store(@site, Blufin::YmlCacheHandler::SCHEMA_CONFIG, @yml_schema.get_schema_config) Blufin::YmlCacheHandler.store(@site, Blufin::YmlCacheHandler::SCHEMA_DATA, @yml_schema.get_schema_data) Blufin::YmlCacheHandler.store(@site, Blufin::YmlCacheHandler::SCHEMA_DESCRIPTIONS, @yml_schema.get_schema_descriptions) Blufin::YmlCacheHandler.store(@site, Blufin::YmlCacheHandler::SCHEMA_FKS, @yml_schema.get_schema_fks) Blufin::YmlCacheHandler.store(@site, Blufin::YmlCacheHandler::SCHEMA_FKS_DEPENDENCIES, @yml_schema.get_schema_fks_dependencies) Blufin::YmlCacheHandler.store(@site, Blufin::YmlCacheHandler::SCHEMA_FKS_PLACEHOLDERS, @yml_schema.get_schema_fks_placeholders) Blufin::YmlCacheHandler.store(@site, Blufin::YmlCacheHandler::SCHEMA_FKS_LINKS, @yml_schema.get_schema_fks_links) Blufin::YmlCacheHandler.store(@site, Blufin::YmlCacheHandler::SCHEMA_RESOURCES, @yml_schema.get_schema_resources) end