diff --git a/lib/generamba/cli/gen_command.rb b/lib/generamba/cli/gen_command.rb index 9884f24..f9d6af1 100644 --- a/lib/generamba/cli/gen_command.rb +++ b/lib/generamba/cli/gen_command.rb @@ -47,7 +47,7 @@ def gen(module_name, template_name) module_info = ModuleInfoGenerator.new(code_module) template = ModuleTemplate.new(template_name, module_info.scope) - parameters = GenCommandTableParametersFormatter.prepare_parameters_for_displaying(rambafile) + parameters = GenCommandTableParametersFormatter.prepare_parameters_for_displaying(code_module, template_name) PrintTable.print_values( values: parameters, title: "Summary for gen #{module_name}" diff --git a/lib/generamba/helpers/gen_command_table_parameters_formatter.rb b/lib/generamba/helpers/gen_command_table_parameters_formatter.rb index 448ee2e..bed9b50 100644 --- a/lib/generamba/helpers/gen_command_table_parameters_formatter.rb +++ b/lib/generamba/helpers/gen_command_table_parameters_formatter.rb @@ -1,17 +1,31 @@ module Generamba # Provides methods for prepare parameters for displaying in table. class GenCommandTableParametersFormatter + require 'json' + # This method prepared parameter for displaying - def self.prepare_parameters_for_displaying(parameters) - params = parameters.clone + def self.prepare_parameters_for_displaying(code_module, template_name) + params = {} + + params['Targets'] = code_module.project_targets.join(',') + params['Module path'] = code_module.module_file_path + + if code_module.module_file_path != code_module.module_group_path + params['Module group path'] = code_module.module_group_path + end - templates = [] + params['Test targets'] = code_module.test_targets.join(',') if code_module.test_targets + params['Test file path'] = code_module.test_file_path if code_module.test_file_path - params['templates'].each do |param| - templates.push(param['name']) + if code_module.test_file_path != code_module.test_group_path + params['Test group path'] = code_module.test_group_path end - params['templates'] = templates.join("\n") + params['Template'] = template_name + + if code_module.custom_parameters + params['Custom parameters'] = code_module.custom_parameters.to_json + end params end diff --git a/spec/gen_command_table_parameters_formatter_spec.rb b/spec/gen_command_table_parameters_formatter_spec.rb index d4da0e3..81cfdc2 100644 --- a/spec/gen_command_table_parameters_formatter_spec.rb +++ b/spec/gen_command_table_parameters_formatter_spec.rb @@ -1,21 +1,43 @@ require_relative 'spec_helper' +require 'json' +require 'generamba/code_generation/code_module.rb' +require 'generamba/constants/rambafile_constants.rb' describe 'GenCommandTableParametersFormatter' do describe 'method prepare_parameters_for_displaying' do it 'should convert array of hash to array of strings' do - expected_string = "name1\nname2" + expected_params = {} - parameters = { - 'templates' => [ - {'name' => 'name1', 'path' => 'path1'}, - {'name' => 'name2', 'path' => 'path2'} - ] - } + expected_params['Targets'] = 'Target' + expected_params['Module path'] = Pathname.new('Project/name') + expected_params['Module group path'] = Pathname.new('Project/Modules/name') + expected_params['Test targets'] = 'TargetTests' + expected_params['Test file path'] = Pathname.new('ProjectTests/name') + expected_params['Test group path'] = Pathname.new('ProjectTests/Modules/name') + expected_params['Template'] = 'Template' + expected_params['Custom parameters'] = {:key => 'value'}.to_json - params = Generamba::GenCommandTableParametersFormatter.prepare_parameters_for_displaying(parameters) + rambafile = {} + rambafile[Generamba::PROJECT_NAME_KEY] = 'project' + rambafile[Generamba::PROJECT_FILE_PATH_KEY] = 'file_path' + rambafile[Generamba::PROJECT_GROUP_PATH_KEY] = 'group_path' + rambafile[Generamba::PROJECT_TARGET_KEY] = 'Target' + rambafile[Generamba::PROJECT_FILE_PATH_KEY] = 'Project' + rambafile[Generamba::PROJECT_GROUP_PATH_KEY] = 'Project/Modules' + rambafile[Generamba::TEST_TARGET_KEY] = 'TargetTests' + rambafile[Generamba::TEST_FILE_PATH_KEY] = 'ProjectTests' + rambafile[Generamba::TEST_GROUP_PATH_KEY] = 'ProjectTests/Modules' - expect(params['templates']).to eq(expected_string) + options = {} + options[:custom_parameters] = {:key => 'value'} + + code_module = Generamba::CodeModule.new('name', 'description', rambafile, options) + template_name = 'Template' + + params = Generamba::GenCommandTableParametersFormatter.prepare_parameters_for_displaying(code_module, template_name) + + expect(params).to eq(expected_params) end end