module YkCommand class ModuleHandler < Thor include Thor::Actions def initialize(args = [], options = {}, config = {}) super @final_path = config[:final_path] @name = config[:name] @project = config[:project] @prefixed_module = config[:prefixed_module] @author = config[:author] @date = config[:date] end no_commands do def yk_module_folders class_folder_path = "#{@final_path}/#{@name}/Classes" first_level_folders = %w[Public Private] # public_level_folders = ['Register'] # public_level_folders.each do |folder| # path = "#{class_folder_path}/Public/#{folder}" # empty_directory path # end private_level_folders = %w[Business Category Vendor Tools] first_level_folders.each do |folder| path = "#{class_folder_path}/#{folder}" empty_directory path end private_level_folders.each do |folder| path = "#{class_folder_path}/Private/#{folder}" empty_directory path end end YkCommand::ModuleHandler.source_root(File.dirname(__FILE__)) def yk_template_files register_path = "#{@final_path}/#{@name}/Classes/Private/Register" registger = { 'RouterRegister.h' => 'RouterRegister', 'RouterRegister.m' => 'RouterRegister', 'ServiceRegister.h' => 'ServiceRegister', 'ServiceRegister.m' => 'ServiceRegister' } registger.each do |file_name, _folder| final_file = "#{register_path}/#{@prefixed_module}#{file_name}" template "#{__dir__}/template/objc/#{file_name}", final_file end public_folder_path = "#{@final_path}/#{@name}/Classes/Public" template_code_filename = ['ServiceProtocol.h', 'RouterDefine.h'] template_code_filename.each do |file_name| final_file = "#{public_folder_path}/#{@prefixed_module}#{file_name}" source = "#{__dir__}/template/objc/#{file_name}" template source, final_file end swift_template_code_filename = ['RouterDefine.swift'] swift_template_code_filename.each do |file_name| final_file = "#{public_folder_path}/#{@prefixed_module}_Swift_#{file_name}" source = "#{__dir__}/template/swift/#{file_name}" template source, final_file end private_folder_path = "#{@final_path}/#{@name}/Classes/Private" #pch file # pch_file_name = "PrefixHeader.pch" # final_file = "#{private_folder_path}/#{@prefixed_module}#{pch_file_name}" # source = "#{__dir__}/template/objc/#{pch_file_name}" # template source, final_file private_level_folder_files = { 'PrefixHeader.pch' => 'Business', 'CategoryHeader.h' => 'Category', 'ToolsHeader.h' => 'Tools', 'vendorHeader.h' => 'Vendor' } private_level_folder_files.each do |file_name, folder| final_prefix = @prefixed_module if file_name == 'PrefixHeader.pch' final_prefix = @name end final_file = "#{private_folder_path}/#{folder}/#{final_prefix}#{file_name}" source = "#{__dir__}/template/objc/#{file_name}" template source, final_file end business_demo_path = "#{@final_path}/#{@name}/Classes/Private/Business" demo_replace_file = ['DemoViewController.h', 'DemoViewController.m', 'DemoViewModel.h', 'DemoViewModel.m'] demo_replace_file.each do |file_name| final_file = "#{business_demo_path}/Demo/#{@prefixed_module}#{file_name}" source = "#{__dir__}/template/objc/demo/#{file_name}" template source, final_file end end end end end