class AnalyzedClassGenerator

Public Instance Methods

classNameForLine(line, name) click to toggle source
# File lib/AnalyzedClassGenerator.rb, line 107
def classNameForLine (line, name)
        if LineDeterminator.new(line).isClass and name == nil
                if line.include? ":" 
                        return line.strip.slice(5..(line.strip.index(":")-1))
                else
                        strippedLine = line.gsub("class", "").strip
                        return strippedLine.slice(0..(strippedLine.index(" ")-1))
                end
        end
        return nil
end
generateAnalyzedClassesForFile(file) click to toggle source
# File lib/AnalyzedClassGenerator.rb, line 52
def generateAnalyzedClassesForFile (file)
        analyzedClasses = Array.new
        analyzedClass = AnalyzedClass.new

        f = File.open(file, "r")
        f.each_line do |line|
                tempClassName = classNameForLine line, analyzedClass.name
                if tempClassName != nil
                        analyzedClass.name = tempClassName
                end

                if analyzedClass.name != nil
                        if line.strip.length > 1
                                analyzedClass.numberOfLines += 1
                        end

                        if analyzedClass.fileName == nil 
                                analyzedClass.fileName = file
                        end
                        updateCurlyBraceIndex line

                        if line.include? "func "
                                @functionName = line.slice((line.index("func ") + 5)..(line.index("(")-1))
                        end 

                        if @functionName != nil
                                updateFunctionCurlyBraceIndex line

                                if line.strip.length > 0
                                        @funcLines = @funcLines + 1
                                end

                                if didReachEndOfFunction
                                        analyzedClass.addFunction(@functionName, @funcLines)
                                        resetFunctionStats
                                end
                        end

                        if (line.include? "var " or line.include? "let ")
                                variable = Variable.new.variableForLine line
                                analyzedClass.addVariable variable
                        end

                        if didReachEndOfClass
                                analyzedClasses.push(analyzedClass)
                                resetClassStats
                                analyzedClass = AnalyzedClass.new
                        end
                end
        end
        f.close

        return analyzedClasses
end