class Reversepoddependency::SepcAnalyse

Public Class Methods

new(repoPath,targetPodName) click to toggle source
# File lib/reversepoddependency/specanalyse.rb, line 6
def initialize(repoPath,targetPodName)
        @repoPath = repoPath
        @targetPodName = targetPodName
        @podSource = Pod::Source.new(repoPath)
end

Public Instance Methods

getAnalyseResult() click to toggle source
# File lib/reversepoddependency/specanalyse.rb, line 12
def getAnalyseResult
        if @podSource.git?
                puts "update repo #{@podSource.name}"
                @podSource.update(true)
        end
        puts "正在分析 #{@targetPodName} 在 #{@podSource.name} 中的被依赖列表  ...\n"
        resultHasn = Hash.new
        @podSource.pods.collect do |podName|
                podspecHighV = self.getHighVersionSpec(podName)
                tmpArr = []
                if self.isSpecDependentTargetPod(podspecHighV) == 1
                        tmpArr.push(podName)
                end

                podspecHighV.subspecs.each do |subspec|
                        if self.isSpecDependentTargetPod(subspec) == 1
                                tmpArr.push(subspec.name)
                        end
                end
                if tmpArr.count > 0
                        resultHasn[podName] = tmpArr
                end
        end
        return resultHasn
end
getHighVersionSpec(podName) click to toggle source
# File lib/reversepoddependency/specanalyse.rb, line 38
def getHighVersionSpec(podName)
        highVersion = @podSource.versions(podName).first
        return @podSource.specification(podName,highVersion)
end
isSpecDependentTargetPod(spec) click to toggle source
# File lib/reversepoddependency/specanalyse.rb, line 43
def isSpecDependentTargetPod(spec)
        spec.dependencies.each do |dependedPod|
                if dependedPod.name.include?(@targetPodName)
                        return 1
                end
        end
        return 0
end