class PodsOrz::PodsVersion
Attributes
kx_pods_path[RW]
Public Class Methods
new(main_path)
click to toggle source
# File lib/podsorz/core/PodsOrz/pods_version.rb, line 9 def initialize(main_path) @orzconfig_parse = PodsOrz::PodOrzconfigParse.new(main_path) @kx_pods_path = File.expand_path("../#{@orzconfig_parse.file_devpods_name}", main_path) end
Public Instance Methods
detect_pod_version_file(pod)
click to toggle source
# File lib/podsorz/core/PodsOrz/pods_version.rb, line 99 def detect_pod_version_file(pod) detect_result = true file_path = File.expand_path("#{pod}/#{pod}.podspec", @kx_pods_path) detect_result = File.exist?(file_path) unless detect_result Logger.error("【#{pod}】not exist .podspec file at file path: #{file_path}") end detect_result end
get_podspec_version(pod)
click to toggle source
# File lib/podsorz/core/PodsOrz/pods_version.rb, line 111 def get_podspec_version(pod) result_version_num = "" return result_version_num unless detect_pod_version_file(pod) file_path = File.expand_path("#{pod}/#{pod}.podspec", @kx_pods_path) File.open(file_path, "r") do |file| file.readlines.each do |line| l = line.strip.chomp next if l.start_with?("#") if /\.(version)(.*) =/ =~ line version_num = $~.post_match.strip.chomp.to_s version_num = version_num.gsub(/[\'\"]/, "") unless /\d{1,}\.\d{1,}/ =~ version_num next end result_version_num = version_num end end end Logger.error("#{pod}.podspec can not find \'.version = \'") if result_version_num.empty? result_version_num end
increase_pod_version(pod)
click to toggle source
# File lib/podsorz/core/PodsOrz/pods_version.rb, line 14 def increase_pod_version(pod) latest_version = "" is_increase_success = true is_increase_success = detect_pod_version_file(pod) return latest_version unless is_increase_success #increase file_path = File.expand_path("#{pod}/#{pod}.podspec", @kx_pods_path) update_lines = [] edite_line = "" File.open(file_path, "r") do |file| file.readlines.each do |line| l = line.strip.chomp if l.start_with?("#") update_lines << line next end if /\.(version)(.*) =/ =~ line version_num = $~.post_match.strip.chomp.to_s version_num = version_num.gsub(/[\'\"]/, "") unless /\d{1,}\.\d{1,}/ =~ version_num update_lines << line next end part_nums = version_num.split('.') last_num = part_nums.pop if last_num.to_i >= 99 pre_num = part_nums.pop if pre_num.to_i >= 99 pre_pre_num = part_nums.pop pre_pre_num = (pre_num.to_i + 1).to_s pre_num = "0" part_nums << pre_pre_num part_nums << pre_num part_nums << last_num else pre_num = (pre_num.to_i + 1).to_s last_num = "0" part_nums << pre_num part_nums << last_num end else last_num = (last_num.to_i + 1).to_s part_nums << last_num end latest_version = part_nums.join('.') parts_line = line.split('=') edite_line = parts_line[0] + "= " + "\'#{latest_version}\'" + "\n" update_lines << edite_line else update_lines << line end end end if edite_line.empty? Logger.error("#{pod}.podspec can not find \'.version = \', increase failure") return latest_version end File.open(file_path, "w+") {|file| Logger.highlight("#{pod}.podspec version inscrease completed!") update_lines.each do |line| file.write(line) end } latest_version end