Class: DTK::Client::TestModuleCreator
- Inherits:
-
Object
- Object
- DTK::Client::TestModuleCreator
- Defined in:
- lib/command_helpers/test_module_creator.rb
Class Method Summary collapse
- .create_clone(type, module_name) ⇒ Object
- .generate_model(module_name, target_repo_dir) ⇒ Object
- .generate_serverspec_files(module_name, target_repo_dir) ⇒ Object
Class Method Details
.create_clone(type, module_name) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/command_helpers/test_module_creator.rb', line 24 def create_clone(type, module_name) Response.wrap_helper_actions do modules_dir = OsUtil.test_clone_location() FileUtils.mkdir_p(modules_dir) unless File.directory?(modules_dir) target_repo_dir = OsUtil.module_location(type,module_name) begin FileUtils.mkdir_p(target_repo_dir) generate_model(module_name, target_repo_dir) generate_serverspec_files(module_name, target_repo_dir) rescue => e additional_error_msg = "" error_msg = "Create of directory (#{target_repo_dir}) failed." additional_error_msg = "Directory already exists" if e..include? "File exists" raise DTK::ErrorUsage.new(error_msg + " " + additional_error_msg,:log_error=>false) end {"module_directory" => target_repo_dir} end end |
.generate_model(module_name, target_repo_dir) ⇒ Object
44 45 46 47 48 49 |
# File 'lib/command_helpers/test_module_creator.rb', line 44 def generate_model(module_name, target_repo_dir) input = File.('test_module_templates/dtk.model.yaml.eruby', File.dirname(__FILE__)) eruby = Erubis::Eruby.new(File.read(input)) content = eruby.result(:module_name => module_name) File.open(target_repo_dir + "/dtk.model.yaml", "w") { |f| f.write(content) } end |
.generate_serverspec_files(module_name, target_repo_dir) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/command_helpers/test_module_creator.rb', line 51 def generate_serverspec_files(module_name, target_repo_dir) template_location = File.('test_module_templates', File.dirname(__FILE__)) spec_helper_template = Erubis::Eruby.new(File.read(template_location + "/spec_helper.rb.eruby")).result spec_template = Erubis::Eruby.new(File.read(template_location + "/temp_component_spec.rb.eruby")).result begin #Create standard serverspec structure FileUtils.mkdir_p(target_repo_dir + "/serverspec/spec/localhost") File.open(target_repo_dir + "/serverspec/spec/spec_helper.rb", "w") { |f| f.write(spec_helper_template) } File.open(target_repo_dir + "/serverspec/spec/localhost/temp_component_spec.rb", "w") { |f| f.write(spec_template) } rescue => e error_msg = "Generating serverspec files failed." DtkLogger.instance.error_pp(e., e.backtrace) raise DTK::ErrorUsage.new(error_msg,:log_error=>false) end end |