class Blufin::YmlWriterBase
Constants
- AUTO_TYPES
- PLACEHOLDER_CLASS
- PLACEHOLDER_IMPORT
- PLACEHOLDER_PACKAGE
- PLACEHOLDER_SCHEMA
Public Instance Methods
get_base_path(site)
click to toggle source
Gets the base path for site. @return String
# 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)
click to toggle source
Gets the base path to JAVA. @return String
# 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)
click to toggle source
Gets the package. @return String
# 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)
click to toggle source
Takes a filename as input and determines the package. Magic. @return String
# 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.message raise RuntimeError, "Failed to get_package_from_file() with file: #{file}" end end
write_file_java(path_and_file, contents, is_mock = false)
click to toggle source
Proxy method needed to handle mocks. @return void
# 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