docjs 0.1.4 → 0.1.5

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.
Files changed (41) hide show
  1. data/README.md +33 -63
  2. data/bin/docjs +30 -8
  3. data/bin/docjs.rb +30 -8
  4. data/docjs.gemspec +2 -2
  5. data/docs/ARCHITECTURE.md +0 -0
  6. data/{CONCEPT.md → docs/CONCEPT.md} +0 -0
  7. data/{DOCUMENTATION.md → docs/DOCUMENTATION.md} +2 -4
  8. data/docs/PATTERNS.md +101 -0
  9. data/docs/guides/CUSTOMIZE.md +158 -0
  10. data/docs/guides/TRY.md +63 -0
  11. data/docs/guides/USE.md +256 -0
  12. data/lib/boot.rb +2 -6
  13. data/lib/code_object/base.rb +5 -0
  14. data/lib/dom/node.rb +1 -1
  15. data/lib/{tasks/render_task.rb → generator/generator.rb} +15 -9
  16. data/lib/helper/helper.rb +2 -2
  17. data/lib/helper/linker.rb +7 -13
  18. data/lib/processor.rb +3 -12
  19. data/lib/renderer.rb +2 -0
  20. data/lib/token/container.rb +2 -1
  21. data/lib/token/handler.rb +187 -115
  22. data/lib/token/token.rb +35 -3
  23. data/templates/application.rb +7 -5
  24. data/templates/{tasks/api_index_task.rb → generators/api_index_generator.rb} +2 -2
  25. data/templates/{tasks/typed_task.rb → generators/api_pages_generator.rb} +2 -2
  26. data/templates/{tasks/docs_task.rb → generators/docs_generator.rb} +9 -2
  27. data/templates/{tasks/json_data_task.rb → generators/json_generator.rb} +2 -2
  28. data/templates/tokens/tokens.rb +2 -2
  29. data/{lib/code_object → templates/types}/function.rb +5 -3
  30. data/{lib/code_object → templates/types}/object.rb +0 -2
  31. data/templates/types/prototype.rb +2 -3
  32. data/templates/views/tokens/_default.html.erb +0 -2
  33. data/test/code_object/prototype.rb +1 -1
  34. data/test/dom/dom.absolute_nodes.rb +2 -3
  35. data/test/dom/dom.rb +3 -3
  36. data/test/dom/node.rb +9 -9
  37. data/test/integration/converter.rb +3 -3
  38. data/test/token/handler.rb +12 -9
  39. data/test/token/tokens.rb +1 -1
  40. metadata +16 -12
  41. data/RENDERING.md +0 -8
@@ -1,17 +1,49 @@
1
1
  module Token
2
+
3
+ # Serves as Base-Class for all registered tokens.
4
+ # Registering a token with
5
+ #
6
+ # Token:Handler.register :awesome, :template => :foo, :description => "Description"
7
+ #
8
+ # is pretty much equivalent to
9
+ #
10
+ # class Token::AwesomeToken < Token::Token; end
11
+ # Token::AwesomeToken.process_options({
12
+ # :token => :awesome,
13
+ # :template => :foo,
14
+ # :description => "Description"
15
+ # })
2
16
  class Token
3
17
 
4
18
  attr_reader :name, :content, :types, :children
5
19
 
6
- def initialize(args = {})
7
-
20
+ def initialize(args = {})
8
21
  @name = args[:name]
9
22
  @types = args[:types]
10
23
  @children = args[:children]
11
24
  @content = args[:content] || ""
12
25
  end
13
26
 
14
- # @note should only be performed once!!!
27
+ # Processes the options, which are added while registering the new token-handler
28
+ #
29
+ # Token:Handler.register :awesome, :template => :foo, :description => "Description"
30
+ #
31
+ # This will create a class Token::AwesomeToken, which extends {Token::Token}. After creating the class
32
+ # {.process_options} will be called with all provided options to apply those to the class.
33
+ #
34
+ # Because the options are valid for all instances of a tokenclass, the contents are stored in
35
+ # class-variables and class-methods are defined as accessors:
36
+ #
37
+ # - handler
38
+ # - token
39
+ # - template
40
+ # - html
41
+ # - area
42
+ # - description
43
+ #
44
+ # Further information about this options can be found at {Token::Handler.register}
45
+ #
46
+ # @note Because class-methods are defined in this method, it should only be performed once!!!
15
47
  def self.process_options(options = {})
16
48
 
17
49
  # pushing defaults
@@ -1,4 +1,6 @@
1
1
  # Load CodeObject::Types
2
+ require_relative 'types/object'
3
+ require_relative 'types/function'
2
4
  require_relative 'types/prototype'
3
5
 
4
6
  # Load Default Tokens
@@ -7,8 +9,8 @@ require_relative 'tokens/tokens'
7
9
  # Load Helpers
8
10
  require_relative 'helpers/template'
9
11
 
10
- # Load Rendertasks
11
- require_relative 'tasks/typed_task'
12
- require_relative 'tasks/docs_task'
13
- require_relative 'tasks/api_index_task'
14
- require_relative 'tasks/json_data_task'
12
+ # Load Generators
13
+ require_relative 'generators/api_pages_generator'
14
+ require_relative 'generators/docs_generator'
15
+ require_relative 'generators/api_index_generator'
16
+ require_relative 'generators/json_generator'
@@ -1,6 +1,6 @@
1
- module Tasks
1
+ module Generator
2
2
 
3
- class ApiIndexTask < RenderTask
3
+ class ApiIndexGenerator < Generator
4
4
 
5
5
  describe 'renders the api_index.html file containing all documented elements as alphabetic listing'
6
6
  layout 'application'
@@ -1,6 +1,6 @@
1
- module Tasks
1
+ module Generator
2
2
 
3
- class TypedTask < RenderTask
3
+ class ApiPagesGenerator < Generator
4
4
 
5
5
  # @todo those methods and therefore all class-variables @@configs are shared with all inheriting
6
6
  # classes. i.e. The last change will be applied to all
@@ -1,6 +1,6 @@
1
- module Tasks
1
+ module Generator
2
2
 
3
- class DocsTask < RenderTask
3
+ class DocsGenerator < Generator
4
4
 
5
5
  describe 'renders all specified Markdown files to static documentation'
6
6
  layout 'application'
@@ -15,6 +15,13 @@ module Tasks
15
15
 
16
16
  render_document doc
17
17
  end
18
+
19
+
20
+ readme = Dom.docs.find('README')
21
+ in_context readme do
22
+ @document = readme
23
+ render 'doc_page', :to_file => "index.html"
24
+ end unless readme.nil?
18
25
  end
19
26
 
20
27
  def render_document(document)
@@ -1,6 +1,6 @@
1
- module Tasks
1
+ module Generator
2
2
 
3
- class JsonDataTask < RenderTask
3
+ class JsonGenerator < Generator
4
4
 
5
5
  describe 'renders all documented objects to a json file. Objects and Functions are handled seperatly'
6
6
  layout nil
@@ -5,14 +5,14 @@ module Token::Handler
5
5
  register :private, :area => :sidebar
6
6
  register :version, :area => :sidebar
7
7
 
8
- register :see, :area => :footer
8
+ register :see, :area => :footnote
9
9
 
10
10
  register :deprecated, :area => :notification
11
11
  register :todo, :area => :notification
12
12
  register :note, :area => :notification
13
13
  register :warn, :area => :notification
14
14
 
15
- register :example, :template => 'examples', :handler => :named_multiline
15
+ register :example, :template => :examples, :handler => :named_multiline
16
16
 
17
17
  # Every @overload can contain **text-documentation**, **@param**- and **@return**-tokens
18
18
  #
@@ -1,5 +1,3 @@
1
- require_relative 'object'
2
-
3
1
  module CodeObject
4
2
 
5
3
  class Function < CodeObject::Object
@@ -16,6 +14,10 @@ module CodeObject
16
14
  children[:prototype]
17
15
  end
18
16
 
17
+ def display_name
18
+ @name + '()'
19
+ end
20
+
19
21
  end
20
22
 
21
23
  end
@@ -56,6 +58,6 @@ Token::Handler.register :throws, :handler => :typed
56
58
  class CodeObject::Method < CodeObject::Function; end
57
59
  Token::Handler.register :method, :handler => :noop, :area => :none
58
60
 
59
- # @constructor Foo.bar
61
+ # ConstructorAlias
60
62
  class CodeObject::Constructor < CodeObject::Function; end
61
63
  Token::Handler.register(:constructor) { |token, content| @constructor = true }
@@ -1,5 +1,3 @@
1
- require_relative 'base'
2
-
3
1
  module CodeObject
4
2
 
5
3
  class Object < CodeObject::Base
@@ -1,8 +1,7 @@
1
1
  class CodeObject::Prototype < CodeObject::Object
2
2
 
3
- def initialize(*args)
4
- super(*args)
5
- @path += '.prototype'
3
+ def initialize(path)
4
+ super(path.strip + '.prototype')
6
5
  end
7
6
 
8
7
  # get the constructor, for which this prototype is used
@@ -1,6 +1,4 @@
1
1
  <% unless tokens.nil?
2
-
3
-
4
2
  opts = tokens.first.html
5
3
  opts[:class] = (opts[:class] || "") + " subsection"
6
4
  %>
@@ -1,6 +1,6 @@
1
1
  # ../data.img#1774507:1
2
2
  require_relative '../../lib/boot'
3
- require_relative '../../templates/types/prototype'
3
+ require_relative '../../templates/application'
4
4
 
5
5
  describe CodeObject::Prototype, ".new" do
6
6
 
@@ -1,6 +1,5 @@
1
- require_relative '../../lib/dom/dom'
2
- require_relative '../../lib/code_object/function'
3
- require_relative '../../lib/processor'
1
+ require_relative '../../lib/boot'
2
+ require_relative '../../templates/application'
4
3
 
5
4
  describe Dom, ".add_child" do
6
5
 
@@ -1,13 +1,13 @@
1
1
  # ../data.img#1811393:1
2
2
  require_relative '../../lib/dom/dom'
3
- require_relative '../../lib/code_object/function'
3
+ require_relative '../../lib/code_object/base'
4
4
 
5
5
  describe Dom, ".add_child" do
6
6
 
7
7
  before do
8
8
  Dom.clear
9
- @o1 = CodeObject::Object.new
10
- @o2 = CodeObject::Object.new
9
+ @o1 = CodeObject::Base.new
10
+ @o2 = CodeObject::Base.new
11
11
  end
12
12
 
13
13
  it "should add absolute nodes" do
@@ -1,15 +1,15 @@
1
1
  # ../data.img#1772233:1
2
2
  require_relative '../../lib/dom/dom'
3
- require_relative '../../lib/code_object/function'
3
+ require_relative '../../lib/code_object/base'
4
4
 
5
5
  describe Dom::Node, "#resolve" do
6
6
 
7
7
  before do
8
8
  Dom.clear
9
- @o1 = CodeObject::Object.new
10
- @o2 = CodeObject::Object.new
11
- @o3 = CodeObject::Object.new
12
- @o4 = CodeObject::Object.new
9
+ @o1 = CodeObject::Base.new
10
+ @o2 = CodeObject::Base.new
11
+ @o3 = CodeObject::Base.new
12
+ @o4 = CodeObject::Base.new
13
13
 
14
14
  Dom.add_node "Foo.bar" , @o1
15
15
  @o1.add_node ".baz" , @o2
@@ -33,10 +33,10 @@ describe Dom::Node, "#qualified_name" do
33
33
 
34
34
  before do
35
35
  Dom.clear
36
- @o1 = CodeObject::Object.new "bar"
37
- @o2 = CodeObject::Object.new "baz"
38
- @o3 = CodeObject::Object.new "bam"
39
- @o4 = CodeObject::Object.new "poo"
36
+ @o1 = CodeObject::Base.new "bar"
37
+ @o2 = CodeObject::Base.new "baz"
38
+ @o3 = CodeObject::Base.new "bam"
39
+ @o4 = CodeObject::Base.new "poo"
40
40
 
41
41
  Dom.add_node "Foo.bar" , @o1
42
42
  @o1.add_node ".baz" , @o2
@@ -21,7 +21,7 @@ describe CodeObject::Converter, "#to_code_object" do
21
21
  subject { @objects[0] }
22
22
 
23
23
  it "should be a function named 'say_hello'" do
24
- subject.class.should == CodeObject::Function
24
+ subject.is_a?(CodeObject::Function).should == true
25
25
  subject.name.should == "say_hello"
26
26
  end
27
27
 
@@ -45,7 +45,7 @@ describe CodeObject::Converter, "#to_code_object" do
45
45
  subject { @objects[1] }
46
46
 
47
47
  it "should be an Object named 'FOO'" do
48
- subject.class.should == CodeObject::Object
48
+ subject.is_a?(CodeObject::Object).should == true
49
49
  subject.name.should == "FOO"
50
50
  end
51
51
  end
@@ -54,7 +54,7 @@ describe CodeObject::Converter, "#to_code_object" do
54
54
  subject { @objects[2] }
55
55
 
56
56
  it "should be an Function named 'some_function'" do
57
- subject.class.should == CodeObject::Function
57
+ subject.is_a?(CodeObject::Function).should == true
58
58
  subject.name.should == "some_function"
59
59
  end
60
60
 
@@ -1,6 +1,9 @@
1
1
  # ../data.img#1771563:1
2
2
  require_relative '../../lib/parser/comment'
3
- require_relative '../../lib/code_object/function'
3
+ require_relative '../../templates/types/function'
4
+
5
+ # Warning! This Tests have some sideeffects. All registered Tokens will create Classes, that are not
6
+ # removed on unregister
4
7
 
5
8
  describe Token::Handler, ".register" do
6
9
 
@@ -36,7 +39,7 @@ describe Token::Handler, ".register" do
36
39
  context "using a typed handler" do
37
40
 
38
41
  before do
39
- Token::Handler.register :test_handler, :typed
42
+ Token::Handler.register :test_handler, :handler => :typed
40
43
  token = Parser::Tokenline.new :test_handler, "[MyType] This is some content"
41
44
  @object.process_token(token)
42
45
  end
@@ -56,7 +59,7 @@ describe Token::Handler, ".register" do
56
59
  context "using a typed_with_name handler" do
57
60
 
58
61
  before do
59
- Token::Handler.register :test_handler, :typed_with_name
62
+ Token::Handler.register :test_handler, :handler => :typed_with_name
60
63
  token = Parser::Tokenline.new :test_handler, "[Foo, Bar, Baz] MyName This is some content"
61
64
  @object.process_token(token)
62
65
  end
@@ -76,7 +79,7 @@ describe Token::Handler, ".register" do
76
79
 
77
80
  context "processing a token without handler" do
78
81
 
79
- token = Parser::Tokenline.new :test_handler, "[Foo, Bar, Baz] MyName This is some content"
82
+ token = Parser::Tokenline.new :some_not_known_handler, "[Foo, Bar, Baz] MyName This is some content"
80
83
 
81
84
  it "should raise an error" do
82
85
  should_raise Token::NoTokenHandler do
@@ -111,24 +114,24 @@ describe Token::Handler, ".register" do
111
114
  context "using a user-defined block as token-handler" do
112
115
 
113
116
  before do
114
- Token::Handler.register(:test_handler) do |token, content|
117
+ Token::Handler.register(:test) do |tokenklass, content|
115
118
  define_singleton_method :test_token do
116
- token
119
+ tokenklass
117
120
  end
118
121
 
119
122
  define_singleton_method :test_content do
120
123
  content
121
124
  end
122
125
  end
123
- @object.process_token Parser::Tokenline.new :test_handler, "This is some content"
126
+ @object.process_token Parser::Tokenline.new :test, "This is some content"
124
127
  end
125
128
 
126
129
  it "should be added to the list of handlers" do
127
- Token::Handler.handlers.include?(:test_handler).should == true
130
+ Token::Handler.handlers.include?(:test).should == true
128
131
  end
129
132
 
130
133
  it "should be evaled in CodeObject context" do
131
- @object.test_token.should == :test_handler
134
+ @object.test_token.should == Token::Token::TestToken
132
135
  @object.test_content.should == "This is some content"
133
136
  end
134
137
 
@@ -1,5 +1,5 @@
1
1
  require_relative '../../lib/parser/comment'
2
- require_relative '../../lib/code_object/function'
2
+ require_relative '../../templates/types/function'
3
3
 
4
4
  require_relative '../../templates/tokens/tokens'
5
5
 
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: docjs
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.4
5
+ version: 0.1.5
6
6
  platform: ruby
7
7
  authors:
8
8
  - "Jonathan Brachth\xC3\xA4user"
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-06-17 00:00:00 +02:00
13
+ date: 2011-06-25 00:00:00 +02:00
14
14
  default_executable: bin/docjs
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -44,26 +44,29 @@ extensions: []
44
44
  extra_rdoc_files: []
45
45
 
46
46
  files:
47
- - CONCEPT.md
48
- - DOCUMENTATION.md
49
47
  - LICENSE.md
50
48
  - README.md
51
- - RENDERING.md
52
49
  - bin/docjs
53
50
  - bin/docjs.rb
54
51
  - docjs.gemspec
52
+ - docs/ARCHITECTURE.md
53
+ - docs/CONCEPT.md
54
+ - docs/DOCUMENTATION.md
55
+ - docs/PATTERNS.md
56
+ - docs/guides/CUSTOMIZE.md
57
+ - docs/guides/TRY.md
58
+ - docs/guides/USE.md
55
59
  - lib/boot.rb
56
60
  - lib/code_object/base.rb
57
61
  - lib/code_object/converter.rb
58
62
  - lib/code_object/exceptions.rb
59
- - lib/code_object/function.rb
60
- - lib/code_object/object.rb
61
63
  - lib/configs.rb
62
64
  - lib/document/document.rb
63
65
  - lib/dom/dom.rb
64
66
  - lib/dom/exceptions.rb
65
67
  - lib/dom/no_doc.rb
66
68
  - lib/dom/node.rb
69
+ - lib/generator/generator.rb
67
70
  - lib/helper/helper.rb
68
71
  - lib/helper/linker.rb
69
72
  - lib/logger.rb
@@ -74,13 +77,16 @@ files:
74
77
  - lib/parser/parser.rb
75
78
  - lib/processor.rb
76
79
  - lib/renderer.rb
77
- - lib/tasks/render_task.rb
78
80
  - lib/thor.rb
79
81
  - lib/token/container.rb
80
82
  - lib/token/exceptions.rb
81
83
  - lib/token/handler.rb
82
84
  - lib/token/token.rb
83
85
  - templates/application.rb
86
+ - templates/generators/api_index_generator.rb
87
+ - templates/generators/api_pages_generator.rb
88
+ - templates/generators/docs_generator.rb
89
+ - templates/generators/json_generator.rb
84
90
  - templates/helpers/template.rb
85
91
  - templates/resources/css/.sass-cache/98c121fba905284c2c8ca6220fe3c590e5c9ec19/application.scssc
86
92
  - templates/resources/css/application.css
@@ -112,11 +118,9 @@ files:
112
118
  - templates/resources/scss/_resets.scss
113
119
  - templates/resources/scss/_tooltip.scss
114
120
  - templates/resources/scss/application.scss
115
- - templates/tasks/api_index_task.rb
116
- - templates/tasks/docs_task.rb
117
- - templates/tasks/json_data_task.rb
118
- - templates/tasks/typed_task.rb
119
121
  - templates/tokens/tokens.rb
122
+ - templates/types/function.rb
123
+ - templates/types/object.rb
120
124
  - templates/types/prototype.rb
121
125
  - templates/views/api_index.html.erb
122
126
  - templates/views/doc_page.html.erb