Commit df986803 authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Make Ast#detect return a hash.

So it produces the same kind of return value as CssParser.
parent a4e16681
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -14,23 +14,23 @@ module JsDuck
      var = var?(ast) ? ast["declarations"][0] : nil

      if exp && call?(exp) && ext_define?(exp["callee"])
        :class
        {:type => :class}
      elsif exp && assignment?(exp) && class_name?(exp["left"])
        :class
        {:type => :class}
      elsif var && class_name?(var["id"])
        :class
        {:type => :class}
      elsif function?(ast) && class_name?(ast["id"])
        :class
        {:type => :class}
      elsif function?(ast)
        :method
        {:type => :method}
      elsif exp && assignment?(exp) && function?(exp["right"])
        :method
        {:type => :method}
      elsif var && function?(var["init"])
        :method
        {:type => :method}
      elsif property?(ast) && function?(ast["value"])
        :method
        {:type => :method}
      else
        :property
        {:type => :property}
      end
    end

+1 −1
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ require "jsduck/esprima_parser"
describe JsDuck::Ast do
  def detect(string)
    node = JsDuck::EsprimaParser.new(string).parse[0]
    return JsDuck::Ast.new.detect(node[:code])
    return JsDuck::Ast.new.detect(node[:code])[:type]
  end

  describe "detects as class" do
+1 −1
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ describe JsDuck::DocType do
      node = JsDuck::CssParser.new(string).parse[0]
    else
      node = JsDuck::EsprimaParser.new(string).parse[0]
      node[:code] = { :type => JsDuck::Ast.new.detect(node[:code]) }
      node[:code] = JsDuck::Ast.new.detect(node[:code])
    end

    doc_parser = JsDuck::DocParser.new