class RankMirror::Status

Public Class Methods

new(uri,distro) click to toggle source
# File lib/rankmirror/status.rb, line 5
def initialize(uri,distro)
        uri << "/" unless /^.*\/$/.match(uri)
        @uri = uri
        @distro = distro
end

Public Instance Methods

get() click to toggle source
# File lib/rankmirror/status.rb, line 11
def get
        if RankMirror::Reachable.new(@uri,500).reachable?
                case @distro
                when "opensuse"
                        tumbleweed = "tumbleweed/repo/oss/suse/repodata/"
                        leap4220 = "distribution/leap/42.2/repo/oss/suse/repodata/"
                        leap4210 = "distribution/leap/42.1/repo/oss/suse/repodata/"
                        leap4230 = "distribution/leap/42.3/repo/oss/suse/repodata/"
                        
                        checklist = {"tumbleweed"=>tumbleweed,"leap4220"=>leap4220,"leap4210"=>leap4210,"leap4230"=>leap4230}
                        mirror = OpenStruct.new
                        
                        checklist.each do |k,v|
                                if RankMirror::Reachable.new(@uri + v,500).reachable?
                                        mirror[k] = true
                                else
                                        mirror[k] = false
                                end
                        end
                        return mirror
                when "packman"
                        tumbleweed = "Tumbleweed"
                        leap4220 = "Leap_42.2"
                        leap4210 = "Leap_42.1"
                        leap4230 = "Leap_42.3"
                        checklist = {"tumbleweed"=>tumbleweed,"leap4220"=>leap4220,"leap4210"=>leap4210,"leap4230"=>leap4230}

                        mirror = OpenStruct.new

                        checklist.each do |k,v|
                                if RankMirror::Reachable.new(@uri + "openSUSE_" + v + "/Essentials/repodata/",500).reachable?
                                        mirror[k] = true
                                else
                                        mirror[k] = false
                                end
                        end
                        return mirror
                when "fedora"
                        mirror = OpenStruct.new
                        check = ["20","21","22","23","24","25"]
                        check.each do |k|
                                if RankMirror::Reachable.new(@uri + "releases/" + k + "/Everything/x86_64/os/repodata/repomd.xml",500).reachable?
                                        mirror["fedora" + k] = true
                                else
                                        mirror["fedora" + k] = false
                                end
                        end
                        return mirror
                when "epel"
                        mirror = OpenStruct.new
                        check = ["4","5","6","7"]
                        check.each do |k|
                                if RankMirror::Reachable.new(@uri + "/" + k + "/x86_64/repodata/repomd.xml",500).reachable?
                                        mirror["epel" + k] = true
                                else
                                        mirror["epel" + k] = false
                                end
                        end
                        return mirror
                else
                end
        else
                return nil
        end
end