jsduck 4.3.1 → 4.3.2

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/Rakefile CHANGED
@@ -162,20 +162,9 @@ class JsDuckRunner
162
162
  @options += options
163
163
  end
164
164
 
165
- # Enables comments when CORS is supported by browser.
166
- # This excludes Opera and IE < 8.
167
- # We check explicitly for IE version to make sure the code works the
168
- # same way in both real IE7 and IE7-mode of IE8/9.
169
165
  def add_comments(db_name, version)
170
- comments_base_url = "http://localhost:3000/auth"
171
- @options += ["--head-html", <<-EOHTML]
172
- <script type="text/javascript">
173
- Docs.enableComments = ("withCredentials" in new XMLHttpRequest()) || (Ext.ieVersion >= 8);
174
- Docs.baseUrl = "#{comments_base_url}";
175
- Docs.commentsDb = "#{db_name}";
176
- Docs.commentsVersion = "#{version}";
177
- </script>
178
- EOHTML
166
+ add_options("--comments-url", "http://localhost:3000/auth")
167
+ add_options("--comments-domain", db_name+"/"+version)
179
168
  end
180
169
 
181
170
  def add_ext4
data/jsduck.gemspec CHANGED
@@ -2,8 +2,8 @@ Gem::Specification.new do |s|
2
2
  s.required_rubygems_version = ">= 1.3.5"
3
3
 
4
4
  s.name = 'jsduck'
5
- s.version = '4.3.1'
6
- s.date = '2012-10-24'
5
+ s.version = '4.3.2'
6
+ s.date = '2012-10-26'
7
7
  s.summary = "Simple JavaScript Duckumentation generator"
8
8
  s.description = "Documentation generator for Sencha JS frameworks"
9
9
  s.homepage = "https://github.com/senchalabs/jsduck"
@@ -28,6 +28,8 @@ module JsDuck
28
28
  :showPrintButton => @opts.seo,
29
29
  :touchExamplesUi => @opts.touch_examples_ui,
30
30
  :source => @opts.source,
31
+ :commentsUrl => @opts.comments_url,
32
+ :commentsDomain => @opts.comments_domain,
31
33
  }
32
34
  }) + ";\n"
33
35
  File.open(filename, 'w') {|f| f.write(js) }
@@ -0,0 +1,39 @@
1
+ module JsDuck
2
+
3
+ # Checks for circular dependencies
4
+ class CircularDeps
5
+
6
+ # Checks class for circular dependencies.
7
+ #
8
+ # When all OK, returns false.
9
+ #
10
+ # When circular dependencies found returns a string describing the
11
+ # problematic dependency chain e.g. "Foo extends Bar mixins Foo".
12
+ def check(cls, names = [])
13
+ names += [cls[:name]]
14
+
15
+ if cls.parent && chain = track_circular(" extends ", cls.parent, names)
16
+ return chain
17
+ end
18
+
19
+ cls.mixins.each do |mixin|
20
+ if chain = track_circular(" mixins ", mixin, names)
21
+ return chain
22
+ end
23
+ end
24
+
25
+ false
26
+ end
27
+
28
+ def track_circular(type, cls, names)
29
+ names += [type]
30
+ if names.include?(cls[:name])
31
+ (names + [cls[:name]]).join("")
32
+ else
33
+ check(cls, names)
34
+ end
35
+ end
36
+
37
+ end
38
+
39
+ end
@@ -17,7 +17,6 @@ module JsDuck
17
17
  def write
18
18
  if @opts.seo
19
19
  FileUtils.cp(@opts.template_dir+"/index.php", @opts.output_dir+"/index.php")
20
- FileUtils.cp(@opts.template_dir+"/Mobile_Detect.php", @opts.output_dir+"/Mobile_Detect.php")
21
20
  create_template_html(@opts.template_dir+"/template.html", @opts.output_dir+"/template.html")
22
21
  create_print_template_html(@opts.template_dir+"/print-template.html", @opts.output_dir+"/print-template.html")
23
22
  create_index_template_html(@opts.template_dir+"/index-template.html", @opts.output_dir+"/index-template.html")
@@ -31,6 +30,7 @@ module JsDuck
31
30
  def create_template_html(in_file, out_file)
32
31
  write_template(in_file, out_file, {
33
32
  "{title}" => @opts.title,
33
+ "{mobile_redirect}" => @opts.seo ? include_script(@opts.template_dir+"/mobile-redirect.js") : "",
34
34
  "{header}" => @opts.header,
35
35
  "{footer}" => "<div id='footer-content' style='display: none'>#{@opts.footer}</div>",
36
36
  "{extjs_path}" => @opts.extjs_path,
@@ -61,6 +61,10 @@ module JsDuck
61
61
  })
62
62
  end
63
63
 
64
+ def include_script(filename)
65
+ "<script type='text/javascript'>\n" + Util::IO.read(filename) + "\n</script>"
66
+ end
67
+
64
68
  # Opens in_file, replaces {keys} inside it, writes to out_file
65
69
  def write_template(in_file, out_file, replacements)
66
70
  Logger.log("Writing", out_file)
data/lib/jsduck/lint.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'jsduck/logger'
2
2
  require 'jsduck/class'
3
+ require 'jsduck/circular_deps'
3
4
 
4
5
  module JsDuck
5
6
 
@@ -20,6 +21,7 @@ module JsDuck
20
21
  warn_duplicate_members
21
22
  warn_singleton_statics
22
23
  warn_empty_enums
24
+ fail_on_circular_dependencies
23
25
  end
24
26
 
25
27
  # print warning for each member or parameter with no name
@@ -117,6 +119,17 @@ module JsDuck
117
119
  end
118
120
  end
119
121
 
122
+ # Print fatal error message for circular dependency.
123
+ def fail_on_circular_dependencies
124
+ circular_deps = CircularDeps.new
125
+ @relations.each do |cls|
126
+ if chain = circular_deps.check(cls)
127
+ Logger.fatal("Class #{cls[:name]} has a circular dependency: #{chain}")
128
+ exit 1
129
+ end
130
+ end
131
+ end
132
+
120
133
  # Loops through all members of all classes
121
134
  def each_member(&block)
122
135
  @relations.each {|cls| cls.all_local_members.each(&block) }
@@ -37,6 +37,8 @@ module JsDuck
37
37
  attr_accessor :eg_iframe
38
38
  attr_accessor :examples_base_url
39
39
  attr_accessor :tests
40
+ attr_accessor :comments_url
41
+ attr_accessor :comments_domain
40
42
 
41
43
  # Debugging
42
44
  attr_accessor :template_dir
@@ -79,7 +81,7 @@ module JsDuck
79
81
  @ext4_events = nil
80
82
  @meta_tag_paths = []
81
83
 
82
- @version = "4.3.1"
84
+ @version = "4.3.2"
83
85
 
84
86
  # Customizing output
85
87
  @title = "Documentation - JSDuck"
@@ -103,6 +105,8 @@ module JsDuck
103
105
  @eg_iframe = nil
104
106
  @examples_base_url = "extjs-build/examples/"
105
107
  @tests = false
108
+ @comments_url = nil
109
+ @comments_domain = nil
106
110
 
107
111
  # Debugging
108
112
  @root_dir = File.dirname(File.dirname(File.dirname(__FILE__)))
@@ -376,6 +380,24 @@ module JsDuck
376
380
  @new_since = v
377
381
  end
378
382
 
383
+ opts.on('--comments-url=URL',
384
+ "Address of comments server.",
385
+ "",
386
+ "For example: http://projects.sencha.com/auth",
387
+ "",
388
+ "Must be used together with --comments-domain option.") do |url|
389
+ @comments_url = url
390
+ end
391
+
392
+ opts.on('--comments-domain=STRING',
393
+ "A string consisting of <name>/<version>.",
394
+ "",
395
+ "For example: ext-js/4",
396
+ "",
397
+ "Must be used together with --comments-url option.") do |domain|
398
+ @comments_domain = domain
399
+ end
400
+
379
401
  opts.separator ""
380
402
  opts.separator "Tweaking:"
381
403
  opts.separator ""
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsduck
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.3.1
4
+ version: 4.3.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-10-24 00:00:00.000000000 Z
13
+ date: 2012-10-26 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rdiscount
@@ -159,6 +159,7 @@ files:
159
159
  - lib/jsduck/batch_formatter.rb
160
160
  - lib/jsduck/batch_parser.rb
161
161
  - lib/jsduck/categories.rb
162
+ - lib/jsduck/circular_deps.rb
162
163
  - lib/jsduck/class.rb
163
164
  - lib/jsduck/class_doc_expander.rb
164
165
  - lib/jsduck/class_formatter.rb
@@ -629,7 +630,6 @@ files:
629
630
  - template-min/app.js
630
631
  - template-min/index.php
631
632
  - template-min/build-js.html
632
- - template-min/Mobile_Detect.php
633
633
  - template-min/resources/css/app.css
634
634
  - template-min/resources/images/link-green-standard.png
635
635
  - template-min/resources/images/class-m.png
@@ -683,6 +683,7 @@ files:
683
683
  - template-min/resources/images/group-expand-sprite.gif
684
684
  - template-min/resources/prettify/prettify.css
685
685
  - template-min/resources/prettify/prettify.js
686
+ - template-min/mobile-redirect.js
686
687
  homepage: https://github.com/senchalabs/jsduck
687
688
  licenses: []
688
689
  post_install_message: