Class: Blufin::YmlWriterBase
- Inherits:
-
Object
- Object
- Blufin::YmlWriterBase
- Defined in:
- lib/core/yml_writers/yml_writer_base.rb
Direct Known Subclasses
ScannerJavaTests, YmlConfigurationWriter, YmlJavaApiResourceWriter, YmlJavaCronTypeWriter, YmlJavaCssDependencyWriter, YmlJavaDaoWriter, YmlJavaDtoWriter, YmlJavaEnumWriter, YmlJavaJsDependencyWriter, YmlJavaMessageTypeWriter, YmlJavaModelWriter, YmlJavaPomWriter, YmlJavaResourceDataWriter, YmlJavaSdkWriter, YmlJavaValidatorWriter, YmlJavaWorkerWriter, YmlMetaWriterBase, YmlSqlStructureWriter, YmlSqlTemplateWriter, YmlVueServiceWriter
Constant Summary collapse
- PLACEHOLDER_PACKAGE =
'{{--PACKAGE--}}'
- PLACEHOLDER_CLASS =
'{{--CLASS--}}'
- PLACEHOLDER_SCHEMA =
'{{--SCHEMA--}}'
- PLACEHOLDER_IMPORT =
'{{--IMPORT--}}'
- AUTO_TYPES =
%w(boolean byte short int long BigDecimal String ZonedDateTime LocalDate)
Instance Method Summary collapse
-
#get_base_path(site) ⇒ Object
Gets the base path for site.
-
#get_java_path(site, schema, service, package) ⇒ Object
Gets the base path to JAVA.
-
#get_package(site, schema, package, service) ⇒ Object
Gets the package.
-
#get_package_from_file(site, file) ⇒ Object
Takes a filename as input and determines the package.
-
#write_file_java(path_and_file, contents, is_mock = false) ⇒ Object
Proxy method needed to handle mocks.
Instance Method Details
#get_base_path(site) ⇒ Object
Gets the base path for site.
42 43 44 |
# File 'lib/core/yml_writers/yml_writer_base.rb', line 42 def get_base_path(site) "#{Blufin::SiteResolver::get_site_location(site)}" end |
#get_java_path(site, schema, service, package) ⇒ Object
Gets the base path to JAVA.
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/core/yml_writers/yml_writer_base.rb', line 14 def get_java_path(site, schema, service, package) schema = '' if schema.nil? case service when Blufin::SiteServices::API path = Blufin::SiteResolver::path_to_java_api(site) when Blufin::SiteServices::CRON path = Blufin::SiteResolver::path_to_java_cron(site) when Blufin::SiteServices::LIB path = Blufin::SiteResolver::path_to_java_lib(site) when Blufin::SiteServices::SDK_CORE path = Blufin::SiteResolver::path_to_java_sdk_core(site) return "#{path}/src/main/java/#{Blufin::SiteResolver::get_site_domain(site).gsub('.', '/')}/#{Blufin::SiteResolver::get_site_name(site).gsub('-', '/')}/#{Blufin::SiteServices::SDK}/#{package.gsub('{schema}', schema).gsub('.', '/')}" when Blufin::SiteServices::SDK_INTERNAL path = Blufin::SiteResolver::path_to_java_sdk_internal(site) return "#{path}/src/main/java/#{Blufin::SiteResolver::get_site_domain(site).gsub('.', '/')}/#{Blufin::SiteResolver::get_site_name(site).gsub('-', '/')}/#{Blufin::SiteServices::SDK}/#{package.gsub('{schema}', schema).gsub('.', '/')}" when Blufin::SiteServices::SDK_OAUTH path = Blufin::SiteResolver::path_to_java_sdk_oauth(site) return "#{path}/src/main/java/#{Blufin::SiteResolver::get_site_domain(site).gsub('.', '/')}/#{Blufin::SiteResolver::get_site_name(site).gsub('-', '/')}/#{Blufin::SiteServices::SDK}/#{package.gsub('{schema}', schema).gsub('.', '/')}" when Blufin::SiteServices::WORKER path = Blufin::SiteResolver::path_to_java_worker(site) else raise RuntimeError, "Invalid Service: #{service}" end "#{path}/src/main/java/#{Blufin::SiteResolver::get_site_domain(site).gsub('.', '/')}/#{Blufin::SiteResolver::get_site_name(site).gsub('-', '/')}/#{service}/#{package.gsub('{schema}', schema).gsub('.', '/')}" end |
#get_package(site, schema, package, service) ⇒ Object
Gets the package.
48 49 50 51 52 53 54 55 56 57 |
# File 'lib/core/yml_writers/yml_writer_base.rb', line 48 def get_package(site, schema, package, service) schema = '' if schema.nil? domain = Blufin::SiteResolver::get_site_domain(site).strip domain_gsub = domain == '' ? '' : "#{domain}." if [Blufin::SiteServices::SDK_CORE, Blufin::SiteServices::SDK_INTERNAL, Blufin::SiteServices::SDK_OAUTH].include?(service) "#{domain_gsub}#{Blufin::SiteResolver::get_site_name(site).gsub('-', '.')}.#{Blufin::SiteServices::SDK}.#{package.gsub('{schema}', schema)}" else "#{domain_gsub}#{Blufin::SiteResolver::get_site_name(site).gsub('-', '.')}.#{service}.#{package.gsub('{schema}', schema)}" end end |
#get_package_from_file(site, file) ⇒ Object
Takes a filename as input and determines the package. Magic.
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/core/yml_writers/yml_writer_base.rb', line 61 def get_package_from_file(site, file) raise RuntimeError, "Expected String, instead got: #{file.class}" unless file.is_a?(String) site = Blufin::SiteResolver::validate_site(site) site_name = Blufin::SiteResolver::get_site_name(site) site_domain = Blufin::SiteResolver::get_site_domain(site) begin matches = file.match(/\/#{site_name}-(#{Blufin::SiteServices::REGEX_JAVA})\/src\/(main|test)\/java\/#{site_domain}\/#{site_name.gsub('-', '/')}\//) matches = matches[0].gsub(/\A\//, '').gsub(/\/\z/, '') matches = matches.split('/') service = matches[0] split_path = "/#{service}/src/" raise RuntimeError, "Unable to find swap_path: #{split_path}" unless file =~ /#{split_path}/ file_split = file.split(split_path) file_split = file_split[1].split('/java/') file_split = file_split[1].split('/') file_split.pop return file_split.join('.') rescue => e puts e. raise RuntimeError, "Failed to get_package_from_file() with file: #{file}" end end |
#write_file_java(path_and_file, contents, is_mock = false) ⇒ Object
Proxy method needed to handle mocks.
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/core/yml_writers/yml_writer_base.rb', line 86 def write_file_java(path_and_file, contents, is_mock = false) all_paths = 'config|dao|dto|enums|field|filter|mapper|metadata|model|refiner|service|sort|validator' # This is the "mock interceptor" that writes all the auto-generated mocks. if is_mock package = path_and_file =~ /\/sdk/ ? 'sdk' : 'api' file = File.basename(path_and_file) type = path_and_file.split('/') type = type[type.length - 2] path = "#{Blufin::Config::get_path('Paths', 'BlufinJava')}/blufin-#{package}/src/test/java/org/blufin/mock/#{type}/" path_and_file = "#{path}#{file}" contents_intercepted = [] contents_intercepted = ['import lombok.EqualsAndHashCode;', '@EqualsAndHashCode(callSuper = false)'] if type == 'dto' contents.each do |line| if line =~ /^package\s+[A-Za-z0-9\.\-_].+(#{all_paths});/ contents_intercepted << line.gsub(/^package\s+[A-Za-z0-9.\-_].+./, "package org.blufin.mock.#{type};") elsif line =~ /^import\s+[A-Za-z0-9\.\-_].+(#{all_paths}).Mock([A-Z][A-Za-z]+)?;/ import_split = line.split('.') contents_intercepted << "import org.blufin.mock.#{import_split[import_split.length - 2]}.#{import_split[import_split.length - 1]}" else contents_intercepted << line end end contents = contents_intercepted end Blufin::Files::write_file_java(path_and_file, contents) end |