jsduck 3.0.1 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|