class JsDuck::Tag::Class
Public Class Methods
new()
click to toggle source
# File lib/jsduck/tag/class.rb, line 5 def initialize @pattern = "class" @tagname = :class @class_icon = { :small => File.dirname(__FILE__) + "/icons/class.png", :large => File.dirname(__FILE__) + "/icons/class-large.png", :redirect => File.dirname(__FILE__) + "/icons/class-redirect.png", :priority => PRIORITY_CLASS, } end
Public Instance Methods
merge(h, docs, code)
click to toggle source
# File lib/jsduck/tag/class.rb, line 41 def merge(h, docs, code) # Ensure the empty members array. h[:members] = [] # Ignore extending of the Object class h[:extends] = nil if h[:extends] == "Object" # Default alternateClassNames list to empty array h[:alternateClassNames] = [] unless h[:alternateClassNames] # Turn :aliases field into hash h[:aliases] = build_aliases_hash(h[:aliases] || []) # Takes the :enum always from docs, but the :doc_only can come # from either code or docs. if docs[:enum] h[:enum] = docs[:enum] h[:enum][:doc_only] = docs[:enum][:doc_only] || (code[:enum] && code[:enum][:doc_only]) end end
parse_doc(p, pos)
click to toggle source
@class name
# File lib/jsduck/tag/class.rb, line 17 def parse_doc(p, pos) { :tagname => :class, :name => p.ident_chain, } end
process_code(code)
click to toggle source
Although class is not a member, it also has the auto-detected part from code. So this method gets called by Merger
.
If we did detect code as a class use all the auto-detected fields, otherwise use only the name field.
# File lib/jsduck/tag/class.rb, line 33 def process_code(code) if code[:tagname] == :class code else {:name => code[:name] } end end
process_doc(h, tags, pos)
click to toggle source
# File lib/jsduck/tag/class.rb, line 24 def process_doc(h, tags, pos) h[:name] = tags[0][:name] end
Private Instance Methods
build_aliases_hash(aliases)
click to toggle source
Given array of full alias names like “foo.bar”, “foo.baz” build hash like {“foo” => [“bar”, “baz”]}
# File lib/jsduck/tag/class.rb, line 63 def build_aliases_hash(aliases) hash={} aliases.each do |a| if a =~ /^([^.]+)\.(.+)$/ if hash[$1] hash[$1] << $2 else hash[$1] = [$2] end end end hash end