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

Improve merging of code & doc data.

No more assume everything's coming from doc - also look at the
code data and merge stuff from there that didn't came from doc.

Make use of this to implement @evented and @accessor as BooleanTag
subclasses.
parent 6800acde
Loading
Loading
Loading
Loading
+4 −8
Original line number Diff line number Diff line
require "jsduck/builtins/tag"
require "jsduck/builtins/boolean_tag"

module JsDuck::Builtins
  class Accessor < Tag
  class Accessor < BooleanTag
    def initialize
      @pattern = "accessor"
    end

    # @accessor
    def parse(p)
      p.add_tag(:accessor)
      @key = :accessor
      super
    end
  end
end
+4 −8
Original line number Diff line number Diff line
require "jsduck/builtins/tag"
require "jsduck/builtins/boolean_tag"

module JsDuck::Builtins
  class Evented < Tag
  class Evented < BooleanTag
    def initialize
      @pattern = "evented"
    end

    # @evented
    def parse(p)
      p.add_tag(:evented)
      @key = :evented
      super
    end
  end
end
+0 −2
Original line number Diff line number Diff line
@@ -90,8 +90,6 @@ module JsDuck
        :doc => detect_doc(docs),
        :default => detect_default(:cfg, doc_map),
        :properties => detect_subproperties(:cfg, docs),
        :accessor => !!doc_map[:accessor],
        :evented => !!doc_map[:evented],
      }, doc_map)
    end

+4 −0
Original line number Diff line number Diff line
@@ -81,6 +81,10 @@ module JsDuck
      docs.each_pair do |key, value|
        h[key] = docs[key] || code[key] || defaults[key]
      end
      # Add items only detected in code.
      code.each_pair do |key, value|
        h[key] = value unless h.has_key?(key)
      end

      h[:name] = merge_name(docs, code)
      h[:id] = JsDuck::Class.member_id(h)