Commit 31397fa6 authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Refactor Ast#make_params & #chainable.

Also introduce AstNodeArray#map.
parent 988d36f5
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -328,22 +328,22 @@ module JsDuck
      return {
        :tagname => :method,
        :name => name,
        :params => make_params(ast.raw),
        :chainable => chainable?(ast.raw) && name != "constructor",
        :params => make_params(ast),
        :chainable => chainable?(ast) && name != "constructor",
      }
    end

    def make_params(ast)
      if ast && !empty_fn?(ast)
        ast["params"].map {|p| {:name => to_s(p)} }
      if ast.function? && !ast.ext_empty_fn?
        ast["params"].map {|p| {:name => p.to_s} }
      else
        []
      end
    end

    def chainable?(ast)
      if function?(ast) && !empty_fn?(ast)
        FunctionAst.return_types(ast) == [:this]
      if ast.function? && !ast.ext_empty_fn?
        FunctionAst.return_types(ast.raw) == [:this]
      else
        false
      end
+5 −0
Original line number Diff line number Diff line
@@ -24,6 +24,11 @@ module JsDuck
      @nodes.each {|p| yield(AstNode.create(p)) }
    end

    # Maps over all the AstNodes in array.
    def map
      @nodes.map {|p| yield(AstNode.create(p)) }
    end

  end

end