jsduck 3.0.1 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +1 -1
- data/Rakefile +73 -41
- data/js-classes/String.js +10 -8
- data/jsduck.gemspec +2 -2
- data/lib/jsduck/accessors.rb +3 -0
- data/lib/jsduck/aggregator.rb +34 -1
- data/lib/jsduck/api_exporter.rb +48 -0
- data/lib/jsduck/app.rb +47 -182
- data/lib/jsduck/app_data.rb +34 -0
- data/lib/jsduck/{exporter.rb → app_exporter.rb} +21 -19
- data/lib/jsduck/categories.rb +13 -62
- data/lib/jsduck/class.rb +23 -9
- data/lib/jsduck/class_formatter.rb +2 -2
- data/lib/jsduck/class_writer.rb +49 -0
- data/lib/jsduck/doc_formatter.rb +16 -8
- data/lib/jsduck/doc_parser.rb +42 -36
- data/lib/jsduck/examples.rb +9 -5
- data/lib/jsduck/file_categories.rb +65 -0
- data/lib/jsduck/full_exporter.rb +29 -0
- data/lib/jsduck/guides.rb +12 -10
- data/lib/jsduck/images.rb +2 -2
- data/lib/jsduck/index_html.rb +67 -0
- data/lib/jsduck/inherit_doc.rb +75 -0
- data/lib/jsduck/js_parser.rb +8 -1
- data/lib/jsduck/lint.rb +9 -9
- data/lib/jsduck/logger.rb +64 -6
- data/lib/jsduck/merger.rb +29 -25
- data/lib/jsduck/null_object.rb +19 -0
- data/lib/jsduck/options.rb +46 -20
- data/lib/jsduck/renderer.rb +24 -18
- data/lib/jsduck/search_data.rb +2 -2
- data/lib/jsduck/source_writer.rb +19 -6
- data/lib/jsduck/stats.rb +103 -0
- data/lib/jsduck/template_dir.rb +51 -0
- data/lib/jsduck/videos.rb +9 -6
- data/lib/jsduck/welcome.rb +14 -8
- data/opt/extjs-welcome.html +74 -0
- data/opt/touch-iframe.html +85 -0
- data/opt/touch-welcome.html +122 -0
- metadata +401 -389
- data/bin/stats +0 -92
- data/lib/jsduck/aliases.rb +0 -54
data/bin/stats
DELETED
@@ -1,92 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# Print stats for JSON export
|
3
|
-
|
4
|
-
# For running when gem not installed
|
5
|
-
$:.unshift File.dirname(File.dirname(__FILE__)) + "/lib"
|
6
|
-
|
7
|
-
require "rubygems"
|
8
|
-
require "jsduck/json_duck"
|
9
|
-
|
10
|
-
def read_all_classes(dir)
|
11
|
-
classes = []
|
12
|
-
Dir[dir+"/*.json"].each do |filename|
|
13
|
-
print "."
|
14
|
-
STDOUT.flush
|
15
|
-
classes << JsDuck::JsonDuck.read(filename)
|
16
|
-
end
|
17
|
-
puts "OK"
|
18
|
-
classes
|
19
|
-
end
|
20
|
-
|
21
|
-
def count_members(classes, group, type)
|
22
|
-
classes.map do |c|
|
23
|
-
c[group][type].find_all {|m| m["owner"] == c["name"] }
|
24
|
-
end.flatten.length
|
25
|
-
end
|
26
|
-
|
27
|
-
# Strips HTML and counts words in text
|
28
|
-
def wc(string)
|
29
|
-
string.gsub(/<\/?[^>]*>/, "").scan(/\w+/).size
|
30
|
-
end
|
31
|
-
|
32
|
-
def property_wc(property)
|
33
|
-
cnt = wc(property["doc"])
|
34
|
-
(property["properties"] || []).each {|p| cnt += property_wc(p) }
|
35
|
-
cnt
|
36
|
-
end
|
37
|
-
|
38
|
-
def class_wc(cls)
|
39
|
-
cnt = wc(cls["doc"])
|
40
|
-
["members", "statics"].each do |group|
|
41
|
-
cls[group].each_value do |members|
|
42
|
-
members.find_all {|m| m["owner"] == cls["name"] }.each do |m|
|
43
|
-
cnt += wc(m["doc"])
|
44
|
-
(m["params"] || []).each {|p| cnt += property_wc(p) }
|
45
|
-
(m["properties"] || []).each {|p| cnt += property_wc(p) }
|
46
|
-
cnt += wc(m["return"]["doc"]) if m["return"]
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
cnt
|
51
|
-
end
|
52
|
-
|
53
|
-
classes = read_all_classes(ARGV[0])
|
54
|
-
|
55
|
-
puts "%d classes in total" % classes.length
|
56
|
-
puts "%d public classes" % classes.find_all {|c| !c["private"] }.length
|
57
|
-
puts "%d private classes" % classes.find_all {|c| c["private"] }.length
|
58
|
-
puts
|
59
|
-
|
60
|
-
mem = count_members(classes, "members", "cfg")
|
61
|
-
sta = count_members(classes, "statics", "cfg")
|
62
|
-
puts "%d public cfgs" % (mem+sta)
|
63
|
-
puts " %d instance" % mem
|
64
|
-
puts " %d static" % sta
|
65
|
-
|
66
|
-
mem = count_members(classes, "members", "property")
|
67
|
-
sta = count_members(classes, "statics", "property")
|
68
|
-
puts "%d public properties" % (mem+sta)
|
69
|
-
puts " %d instance" % mem
|
70
|
-
puts " %d static" % sta
|
71
|
-
|
72
|
-
mem = count_members(classes, "members", "method")
|
73
|
-
sta = count_members(classes, "statics", "method")
|
74
|
-
puts "%d public methods" % (mem+sta)
|
75
|
-
puts " %d instance" % mem
|
76
|
-
puts " %d static" % sta
|
77
|
-
|
78
|
-
mem = count_members(classes, "members", "event")
|
79
|
-
sta = count_members(classes, "statics", "event")
|
80
|
-
puts "%d public events" % (mem+sta)
|
81
|
-
puts " %d instance" % mem
|
82
|
-
puts " %d static" % sta
|
83
|
-
|
84
|
-
puts
|
85
|
-
puts "Word counts"
|
86
|
-
puts "-----------"
|
87
|
-
classes.map {|cls| [cls, class_wc(cls)] }.sort {|a,b| a[1] <=> b[1] }.each do |pair|
|
88
|
-
puts "%d %s" % [pair[1], pair[0]["name"]]
|
89
|
-
end
|
90
|
-
|
91
|
-
puts
|
92
|
-
puts "%d total words in documentation" % classes.map {|cls| class_wc(cls) }.inject(0) {|a,b| a+b }
|
data/lib/jsduck/aliases.rb
DELETED
@@ -1,54 +0,0 @@
|
|
1
|
-
require 'jsduck/logger'
|
2
|
-
|
3
|
-
module JsDuck
|
4
|
-
|
5
|
-
class Aliases
|
6
|
-
def initialize(relations)
|
7
|
-
@relations = relations
|
8
|
-
end
|
9
|
-
|
10
|
-
def resolve_all
|
11
|
-
@relations.each do |cls|
|
12
|
-
cls.each_member do |member|
|
13
|
-
if member[:alias]
|
14
|
-
resolve(member)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
# Copy over doc/params/return from original member to alias.
|
21
|
-
def resolve(al)
|
22
|
-
orig = find_original(al)
|
23
|
-
al[:doc] = al[:doc] + "\n\n" + orig[:doc]
|
24
|
-
al[:params] = orig[:params] if orig[:params]
|
25
|
-
al[:return] = orig[:return] if orig[:return]
|
26
|
-
end
|
27
|
-
|
28
|
-
# Given aliased member, finds the original member.
|
29
|
-
# If the original also happens to be an alias, continue recursively.
|
30
|
-
def find_original(al)
|
31
|
-
context = al[:files][0]
|
32
|
-
al_def = al[:alias]
|
33
|
-
|
34
|
-
orig = @relations[al_def[:cls]]
|
35
|
-
unless orig
|
36
|
-
Logger.instance.warn("Class #{al_def[:cls]} not found", context[:filename], context[:linenr])
|
37
|
-
return al
|
38
|
-
end
|
39
|
-
orig = orig.get_member(al_def[:member], al_def[:type] || al[:tagname])
|
40
|
-
unless orig
|
41
|
-
Logger.instance.warn("Member #{al_def[:cls]}##{al_def[:member]} not found", context[:filename], context[:linenr])
|
42
|
-
return al
|
43
|
-
end
|
44
|
-
|
45
|
-
if orig[:alias]
|
46
|
-
find_original(orig)
|
47
|
-
else
|
48
|
-
orig
|
49
|
-
end
|
50
|
-
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
end
|