# frozen_string_literal: true
include LatoCore::Interface
desc 'Lato general tasks' namespace :lato do
desc 'Load lato modules configs on main application if they are not present' task :load_configs do generate_modules_application_configs(false) end desc 'Load lato modules configs on main application or rewrite them' task :load_configs_forced do generate_modules_application_configs(true) end desc 'Load lato modules languages on main application if they are not present' task :load_languages do generate_modules_application_languages('default', false) end desc 'Load lato modules languages on main application or rewrite them' task :load_languages_forced do generate_modules_application_languages('default', true) end
end
# Load configs: ##############################################################################
# This function generates on the main application the configs files for # every lato module. def generate_modules_application_configs(forced = false)
lato_modules = core__get_modules_list lato_modules.each do |lato_module_name| generate_module_application_configs(lato_module_name, forced) end
end
# This function generates on the main application the configs files for # a specific lato module. def generate_module_application_configs(module_name, forced = false)
# find directories path application_config_path = core__get_application_lato_configs_path module_root_path = core__get_module_root_path(module_name) # find configs files path configs_from_file_path = "#{module_root_path}/config/configs.yml" config_to_file_path = "#{application_config_path}/#{module_name}.yml" # copy file from module to main application (if it's possible) if !forced && File.exist?(config_to_file_path) puts "Already exist: #{config_to_file_path}" return end FileUtils.cp configs_from_file_path, config_to_file_path puts "Generated: #{config_to_file_path}"
end
# Load languages: ##############################################################################
def generate_modules_application_languages(language = 'default', forced = false)
lato_modules = core__get_modules_list lato_modules.each do |lato_module_name| generate_module_application_languages(lato_module_name, language, forced) end
end
def generate_module_application_languages(module_name, language = 'default', forced = false)
# find directories path application_config_path = core__get_application_lato_configs_path module_root_path = core__get_module_root_path(module_name) # find languages files path lang_from_file_path = "#{module_root_path}/config/languages/#{language}.yml" lang_from_file_path = "#{module_root_path}/config/languages/default.yml" unless File.exist?(lang_from_file_path) lang_to_file_path = "#{application_config_path}/#{module_name}_locale.yml" # copy file from module to main application (if it's possible) if !forced && File.exist?(lang_to_file_path) puts "Already exist: #{lang_to_file_path}" return end FileUtils.cp lang_from_file_path, lang_to_file_path puts "Generated: #{lang_to_file_path}"
end