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

Move mixins docs processing to @mixins Tag class.

For this to work out correctly, the application of default values
in merger needed to be changes so that defaults get applied even
when the field doesn't exist in neither docs or code hash.
parent e6817679
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -43,7 +43,6 @@ module JsDuck
        :tagname => :class,
        :name => detect_name(:class, doc_map),
        :doc => detect_doc(docs),
        :mixins => detect_list(:mixins, doc_map),
        :alternateClassNames => detect_list(:alternateClassNames, doc_map),
        :aliases => detect_aliases(doc_map),
        :requires => detect_list(:requires, doc_map),
+4 −0
Original line number Diff line number Diff line
@@ -85,6 +85,10 @@ module JsDuck
      code.each_pair do |key, value|
        h[key] = value unless h.has_key?(key)
      end
      # Add defaults if not yet applied
      defaults.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)
+5 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ module JsDuck::Tag
  class Mixins < Tag
    def initialize
      @pattern = ["mixin", "mixins"]
      @key = :mixins
      @ext_define_pattern = "mixins"
      @ext_define_default = {:mixins => []}
    end
@@ -14,6 +15,10 @@ module JsDuck::Tag
      p.classname_list(:mixins)
    end

    def process_doc(tags)
      tags.map {|d| d[@key] }.flatten
    end

    def parse_ext_define(cls, ast)
      cls[:mixins] = to_mixins_array(ast)
    end