class Variable

Public Class Methods

new(keyword="", name="", type="") click to toggle source
# File lib/AnalyzedClass.rb, line 116
def initialize (keyword="", name="", type="")
        @keyword = keyword
        @name = name
        @type = type
end

Public Instance Methods

beginningIndex(line) click to toggle source
# File lib/AnalyzedClass.rb, line 199
def beginningIndex (line)
        index = 0
        if line.include? "var "
                index = (line.index("var ") + 4)
        elsif line.include? "let "
                index = (line.index("let ") + 4)
        end
        return index
end
keyword() click to toggle source
# File lib/AnalyzedClass.rb, line 130
def keyword
        @keyword
end
name() click to toggle source
# File lib/AnalyzedClass.rb, line 122
def name
        @name
end
type() click to toggle source
# File lib/AnalyzedClass.rb, line 126
def type
        @type
end
variableForLine(line) click to toggle source
# File lib/AnalyzedClass.rb, line 134
def variableForLine (line)
        if !(line.include? "let ") and !(line.include? "var ")
                return nil
        end

        index = beginningIndex line
        variableKeyword = variableKeyword line
        varName = variableName index, line
        type = variableType line, varName
                
        return Variable.new variableKeyword, varName, type
end
variableKeyword(line) click to toggle source
# File lib/AnalyzedClass.rb, line 209
def variableKeyword (line)
        if line.include? "var "
                return "var"
        end
        return "let"
end
variableName(index, line) click to toggle source
# File lib/AnalyzedClass.rb, line 216
def variableName (index, line)
        varName = ""
        if line.include? ":" and !(line.include? "=")
                varName = line.slice(index..(line.index(":")-1))
        elsif 
                temp = line
                temp = temp[index..-1]
                whiteSpaceIndex = temp.index(" ")
                equalsIndex = temp.index("=")
                if equalsIndex == nil
                        equalsIndex = 9999
                end
                colonIndex = temp.index(":")
                endStringSliceIndex = whiteSpaceIndex
                if whiteSpaceIndex > equalsIndex
                        endStringSliceIndex = equalsIndex
                end
                varName = temp.slice(0..endStringSliceIndex)
                if varName.include? ":"
                        varName = varName.slice(0..varName.index(":")-1)
                end
        end
        return varName.strip
end
variableType(line, variableName) click to toggle source
# File lib/AnalyzedClass.rb, line 147
def variableType (line, variableName)
        if variableName == nil or line.include? "["
                return nil
        end


        if (line.include? "=" and line.include? "(")

                if line.include? "."
                        indexDot = line.index(".")
                        indexParen = line.index("(")
                        if indexParen < indexDot
                                index = line.index("=")
                                temp = line[index+1..-1]
                                temp = temp.strip
                                temp = temp.slice(0..(temp.index("(") - 1)).strip
                                if temp.index("(") != 0
                                        type = temp.strip
                                        return type
                                end
                        end
                else
                        index = line.index("=")
                        temp = line[index+1..-1]
                        type = temp.slice(0..(temp.index("(") - 1)).strip
                        return type
                end

        elsif line.include? ":"
                index = line.index(":")
                temp = line[index+1..-1].strip
                if temp.include? "!"
                        temp = temp[0..-2]
                end

                if temp.include? "?"
                        temp = temp[0..-2]
                end

                if temp.include? "]"
                        temp = temp[0..temp.index("]")]
                end

                if temp.include? " "
                        temp = temp[0..temp.index(" ")]
                end
                return temp
        end

        return nil
end