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

Refactor #key_value method into Evaluator.

parent 6baa6547
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -59,7 +59,7 @@ module JsDuck

      # foo: function() {}
      elsif property?(ast) && function?(ast["value"])
        make_method(key_to_s(ast["key"]), ast["value"])
        make_method(key_value(ast["key"]), ast["value"])

      else
        {:type => :property}
@@ -175,15 +175,15 @@ module JsDuck
      h = {}
      if ast && ast["type"] == "ObjectExpression"
        ast["properties"].each do |p|
          h[key_to_s(p["key"])] = p["value"]
          h[key_value(p["key"])] = p["value"]
        end
      end
      return h
    end

    # Converts object expression property key to string value
    def key_to_s(key)
      key["type"] == "Identifier" ? key["name"] : key["value"]
    def key_value(key)
      @evaluator.key_value(key)
    end

    # Fully serializes the node
+6 −1
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@ module JsDuck
      when "ObjectExpression"
        h = {}
        ast["properties"].each do |p|
          key = p["key"]["type"] == "Identifier" ? p["key"]["name"] : to_value(p["key"])
          key = key_value(p["key"])
          value = to_value(p["value"])
          h[key] = value
        end
@@ -32,6 +32,11 @@ module JsDuck
      end
    end

    # Turns object property key into string value
    def key_value(key)
      key["type"] == "Identifier" ? key["name"] : key["value"]
    end

  end

end