tomparse 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/.index ADDED
@@ -0,0 +1,68 @@
1
+ ---
2
+ revision: 2013
3
+ type: ruby
4
+ sources:
5
+ - var
6
+ - VERSION
7
+ authors:
8
+ - name: trans
9
+ email: transfire@gmail.com
10
+ organizations:
11
+ - name: Rubyworks
12
+ website: http://rubyworks.github.com
13
+ requirements:
14
+ - groups:
15
+ - test
16
+ development: true
17
+ name: citron
18
+ - groups:
19
+ - test
20
+ development: true
21
+ name: ae
22
+ - groups:
23
+ - build
24
+ development: true
25
+ name: detroit
26
+ conflicts: []
27
+ alternatives: []
28
+ resources:
29
+ - type: home
30
+ uri: http://rubyworks.github.com/tomparse
31
+ label: Homepage
32
+ - type: code
33
+ uri: http://github.com/rubyworks/tomparse
34
+ label: Source Code
35
+ - type: api
36
+ uri: http://rubydoc.info/gems/tomparse/frames
37
+ label: API Guide
38
+ - type: mail
39
+ uri: http://groups.google.com/group/rubyworks-mailinglist
40
+ label: Mailing List
41
+ - type: chat
42
+ uri: http://chat.us.freenode.net/rubyworks
43
+ label: IRC Channel
44
+ repositories:
45
+ - name: upstream
46
+ scm: git
47
+ uri: http://github.com/rubyworks/tomparse/tomparse.git
48
+ categories:
49
+ - documentation
50
+ copyrights:
51
+ - holder: Rubyworks
52
+ year: '2012'
53
+ license: BSD-2-Clause
54
+ customs: []
55
+ paths:
56
+ lib:
57
+ - lib
58
+ created: '2012-03-04'
59
+ summary: TomDoc parser for Ruby
60
+ title: TomParse
61
+ name: tomparse
62
+ description: ! 'TomParse provides no other functionality than to take a code comment
63
+
64
+ and parse it in to a convenient object-oriented structure in accordance
65
+
66
+ with TomDoc standard.'
67
+ version: 0.3.0
68
+ date: '2013-01-21'
File without changes
data/HISTORY.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Release History
2
2
 
3
+ ## 0.3.0 / 2012-01-21
4
+
5
+ This release fixes a bug which prevented descriptions from having
6
+ multiple paragraphs. In addition it adds support for section tags.
7
+ See the README for more information of tags.
8
+
9
+ Changes:
10
+
11
+ * Fix multi-paragraph description parsing.
12
+ * Add support for tags.
13
+
14
+
3
15
  ## 0.2.1 / 2012-04-30
4
16
 
5
17
  This release fixes indention with multi-line examples.
@@ -1,4 +1,4 @@
1
- Copyright 2002 Rubyworks. All rights reserved.
1
+ BSD-2-Clause License
2
2
 
3
3
  Redistribution and use in source and binary forms, with or without
4
4
  modification, are permitted provided that the following conditions are met:
@@ -20,5 +20,3 @@ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
20
20
  OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
21
21
  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
22
22
  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23
-
24
- (BSD-2-Clauase License)
data/README.md CHANGED
@@ -6,26 +6,28 @@
6
6
  [Gem Page](http://rubygems.org/gems/tomparse)
7
7
 
8
8
  [![Build Status](https://secure.travis-ci.org/rubyworks/tomparse.png)](http://travis-ci.org/rubyworks/tomparse)
9
+ [![Gem Version](https://badge.fury.io/rb/tomparse.png)](http://badge.fury.io/rb/tomparse)
9
10
 
10
11
 
11
12
  ## Description
12
13
 
13
- TomParse is TomDoc parser for Ruby. It provides no other functionality
14
- than to take a code comment and parse it in to a convenient object-oriented
15
- structure in accordance with TomDoc standard.
14
+ TomParse is a TomDoc parser for Ruby. It provides no other functionality than
15
+ to take a code comment and parse it in to a convenient object-oriented
16
+ structure in accordance with TomDoc standard. See [TomDoc](https://github.com/mojombo/tomdoc)
17
+ for more information about the TomDoc format.
16
18
 
17
- See [TomDoc](https://github.com/mojombo/tomdoc) for more information about
18
- the TomDoc format.
19
19
 
20
+ ## Instruction
21
+
22
+ ### Installation
20
23
 
21
- ## Installation
24
+ TomParse is available as a Ruby gem.
22
25
 
23
26
  $ gem install tomparse
24
27
 
28
+ ### Usage
25
29
 
26
- ## Instruction
27
-
28
- The primay interface is the `TomParse.parse` method. It will parse the
30
+ The primary interface is the `TomParse.parse` method. It will parse the
29
31
  comment and return a `TomParse::TomDoc` instance.
30
32
 
31
33
  TomParse.parse(comment) #=> TomParse::TomDoc
@@ -38,13 +40,12 @@ the comment, such as `#arguments`, `#examples`, etc.
38
40
  See the [API documention](http://rubydoc.info/gems/tomparse/frames)
39
41
  for more details on this.
40
42
 
41
-
42
- ## Example
43
+ ### Example
43
44
 
44
45
  If you are unfamiliar with TomDoc, an example TomDoc comment for a method
45
46
  looks something like this:
46
47
 
47
- # Duplicate some text an abitrary number of times.
48
+ # Duplicate some text an arbitrary number of times.
48
49
  #
49
50
  # text - The String to be duplicated.
50
51
  # count - The Integer number of times to duplicate the text.
@@ -58,12 +59,64 @@ looks something like this:
58
59
  text * count
59
60
  end
60
61
 
62
+ ### Extra Features
63
+
64
+ Okay, we told a little white lie in the description. TomParse does take a tiny
65
+ bit of liberty with the specification to offer up some additional documentation
66
+ goodness. In particular, TomParse recoginizes paragraphs starting with an all-caps
67
+ word, followed by a colon and a space, as special tags. Here is an example:
68
+
69
+ ```ruby
70
+ # Method to do something.
71
+ #
72
+ # TODO: This is a todo note.
73
+ #
74
+ # Returns nothing.
75
+ def dosomething
76
+ ...
77
+ ```
78
+
79
+ When this is parsed, rather then lumping the TODO line in with the description,
80
+ the TomDoc instance will have a `tags` property containing `{'todo'=>'This is a todo note.'}`.
81
+
82
+
83
+ ## Resources
84
+
85
+ * [Website](http://rubyworks.github.com/tomparse)
86
+ * [Source Code](http://github.com/rubyworks/tomparse) (Github)
87
+ * [API Reference](http://rubydoc.info/gems/tomparse/frames")
88
+ * [Mailiing List](http://groups.google.com/group/rubyworks-mailinglist)
89
+ * [IRC Chat](http://chat.us.freenode.net/rubyworks)
90
+ * [Upstream Repo](http://github.com/rubyworks/tomparse/tomparse.git)
91
+
92
+
93
+ ## Authors
94
+
95
+ <ul>
96
+ <li class="iauthor vcard">
97
+ <span class="nickname">trans</span>
98
+ <span>&lt;<a class="email" href="mailto:transfire@gmail.com">transfire@gmail.com</a>&gt;</span>
99
+ <br/><a class="url" href="http://trans.gihub.com/">http://trans.github.com/</a>
100
+ </li>
101
+ </ul>
102
+
103
+
104
+ ## Development
105
+
106
+ ### Requirements
107
+
108
+ * [Citron](http://rubyworks.github.com/citron) (testing)
109
+ * [AE](http://rubyworks.github.com/ae) (testing)
110
+ * [Detroit](http://detroit.github.com/detroit) (building)
111
+
112
+
113
+ ## Copyright & License
61
114
 
62
- ## License
115
+ TomParse is copyrighted open-source software.
63
116
 
64
- Copyright (c) 2012 Rubyworks
117
+ Copyright (c) 2012 [Rubyworks](http://rubyworks.github.com). All rights reserved.
65
118
 
66
- TomParse is distributable under the terms of the *BSD-2-Clause* license.
119
+ TomParse is distributable under the terms of the [BSD-2-Clause]((http://www.spdx.org/licenses/BSD-2-Clause) license.
67
120
 
68
121
  See LICENSE.txt for details.
69
122
 
@@ -31,10 +31,14 @@ module TomParse
31
31
  @raises = []
32
32
  @signatures = []
33
33
  @signature_fields = []
34
+ @tags = {}
34
35
 
35
36
  parse unless @raw.empty?
36
37
  end
37
38
 
39
+ # Raw documentation text.
40
+ #
41
+ # Returns String of raw documentation text.
38
42
  def to_s
39
43
  @raw
40
44
  end
@@ -192,6 +196,15 @@ module TomParse
192
196
  }
193
197
  end
194
198
 
199
+ # A mapping of tags.
200
+ #
201
+ # Returns Hash of tags.
202
+ def tags
203
+ parsed {
204
+ @tags
205
+ }
206
+ end
207
+
195
208
  # Check if method is public.
196
209
  #
197
210
  # Returns true if method is public.
@@ -233,11 +246,24 @@ module TomParse
233
246
  def parse
234
247
  @parsed = true
235
248
 
236
- @sections = tomdoc.split("\n\n")
237
- sections = @sections.dup
249
+ sections = tomdoc.split("\n\n")
238
250
 
239
251
  return false if sections.empty?
240
252
 
253
+ # The description is always the first section, but it may have
254
+ # multiple paragraphs. This routine collects those together.
255
+ desc = [sections.shift]
256
+ loop do
257
+ s = sections.first
258
+ break if s.nil?
259
+ break if s =~ /^\w+\s+\-/m
260
+ break if section_type(s) != nil
261
+ desc << sections.shift
262
+ end
263
+ sections = [desc.join("\n\n")] + sections
264
+
265
+ @sections = sections.dup
266
+
241
267
  parse_description(sections.shift)
242
268
 
243
269
  if sections.first && sections.first =~ /^\w+\s+\-/m
@@ -246,15 +272,19 @@ module TomParse
246
272
 
247
273
  current = sections.shift
248
274
  while current
249
- case current
250
- when /^Examples/
275
+ case type = section_type(current)
276
+ when :examples
251
277
  parse_examples(current, sections)
252
- when /^Yields/
278
+ when :yields
253
279
  parse_yields(current)
254
- when /^(Returns|Raises)/
255
- parse_returns(current)
256
- when /^Signature/
280
+ when :returns
281
+ parse_returns(current) # also does raises
282
+ when :raises
283
+ parse_returns(current) # also does returns
284
+ when :signature
257
285
  parse_signature(current, sections)
286
+ when Symbol
287
+ parse_tag(current)
258
288
  end
259
289
  current = sections.shift
260
290
  end
@@ -262,6 +292,30 @@ module TomParse
262
292
  return @parsed
263
293
  end
264
294
 
295
+ #
296
+ #
297
+ def section_type(section)
298
+ case section
299
+ when /^Examples/
300
+ :examples
301
+ when /^Yields/
302
+ :yields
303
+ when /^Returns/
304
+ :returns
305
+ when /^Raises/
306
+ :raises
307
+ when /^Signature/
308
+ :signature
309
+ when /^([A-Z]*)\:\ /
310
+ $1.downcase.to_sym
311
+ else
312
+ nil
313
+ end
314
+ end
315
+
316
+ # Recognized description status.
317
+ TOMDOC_STATUS = ['Internal', 'Public', 'Deprecated']
318
+
265
319
  # Parse description.
266
320
  #
267
321
  # section - String containig description.
@@ -269,8 +323,12 @@ module TomParse
269
323
  # Returns nothing.
270
324
  def parse_description(section)
271
325
  if md = /^([A-Z]\w+\:)/.match(section)
272
- @status = md[1].chomp(':')
273
- @description = md.post_match.strip
326
+ @status = md[1].chomp(':')
327
+ if TOMDOC_STATUS.include?(@status)
328
+ @description = md.post_match.strip
329
+ else
330
+ @description = section.strip
331
+ end
274
332
  else
275
333
  @description = section.strip
276
334
  end
@@ -286,12 +344,12 @@ module TomParse
286
344
  args = []
287
345
  last_indent = nil
288
346
 
289
- section.split("\n").each do |line|
347
+ section.lines.each do |line|
290
348
  next if line.strip.empty?
291
349
  indent = line.scan(/^\s*/)[0].to_s.size
292
350
 
293
- if last_indent && indent > last_indent
294
- args.last.description << line.squeeze(" ")
351
+ if last_indent && indent > 0 && indent >= last_indent
352
+ args.last.description << "\r\n" + line
295
353
  else
296
354
  param, desc = line.split(" - ")
297
355
  args << Argument.new(param.strip, desc.strip) if param && desc
@@ -300,6 +358,10 @@ module TomParse
300
358
  last_indent = indent
301
359
  end
302
360
 
361
+ args.each do |arg|
362
+ arg.parse(arg.description)
363
+ end
364
+
303
365
  @arguments = args
304
366
  end
305
367
 
@@ -413,6 +475,22 @@ module TomParse
413
475
  @signature_fields = args
414
476
  end
415
477
 
478
+ # Tags are arbitrary sections designated by all cap labels and a colon.
479
+ #
480
+ # label - String name of the tag.
481
+ # section - String of the tag section.
482
+ #
483
+ # Returns nothing.
484
+ def parse_tag(section)
485
+
486
+ md = /^([A-Z]*)\:\ /.match(section)
487
+
488
+ label = md[1]
489
+ text = md.post_match
490
+
491
+ @tags[label.downcase] = text
492
+ end
493
+
416
494
  end
417
495
 
418
496
  # Encapsulate a method argument.
@@ -455,7 +533,7 @@ module TomParse
455
533
  lines = description.lines.to_a
456
534
 
457
535
  until lines.empty? or /^\s+\:(\w+)\s+-\s+(.*?)$/ =~ lines.first
458
- desc << lines.shift
536
+ desc << lines.shift.chomp.squeeze(" ")
459
537
  end
460
538
 
461
539
  opts = []
@@ -466,10 +544,10 @@ module TomParse
466
544
  indent = line.scan(/^\s*/)[0].to_s.size
467
545
 
468
546
  if last_indent && indent > last_indent
469
- args.last.description << line.squeeze(" ")
547
+ opts.last.description << line.squeeze(" ")
470
548
  else
471
- param, desc = line.split(" - ")
472
- opts << Option.new(param.strip, desc.strip) if param && desc
549
+ param, d = line.split(" - ")
550
+ opts << Option.new(param.strip, d.strip) if param && d
473
551
  end
474
552
 
475
553
  last_indent = indent
@@ -0,0 +1,38 @@
1
+ require 'helper'
2
+
3
+ testcase "Tags" do
4
+
5
+ context "TODO" do
6
+
7
+ setup do
8
+ @tomdoc = TomParse::TomDoc.new(<<-END)
9
+ # This is an example of tags.
10
+ #
11
+ # TODO: Something we have to do.
12
+ END
13
+ end
14
+
15
+ test "tags has todo" do
16
+ assert @tomdoc.tags['todo'] == "Something we have to do."
17
+ end
18
+
19
+ end
20
+
21
+ context "FOO" do
22
+
23
+ setup do
24
+ @tomdoc = TomParse::TomDoc.new(<<-END)
25
+ # This is an example of tags.
26
+ #
27
+ # FOO: They can be anything really.
28
+ END
29
+ end
30
+
31
+ test "tags has foo" do
32
+ assert @tomdoc.tags['foo'] == "They can be anything really."
33
+ end
34
+
35
+ end
36
+
37
+
38
+ end
@@ -13,6 +13,10 @@ testcase TomParse::TomDoc do
13
13
  # duplicate the text.
14
14
  # reverse - An optional Boolean indicating
15
15
  # whether to reverse the result text or not.
16
+ # options - Options (default: {})
17
+ # :insert_spaces - Whether to insert spaces
18
+ # :upcase - Convert the string to upper case
19
+ # blk - The block.
16
20
  #
17
21
  # Examples
18
22
  # multiplex('Tom', 4)
@@ -38,13 +42,22 @@ testcase TomParse::TomDoc do
38
42
  end
39
43
 
40
44
  test "parses args" do
41
- @comment.args.size.assert == 3
45
+ @comment.args.size.assert == 5
46
+ end
47
+
48
+ test "know a hash arg's options" do
49
+ @comment.args[3].options.size.assert == 2
50
+ @comment.args[3].options.first.name.assert == :':insert_spaces'
51
+ @comment.args[3].options[1].name.assert == :':upcase'
52
+ @comment.args[3].options.first.description.assert == 'Whether to insert spaces'
53
+ @comment.args[3].options[1].description.assert == 'Convert the string to upper case'
42
54
  end
43
55
 
44
56
  test "knows an arg's name" do
45
57
  @comment.args.first.name.assert == :text
46
58
  @comment.args[1].name.assert == :count
47
59
  @comment.args[2].name.assert == :reverse
60
+ @comment.args[3].name.assert == :options
48
61
  end
49
62
 
50
63
  test "knows an arg's description" do
@@ -57,7 +70,7 @@ testcase TomParse::TomDoc do
57
70
 
58
71
  test "knows an arg's optionality" do
59
72
  refute @comment.args.first.optional?
60
- assert @comment.args.last.optional?
73
+ assert @comment.args[2].optional?
61
74
  end
62
75
 
63
76
  test "knows how many examples there are" do
@@ -90,6 +103,28 @@ testcase TomParse::TomDoc do
90
103
 
91
104
  end
92
105
 
106
+ context "handles multiple paragraph descriptions" do
107
+
108
+ setup do
109
+ @comment = TomParse::TomDoc.new %{
110
+ # Has an initial paragraph.
111
+ #
112
+ # Has another paragraph in the description.
113
+ #
114
+ # Examples
115
+ #
116
+ # def multiplex(str, length)
117
+ # str * length
118
+ # end
119
+ }
120
+ end
121
+
122
+ test "correctly handles multiple paragraphs" do
123
+ @comment.description.assert == "Has an initial paragraph.\n\nHas another paragraph in the description."
124
+ end
125
+
126
+ end
127
+
93
128
  context "handles whitespace in examples" do
94
129
 
95
130
  setup do
metadata CHANGED
@@ -1,19 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tomparse
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
- - Trans
8
+ - trans
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-30 00:00:00.000000000 Z
12
+ date: 2013-01-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: citron
16
- requirement: &21084040 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,31 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *21084040
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: ae
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
25
46
  - !ruby/object:Gem::Dependency
26
47
  name: detroit
27
- requirement: &21077200 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
28
49
  none: false
29
50
  requirements:
30
51
  - - ! '>='
@@ -32,12 +53,17 @@ dependencies:
32
53
  version: '0'
33
54
  type: :development
34
55
  prerelease: false
35
- version_requirements: *21077200
36
- description: ! 'TomParse is a Ruby TomDoc parser. It contains no other functionality
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ description: ! 'TomParse provides no other functionality than to take a code comment
37
63
 
38
- than the ability to take a comment and parse it in accordance to the
64
+ and parse it in to a convenient object-oriented structure in accordance
39
65
 
40
- TomDoc standard.'
66
+ with TomDoc standard.'
41
67
  email:
42
68
  - transfire@gmail.com
43
69
  executables: []
@@ -47,17 +73,17 @@ extra_rdoc_files:
47
73
  - HISTORY.md
48
74
  - README.md
49
75
  files:
50
- - .ruby
76
+ - .index
77
+ - .rubyrc
51
78
  - lib/tomparse.rb
52
- - lib/tomparse.yml
53
79
  - test/helper.rb
54
80
  - test/test_prefixes.rb
55
81
  - test/test_signatures.rb
82
+ - test/test_tags.rb
56
83
  - test/test_tomdoc.rb
57
- - LICENSE.txt
58
84
  - HISTORY.md
59
85
  - README.md
60
- - Config.rb
86
+ - LICENSE.txt
61
87
  homepage: http://rubyworks.github.com/tomparse
62
88
  licenses:
63
89
  - BSD-2-Clause
@@ -79,8 +105,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
79
105
  version: '0'
80
106
  requirements: []
81
107
  rubyforge_project:
82
- rubygems_version: 1.8.11
108
+ rubygems_version: 1.8.24
83
109
  signing_key:
84
110
  specification_version: 3
85
111
  summary: TomDoc parser for Ruby
86
- test_files: []
112
+ test_files:
113
+ - test/helper.rb
114
+ - test/test_signatures.rb
115
+ - test/test_tags.rb
116
+ - test/test_tomdoc.rb
117
+ - test/test_prefixes.rb
118
+ has_rdoc:
data/.ruby DELETED
@@ -1,55 +0,0 @@
1
- ---
2
- source:
3
- - meta
4
- authors:
5
- - name: Trans
6
- email: transfire@gmail.com
7
- copyrights:
8
- - holder: Rubyworks
9
- year: '2012'
10
- license: BSD-2-Clause
11
- requirements:
12
- - name: citron
13
- groups:
14
- - test
15
- development: true
16
- - name: detroit
17
- groups:
18
- - build
19
- development: true
20
- dependencies: []
21
- alternatives: []
22
- conflicts: []
23
- repositories:
24
- - uri: git@github.com:rubyworks/tomparse.git
25
- scm: git
26
- name: upstream
27
- resources:
28
- - uri: http://rubyworks.github.com/tomparse
29
- name: home
30
- type: home
31
- - uri: http://rubydoc.info/gems/tomparse
32
- name: docs
33
- type: doc
34
- - uri: http://github.com/rubyworks/tomparse
35
- name: code
36
- type: code
37
- - uri: http://groups.google.com/groups/rubyworks-mailinglist
38
- name: mail
39
- type: mail
40
- extra: {}
41
- load_path:
42
- - lib
43
- revision: 0
44
- created: '2012-03-04'
45
- summary: TomDoc parser for Ruby
46
- title: TomParse
47
- version: 0.2.1
48
- name: tomparse
49
- description: ! 'TomParse is a Ruby TomDoc parser. It contains no other functionality
50
-
51
- than the ability to take a comment and parse it in accordance to the
52
-
53
- TomDoc standard.'
54
- organization: rubyworks
55
- date: '2012-04-30'
@@ -1,55 +0,0 @@
1
- ---
2
- source:
3
- - meta
4
- authors:
5
- - name: Trans
6
- email: transfire@gmail.com
7
- copyrights:
8
- - holder: Rubyworks
9
- year: '2012'
10
- license: BSD-2-Clause
11
- requirements:
12
- - name: citron
13
- groups:
14
- - test
15
- development: true
16
- - name: detroit
17
- groups:
18
- - build
19
- development: true
20
- dependencies: []
21
- alternatives: []
22
- conflicts: []
23
- repositories:
24
- - uri: git@github.com:rubyworks/tomparse.git
25
- scm: git
26
- name: upstream
27
- resources:
28
- - uri: http://rubyworks.github.com/tomparse
29
- name: home
30
- type: home
31
- - uri: http://rubydoc.info/gems/tomparse
32
- name: docs
33
- type: doc
34
- - uri: http://github.com/rubyworks/tomparse
35
- name: code
36
- type: code
37
- - uri: http://groups.google.com/groups/rubyworks-mailinglist
38
- name: mail
39
- type: mail
40
- extra: {}
41
- load_path:
42
- - lib
43
- revision: 0
44
- created: '2012-03-04'
45
- summary: TomDoc parser for Ruby
46
- title: TomParse
47
- version: 0.2.1
48
- name: tomparse
49
- description: ! 'TomParse is a Ruby TomDoc parser. It contains no other functionality
50
-
51
- than the ability to take a comment and parse it in accordance to the
52
-
53
- TomDoc standard.'
54
- organization: rubyworks
55
- date: '2012-04-30'