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