lib/big_keeper/util/podfile_operator.rb
require 'tempfile'require 'fileutils'require 'big_keeper/dependency/dep_type'require 'big_keeper/util/podfile_detector' module BigKeeper # Operator for podfile class PodfileOperator def has(podfile, module_name) File.open(podfile, 'r') do |file| file.each_line do |line| if line.include?module_name return true end end end false end def generate_pod_config(pod_name, version, comment) module_config = '' if comment != nil module_config = " pod '#{pod_name}' , '#{version}' # #{comment}" else module_config = " pod '#{pod_name}' , '#{version}'" end end def replace_all_module_release(path, user, module_names, version) module_names.each do |module_name| DepService.dep_operator(path, user).update_module_config( module_name, ModuleOperateType::RELEASE) end end Method `find_and_lock` has 26 lines of code (exceeds 25 allowed). Consider refactoring.
Method `find_and_lock` has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring. def find_and_lock(podfile, dictionary) temp_file = Tempfile.new('.Podfile.tmp', :encoding => 'UTF-8') begin File.open(podfile, 'r') do |file| file.each_line do |line| pod_model = PodfileParser.get_pod_model(line) if pod_model != nil && pod_model.name != nil && dictionary[pod_model.name] != nil temp_file.puts generate_pod_config(pod_model.name, dictionary[pod_model.name], pod_model.comment) dictionary.delete(pod_model.name) else temp_file.puts line end end end if !dictionary.empty? temp_file.puts 'def sub_dependency' dictionary.keys.each do |sub_pod| temp_file.puts generate_pod_config(sub_pod, dictionary[sub_pod], 'bigkeeper') end temp_file.puts 'end' end temp_file.close FileUtils.mv(temp_file.path, podfile) ensure temp_file.close temp_file.unlink end end def find_and_upgrade(podfile, dictionary) temp_file = Tempfile.new('.Podfile.tmp', :encoding => 'UTF-8') begin File.open(podfile, 'r', :encoding => 'UTF-8') do |file| file.each_line do |line| pod_model = PodfileParser.get_pod_model(line) if pod_model != nil && pod_model.name != nil && dictionary[pod_model.name] != nil #替换 temp_file.puts generate_pod_config(pod_model.name, dictionary[pod_model.name], pod_model.comment) else temp_file.puts line end end end temp_file.close FileUtils.mv(temp_file.path, podfile) ensure temp_file.close temp_file.unlink end end Method `podspec_change` has a Cognitive Complexity of 15 (exceeds 5 allowed). Consider refactoring.
Method `podspec_change` has 31 lines of code (exceeds 25 allowed). Consider refactoring. def podspec_change(podspec_file, version, module_name) temp_file = Tempfile.new(".#{module_name}.podspec", :encoding => 'UTF-8') has_change = false begin File.open(podspec_file, 'r', :encoding => 'UTF-8') do |file| file.each_line do |line| if line.include?("s.version") temp_line = line temp_line_arr = temp_line.split("=") if temp_line_arr[0].delete(" ") == "s.version" unless temp_line_arr[temp_line_arr.length - 1].include? "#{version}" temp_file.puts "s.version = '#{version}'" has_change = true else temp_file.puts line Logger.highlight("The version in PodSpec is equal your input version") end else temp_file.puts line end else temp_file.puts line end end end temp_file.close FileUtils.mv(temp_file.path, podspec_file) ensure temp_file.close temp_file.unlink end has_change end private :generate_pod_config endend