class Xcodeproj::Pbxproj::PbxObject::PbxSort

Public Class Methods

new(pbxs) click to toggle source
# File lib/xsort/xcodeproj/pbxproj/pbxobject/PbxSort.rb, line 17
def initialize(pbxs)
    @pbxs = pbxs
end

Public Instance Methods

childrenSort(children, sort) click to toggle source
# File lib/xsort/xcodeproj/pbxproj/pbxobject/PbxSort.rb, line 52
def childrenSort (children, sort)
    pbx = ""
    pbxSplit = children.split("\n")
    isPbxChild = false
    num = 0
    pbxSplit.each{|pbxLine|

        if pbxLine.index(");")
            isPbxChild = false
        end

        if isPbxChild == true
            pbxLine = sort[num]
            num += 1
        else
            pbxLine << "\n"
        end

        # Children
        if pbxLine.index("children = (")
            isPbxChild = true
        end
        pbx << pbxLine
    }
    return pbx
end
psort() click to toggle source
# File lib/xsort/xcodeproj/pbxproj/pbxobject/PbxSort.rb, line 21
def psort

    sorteds = Array.new
    productPbx = ""

    @pbxs.each{ |pbx|
        sort = pbx.children.sort{|pbx1, pbx2|
            pbx1.name <=> pbx2.name
        }

        child = Array.new
        sort.each {|pbx|

            if pbx.name == "Products"
                productPbx = pbx.childPbx
            else
                child.push(pbx.childPbx)
            end
        }

        if productPbx.length != 0
            child.push(productPbx)
            productPbx = ""
        end

        sorteds.push(childrenSort(pbx.pbxBase,child))

    }
    return sorteds
end