Sha256: 83ca0450168356c0efeab5418352e53f3a6c3b956c6d7190a9732b7d6022bbeb
Contents?: true
Size: 1.28 KB
Versions: 4
Compression:
Stored size: 1.28 KB
Contents
require 'jsduck/logger' module JsDuck class Aliases def initialize(relations) @relations = relations end def resolve_all @relations.each do |cls| cls.each_member do |member| if member[:alias] resolve(member) end end end end # Copy over doc/params/return from original member to alias. def resolve(al) orig = find_original(al) al[:doc] = al[:doc] + "\n\n" + orig[:doc] al[:params] = orig[:params] if orig[:params] al[:return] = orig[:return] if orig[:return] end # Given aliased member, finds the original member. # If the original also happens to be an alias, continue recursively. def find_original(al) al_def = al[:alias] orig = @relations[al_def[:cls]] unless orig Logger.instance.warn("Class #{al_def[:cls]} not found in #{al[:filename]} line #{al[:linenr]}") return al end orig = orig.get_member(al_def[:member], al_def[:type] || al[:tagname]) unless orig Logger.instance.warn("Member #{al_def[:cls]}##{al_def[:member]} not found in #{al[:filename]} line #{al[:linenr]}") return al end if orig[:alias] find_original(orig) else orig end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
jsduck-3.0.pre2 | lib/jsduck/aliases.rb |
jsduck-3.0.pre | lib/jsduck/aliases.rb |
jsduck-2.0.pre4 | lib/jsduck/aliases.rb |
jsduck-2.0.pre2 | lib/jsduck/aliases.rb |