jsduck 4.0.beta2 → 4.0.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/.gitignore +0 -1
- data/README.md +40 -20
- data/Rakefile +2 -11
- data/esprima/esprima.js +3581 -0
- data/js-classes/String.js +1 -1
- data/jsduck.gemspec +3 -5
- data/lib/jsduck/aggregator.rb +6 -3
- data/lib/jsduck/app.rb +9 -5
- data/lib/jsduck/ast.rb +4 -2
- data/lib/jsduck/class.rb +11 -3
- data/lib/jsduck/css_parser.rb +3 -2
- data/lib/jsduck/doc_ast.rb +1 -0
- data/lib/jsduck/doc_formatter.rb +3 -3
- data/lib/jsduck/doc_parser.rb +10 -0
- data/lib/jsduck/esprima.rb +7 -9
- data/lib/jsduck/examples.rb +1 -1
- data/lib/jsduck/file_categories.rb +3 -3
- data/lib/jsduck/grouped_asset.rb +2 -2
- data/lib/jsduck/guides.rb +4 -4
- data/lib/jsduck/importer.rb +25 -6
- data/lib/jsduck/inherit_doc.rb +3 -0
- data/lib/jsduck/inline_video.rb +4 -4
- data/lib/jsduck/js_parser.rb +2 -1
- data/lib/jsduck/json_duck.rb +2 -1
- data/lib/jsduck/logger.rb +42 -9
- data/lib/jsduck/option_parser.rb +109 -0
- data/lib/jsduck/options.rb +352 -176
- data/lib/jsduck/override.rb +87 -0
- data/lib/jsduck/tag/chainable.rb +14 -0
- data/lib/jsduck/videos.rb +1 -1
- metadata +10 -10
- data/Gemfile +0 -4
- data/Gemfile.lock +0 -45
- data/lib/jsduck/markdown.rb +0 -46
@@ -0,0 +1,87 @@
|
|
1
|
+
module JsDuck
|
2
|
+
|
3
|
+
class Override
|
4
|
+
def initialize(classes_hash, classes_array)
|
5
|
+
@classes_hash = classes_hash
|
6
|
+
@classes_array = classes_array
|
7
|
+
end
|
8
|
+
|
9
|
+
# Applies all override classes to target classes
|
10
|
+
def process_all!
|
11
|
+
overrides = []
|
12
|
+
|
13
|
+
@classes_array.each do |cls|
|
14
|
+
if cls[:override]
|
15
|
+
process(cls)
|
16
|
+
overrides << cls
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# Discard override classes
|
21
|
+
overrides.each do |cls|
|
22
|
+
@classes_hash.delete(cls[:name])
|
23
|
+
@classes_array.delete(cls)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
# Applies override class to target class
|
30
|
+
def process(override)
|
31
|
+
target = @classes_hash[override[:override]]
|
32
|
+
unless target
|
33
|
+
ctx = override[:files][0]
|
34
|
+
return Logger.instance.warn(:extend, "Class #{override[:override]} not found", ctx[:filename], ctx[:linenr])
|
35
|
+
end
|
36
|
+
|
37
|
+
# Combine comments of classes
|
38
|
+
if override[:doc].length > 0
|
39
|
+
add_doc(target, "**From override #{override[:name]}:** " + override[:doc])
|
40
|
+
end
|
41
|
+
target[:files] += override[:files]
|
42
|
+
|
43
|
+
# Build lookup table of existing members
|
44
|
+
existing = {}
|
45
|
+
each_member(target) do |m|
|
46
|
+
existing[m[:id]] = m
|
47
|
+
end
|
48
|
+
|
49
|
+
# When the same member exists in overridden class, just append
|
50
|
+
# the docs. Otherwise add the member as a whole to the class.
|
51
|
+
each_member(override) do |m|
|
52
|
+
ex = existing[m[:id]]
|
53
|
+
if ex
|
54
|
+
if m[:doc].length > 0
|
55
|
+
add_doc(ex, "**From override #{override[:name]}:** " + m[:doc])
|
56
|
+
else
|
57
|
+
add_doc(ex, "**Overridden in #{override[:name]}.**")
|
58
|
+
end
|
59
|
+
ex[:files] += m[:files]
|
60
|
+
else
|
61
|
+
add_member(target, m)
|
62
|
+
add_doc(m, "**Defined in override #{override[:name]}.**")
|
63
|
+
m[:owner] = target[:name]
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
# helpers
|
69
|
+
|
70
|
+
def each_member(cls)
|
71
|
+
[:members, :statics].each do |category|
|
72
|
+
cls[category].each_pair do |key, members|
|
73
|
+
members.each {|m| yield m }
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def add_member(cls, m)
|
79
|
+
cls[m[:static] ? :statics : :members][m[:tagname]] << m
|
80
|
+
end
|
81
|
+
|
82
|
+
def add_doc(m, doc)
|
83
|
+
m[:doc] = (m[:doc] + "\n\n" + doc).strip
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require "jsduck/meta_tag"
|
2
|
+
|
3
|
+
module JsDuck::Tag
|
4
|
+
# Implementation of @chainable tag
|
5
|
+
class Chainable < JsDuck::MetaTag
|
6
|
+
def initialize
|
7
|
+
@name = "chainable"
|
8
|
+
@key = :chainable
|
9
|
+
@signature = {:long => "chainable", :short => ">"} # show small right-arrow
|
10
|
+
@boolean = true
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
data/lib/jsduck/videos.rb
CHANGED
@@ -18,7 +18,7 @@ module JsDuck
|
|
18
18
|
def initialize(filename)
|
19
19
|
@groups = JsonDuck.read(filename)
|
20
20
|
add_names_if_missing
|
21
|
-
build_map_by_name("Two videos have the same name")
|
21
|
+
build_map_by_name("Two videos have the same name", filename)
|
22
22
|
end
|
23
23
|
|
24
24
|
# Each video should have a name, which is used in URL to reference the video.
|
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jsduck
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
5
|
-
prerelease:
|
4
|
+
version: 4.0.0
|
5
|
+
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Rene Saarsoo
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-08-
|
13
|
+
date: 2012-08-09 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rdiscount
|
@@ -61,7 +61,7 @@ dependencies:
|
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '0'
|
63
63
|
- !ruby/object:Gem::Dependency
|
64
|
-
name:
|
64
|
+
name: therubyracer
|
65
65
|
requirement: !ruby/object:Gem::Requirement
|
66
66
|
none: false
|
67
67
|
requirements:
|
@@ -133,13 +133,12 @@ extra_rdoc_files: []
|
|
133
133
|
files:
|
134
134
|
- .gitignore
|
135
135
|
- COPYING
|
136
|
-
- Gemfile
|
137
|
-
- Gemfile.lock
|
138
136
|
- README.md
|
139
137
|
- Rakefile
|
140
138
|
- bin/compare
|
141
139
|
- bin/graph
|
142
140
|
- bin/jsduck
|
141
|
+
- esprima/esprima.js
|
143
142
|
- js-classes/Array.js
|
144
143
|
- js-classes/Boolean.js
|
145
144
|
- js-classes/Date.js
|
@@ -194,14 +193,15 @@ files:
|
|
194
193
|
- lib/jsduck/lexer.rb
|
195
194
|
- lib/jsduck/lint.rb
|
196
195
|
- lib/jsduck/logger.rb
|
197
|
-
- lib/jsduck/markdown.rb
|
198
196
|
- lib/jsduck/merger.rb
|
199
197
|
- lib/jsduck/meta_tag.rb
|
200
198
|
- lib/jsduck/meta_tag_loader.rb
|
201
199
|
- lib/jsduck/meta_tag_registry.rb
|
202
200
|
- lib/jsduck/null_object.rb
|
201
|
+
- lib/jsduck/option_parser.rb
|
203
202
|
- lib/jsduck/options.rb
|
204
203
|
- lib/jsduck/os.rb
|
204
|
+
- lib/jsduck/override.rb
|
205
205
|
- lib/jsduck/parallel_wrap.rb
|
206
206
|
- lib/jsduck/relations.rb
|
207
207
|
- lib/jsduck/renderer.rb
|
@@ -215,6 +215,7 @@ files:
|
|
215
215
|
- lib/jsduck/tag/abstract.rb
|
216
216
|
- lib/jsduck/tag/aside.rb
|
217
217
|
- lib/jsduck/tag/author.rb
|
218
|
+
- lib/jsduck/tag/chainable.rb
|
218
219
|
- lib/jsduck/tag/deprecated.rb
|
219
220
|
- lib/jsduck/tag/docauthor.rb
|
220
221
|
- lib/jsduck/tag/hide.rb
|
@@ -668,7 +669,6 @@ files:
|
|
668
669
|
- template-min/extjs/ext-all.js
|
669
670
|
- template-min/build-js.html
|
670
671
|
- template-min/index.php
|
671
|
-
- esprima/esprima.js
|
672
672
|
homepage: https://github.com/senchalabs/jsduck
|
673
673
|
licenses: []
|
674
674
|
post_install_message:
|
@@ -684,9 +684,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
684
684
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
685
685
|
none: false
|
686
686
|
requirements:
|
687
|
-
- - ! '
|
687
|
+
- - ! '>='
|
688
688
|
- !ruby/object:Gem::Version
|
689
|
-
version: 1.3.
|
689
|
+
version: 1.3.5
|
690
690
|
requirements: []
|
691
691
|
rubyforge_project: jsduck
|
692
692
|
rubygems_version: 1.8.24
|
data/Gemfile
DELETED
data/Gemfile.lock
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
jsduck (3.11.0)
|
5
|
-
execjs
|
6
|
-
json
|
7
|
-
parallel
|
8
|
-
rdiscount
|
9
|
-
|
10
|
-
GEM
|
11
|
-
remote: http://rubygems.org/
|
12
|
-
specs:
|
13
|
-
chunky_png (1.2.5)
|
14
|
-
compass (0.12.2)
|
15
|
-
chunky_png (~> 1.2)
|
16
|
-
fssm (>= 0.2.7)
|
17
|
-
sass (~> 3.1)
|
18
|
-
diff-lcs (1.1.3)
|
19
|
-
execjs (1.4.0)
|
20
|
-
multi_json (~> 1.0)
|
21
|
-
fssm (0.2.9)
|
22
|
-
json (1.7.3)
|
23
|
-
multi_json (1.3.6)
|
24
|
-
parallel (0.5.17)
|
25
|
-
rake (0.9.2.2)
|
26
|
-
rdiscount (1.6.8)
|
27
|
-
rspec (2.10.0)
|
28
|
-
rspec-core (~> 2.10.0)
|
29
|
-
rspec-expectations (~> 2.10.0)
|
30
|
-
rspec-mocks (~> 2.10.0)
|
31
|
-
rspec-core (2.10.1)
|
32
|
-
rspec-expectations (2.10.0)
|
33
|
-
diff-lcs (~> 1.1.3)
|
34
|
-
rspec-mocks (2.10.1)
|
35
|
-
sass (3.1.19)
|
36
|
-
|
37
|
-
PLATFORMS
|
38
|
-
ruby
|
39
|
-
x86-mingw32
|
40
|
-
|
41
|
-
DEPENDENCIES
|
42
|
-
compass
|
43
|
-
jsduck!
|
44
|
-
rake
|
45
|
-
rspec
|
data/lib/jsduck/markdown.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
|
2
|
-
module JsDuck
|
3
|
-
|
4
|
-
# Wrapper which chooses the available Markdown implementation and
|
5
|
-
# provides a uniform interface to it.
|
6
|
-
#
|
7
|
-
# Possible engines in order of preference:
|
8
|
-
#
|
9
|
-
# - rdiscount
|
10
|
-
# - kramdown
|
11
|
-
#
|
12
|
-
class Markdown
|
13
|
-
|
14
|
-
if RUBY_PLATFORM == "java"
|
15
|
-
require "kramdown"
|
16
|
-
begin
|
17
|
-
@@engine = :kramdown
|
18
|
-
rescue LoadError
|
19
|
-
throw "ERROR: Kramdown gem not available."
|
20
|
-
end
|
21
|
-
else
|
22
|
-
begin
|
23
|
-
require "rdiscount"
|
24
|
-
@@engine = :rdiscount
|
25
|
-
rescue LoadError
|
26
|
-
begin
|
27
|
-
require "kramdown"
|
28
|
-
@@engine = :kramdown
|
29
|
-
rescue LoadError
|
30
|
-
throw "ERROR: Neither RDiscount nor Kramdown gem available."
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
# Converts Markdown text into HTML
|
36
|
-
def self.to_html(input)
|
37
|
-
if @@engine == :rdiscount
|
38
|
-
RDiscount.new(input).to_html
|
39
|
-
else
|
40
|
-
Kramdown::Document.new(input).to_html
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
end
|
45
|
-
|
46
|
-
end
|