docjs 0.2 → 0.2.1

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.
@@ -1,5 +1,6 @@
1
1
  module Generator
2
2
 
3
+ # renders the api_index.html file containing all documented elements as alphabetic listing
3
4
  class ApiIndexGenerator < Generator
4
5
 
5
6
  describe 'renders the api_index.html file containing all documented elements as alphabetic listing'
@@ -1,5 +1,7 @@
1
1
  module Generator
2
2
 
3
+ # renders documented objects type-dependant (Functions and Objects). Each CodeObject is rendered to
4
+ # it's own page. The path is calculated using {Helper::Linker#path_to}
3
5
  class ApiPagesGenerator < Generator
4
6
 
5
7
  describe 'renders documented objects type-dependant (Functions and Objects)'
@@ -1,5 +1,7 @@
1
1
  module Generator
2
2
 
3
+ # renders all specified Markdown files to static documentation. The path to each documentation-page
4
+ # is derived from it's position in the Dom, using {Helper::Linker#path_to}.
3
5
  class DocsGenerator < Generator
4
6
 
5
7
  describe 'renders all specified Markdown files to static documentation'
@@ -1,5 +1,21 @@
1
1
  module Generator
2
2
 
3
+ # renders all documented objects to a json file. Objects and Functions are handled seperatly.
4
+ # Needed for the JavaScript-search / filter. Renders the file `js/apisearch-data.js` which looks
5
+ # like:
6
+ #
7
+ # J.data.apisearch = {
8
+ #
9
+ # "functions":[
10
+ # { "namespace":"Core",
11
+ # "fullname":"Core.extend",
12
+ # "path":"api/Core/extend.html",
13
+ # "name":".extend",
14
+ # "constructor":false
15
+ # },...],
16
+ #
17
+ # "objects": [...]
18
+ # }
3
19
  class JsonGenerator < Generator
4
20
 
5
21
  describe 'renders all documented objects to a json file. Objects and Functions are handled seperatly'
@@ -3,6 +3,7 @@
3
3
  # They are included in the Typed-RenderTask
4
4
  module Helper::Template
5
5
 
6
+ # Creates the html-signature of a function, including the markup for a tooltip
6
7
  def signature(method_or_token)
7
8
 
8
9
  if method_or_token.is_a? Token::Token
@@ -24,14 +25,16 @@ module Helper::Template
24
25
  "(#{return_types || 'Void'}) <span class='name'>#{method_or_token.name}</span>(<span class='params'>#{params}</span>)"
25
26
  end
26
27
 
27
- def subsection(id, opts = {})
28
- unless opts[:collection].nil? or opts[:collection].size == 0
29
- "<h3>#{opts[:title]}</h3><ul class=\"#{id} subsection\">" +
30
- render(:partial => opts[:partial], :collection => opts[:collection]) +
31
- "</ul>"
32
- end
33
- end
34
28
 
29
+ # Creates an hierarchy-overview, which can be seen in the sidebar. The direct parent and
30
+ # all children are listed in the overview:
31
+ #
32
+ # DocJs
33
+ # > CurrentNode
34
+ # ChildNode1
35
+ # ChildNode2
36
+ # ...
37
+ #
35
38
  def hierarchy(object)
36
39
 
37
40
  children = object.children.values.reject {|c| c.is_a? CodeObject::Function }
@@ -43,6 +46,20 @@ module Helper::Template
43
46
  "</ul>" * (parents.size + 2)
44
47
  end
45
48
 
49
+ # Creates the markup for the Api-Tree Browser in the heading-section. The JavaScript tree is
50
+ # powered by jquery-treeview by Jörn Zaefferer
51
+ #
52
+ # @example output
53
+ # <ul>
54
+ # <li class="object"><a href="api/Core.html"><span>Core</span></a>
55
+ # <ul>
56
+ # <li class="function"><a href="api/Core/extend.html"><span>extend</span></a>
57
+ # <li class="function"><a href="api/Core/extensions.html"><span>extensions</span></a>
58
+ # </ul>
59
+ # </ul>
60
+ #
61
+ # @see http://bassistance.de/jquery-plugins/jquery-plugin-treeview/
62
+ # @see http://docs.jquery.com/Plugins/Treeview
46
63
  def api_browser(root = Dom.root)
47
64
  if root == Dom.root
48
65
  output = ""
@@ -1,4 +1,19 @@
1
1
  @charset "UTF-8";
2
+ /*
3
+ * README
4
+ * ======
5
+ *
6
+ * The application.css is generated using SCSS (see http://sass-lang.com/). You can manipulate it
7
+ * yourself or edit the *.scss template files and afterwards run
8
+ *
9
+ * sass templates/resources/scss/application.scss:templates/resources/css/application.css`
10
+ *
11
+ * All needed partials (like `_print.scss`) will be required automatically through the use of `@import`.
12
+ *
13
+ * Please note, that all manual changes to application.css will be lost, by running the command
14
+ * above.
15
+ *
16
+ */
2
17
  /* Global Colors */
3
18
  /* Header-colors */
4
19
  /*#4096ee;*/
@@ -384,12 +399,12 @@ input:invalid, textarea:invalid {
384
399
  border: 1px solid #eee;
385
400
  padding: 0;
386
401
  margin: 0;
387
- overflow: hidden;
388
- /*overflow-y: scroll;*/ }
402
+ overflow: auto;
403
+ max-height: 450px; }
389
404
  #header .col50 section > ul::-webkit-scrollbar {
390
405
  width: 7px;
391
406
  height: 9px; }
392
- #header .col50 section > ul::-webkit-scrollbar-button:start:decrement, #header .col50 section > ul .iScroll ::-webkit-scrollbar-button:end:increment {
407
+ #header .col50 section > ul::-webkit-scrollbar-button:start:decrement, #header .col50 section > ul::-webkit-scrollbar-button:end:increment {
393
408
  display: block;
394
409
  height: 0;
395
410
  background-color: transparent; }
@@ -91,8 +91,8 @@
91
91
  border: 1px solid #eee;
92
92
  padding: 0; margin: 0;
93
93
 
94
- overflow: hidden;
95
- /*overflow-y: scroll;*/
94
+ overflow: auto;
95
+ max-height: 450px;
96
96
  }
97
97
  }
98
98
 
@@ -32,7 +32,8 @@ $golden_ratio: 1.618;
32
32
  /* inspired by http://docs.sencha.com/ext-js/4-0/ */
33
33
  @mixin scrollbars() {
34
34
  &::-webkit-scrollbar { width: 7px; height: 9px; }
35
- &::-webkit-scrollbar-button:start:decrement, .iScroll ::-webkit-scrollbar-button:end:increment { display: block; height: 0; background-color: transparent; }
35
+ &::-webkit-scrollbar-button:start:decrement,
36
+ &::-webkit-scrollbar-button:end:increment { display: block; height: 0; background-color: transparent; }
36
37
  &::-webkit-scrollbar-track-piece { -webkit-border-radius: 0; -webkit-border-bottom-right-radius: 4px; -webkit-border-bottom-left-radius: 4px; }
37
38
  &::-webkit-scrollbar-thumb:vertical { height: 50px; background-color: rgba(0, 0, 0, 0.15); -webkit-border-radius: 4px; }
38
39
  &::-webkit-scrollbar-thumb:horizontal { width: 50px; background-color: rgba(0, 0, 0, 0.15); -webkit-border-radius: 4px; }
@@ -94,4 +95,4 @@ $golden_ratio: 1.618;
94
95
  @mixin float($direction) {
95
96
  display: block;
96
97
  float: $direction;
97
- }
98
+ }
@@ -1,3 +1,18 @@
1
+ /*!
2
+ * README
3
+ * ======
4
+ *
5
+ * The application.css is generated using SCSS (see http://sass-lang.com/). You can manipulate it
6
+ * yourself or edit the *.scss template files and afterwards run
7
+ *
8
+ * sass templates/resources/scss/application.scss:templates/resources/css/application.css`
9
+ *
10
+ * All needed partials (like `_print.scss`) will be required automatically through the use of `@import`.
11
+ *
12
+ * Please note, that all manual changes to application.css will be lost, by running the command
13
+ * above.
14
+ *
15
+ */
1
16
  $default-fonts: Arial, sans-serif;
2
17
  $font-size: 10pt;
3
18
 
@@ -40,6 +40,16 @@ describe StringScanner, "#intelligent_skip_until" do
40
40
  end
41
41
  end
42
42
 
43
+ context "strings as code context (pattern from scope search)" do
44
+ before do
45
+ @scanner = StringScanner.new "var string = \"1234567\;\"\nsome more"
46
+ @scanner.intelligent_skip_until /\{|\(|\}|\)|$/
47
+ end
48
+
49
+ it "should find linebreak at pos 23" do
50
+ @scanner.pos.should == 23
51
+ end
52
+ end
43
53
 
44
54
  context "regular expressions" do
45
55
  before do
@@ -244,6 +244,50 @@ describe Parser::Parser, ".parse" do
244
244
  end
245
245
 
246
246
 
247
+ context "parsing regular expressions" do
248
+
249
+ before do
250
+
251
+ @comments = Parser::Parser.new("/**
252
+ * @function _dispatchResponse
253
+ */
254
+ function _dispatchResponse(response) {
255
+ var code = response.statusCode;
256
+ var data = response.data || response.rawData;
257
+
258
+ _respond(code.toString().replace(/\d{2}$/, 'XX'), data, response);
259
+ }").parse
260
+ end
261
+
262
+ subject { @comments.first }
263
+
264
+ it "should find the correct source" do
265
+ subject.source.should == "function _dispatchResponse(response) {
266
+ var code = response.statusCode;
267
+ var data = response.data || response.rawData;
268
+
269
+ _respond(code.toString().replace(/\d{2}$/, 'XX'), data, response);
270
+ }"
271
+ end
272
+ end
273
+
274
+ context "parsing strings and lineends correctly for scope" do
275
+ before do
276
+ @comments = Parser::Parser.new("/**
277
+ * @object someString
278
+ */
279
+ var string = \"1234567\";
280
+ ").parse
281
+ end
282
+
283
+ subject { @comments.first }
284
+
285
+ it "should parse the string correctly" do
286
+ subject.source.should == "var string = \"1234567\";\n"
287
+ end
288
+ end
289
+
290
+
247
291
  context "parsing multibyte character" do
248
292
 
249
293
  before do
metadata CHANGED
@@ -1,49 +1,56 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: docjs
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.1
4
5
  prerelease:
5
- version: "0.2"
6
6
  platform: ruby
7
- authors:
8
- - "Jonathan Brachth\xC3\xA4user"
7
+ authors:
8
+ - Jonathan Brachthäuser
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-06-28 00:00:00 +02:00
14
- default_executable: bin/docjs
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
12
+ date: 2012-10-06 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
17
15
  name: rdiscount
18
- prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
20
17
  none: false
21
- requirements:
22
- - - ">="
23
- - !ruby/object:Gem::Version
24
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
25
22
  type: :runtime
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
28
- name: thor
29
23
  prerelease: false
30
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: thor
32
+ requirement: !ruby/object:Gem::Requirement
31
33
  none: false
32
- requirements:
33
- - - ">="
34
- - !ruby/object:Gem::Version
35
- version: "0"
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
36
38
  type: :runtime
37
- version_requirements: *id002
38
- description: Create beautiful Javascript documentations with this ruby-gem. It's pretty easy to customize and add your own tokens/DSL.
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ description: Create beautiful Javascript documentations with this ruby-gem. It's pretty
47
+ easy to customize and add your own tokens/DSL.
39
48
  email: jonathan@b-studios.de
40
- executables:
49
+ executables:
41
50
  - docjs
42
51
  extensions: []
43
-
44
52
  extra_rdoc_files: []
45
-
46
- files:
53
+ files:
47
54
  - LICENSE.md
48
55
  - README.md
49
56
  - bin/docjs
@@ -157,33 +164,29 @@ files:
157
164
  - test/rspec_helper.rb
158
165
  - test/token/handler.rb
159
166
  - test/token/tokens.rb
160
- has_rdoc: true
161
167
  homepage: https://github.com/b-studios/doc.js
162
168
  licenses: []
163
-
164
169
  post_install_message:
165
170
  rdoc_options: []
166
-
167
- require_paths:
171
+ require_paths:
168
172
  - lib
169
- required_ruby_version: !ruby/object:Gem::Requirement
173
+ required_ruby_version: !ruby/object:Gem::Requirement
170
174
  none: false
171
- requirements:
172
- - - ">="
173
- - !ruby/object:Gem::Version
174
- version: "1.9"
175
- required_rubygems_version: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - ! '>='
177
+ - !ruby/object:Gem::Version
178
+ version: '1.9'
179
+ required_rubygems_version: !ruby/object:Gem::Requirement
176
180
  none: false
177
- requirements:
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- version: "1.5"
181
+ requirements:
182
+ - - ! '>='
183
+ - !ruby/object:Gem::Version
184
+ version: '1.5'
181
185
  requirements: []
182
-
183
186
  rubyforge_project: docjs
184
- rubygems_version: 1.5.2
187
+ rubygems_version: 1.8.24
185
188
  signing_key:
186
189
  specification_version: 3
187
190
  summary: Javascript Documentation Generator
188
191
  test_files: []
189
-
192
+ has_rdoc: