rdoc-readme 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,5 +1,7 @@
1
1
  .*.swp
2
2
  *.gem
3
3
  .bundle
4
+ coverage/
4
5
  Gemfile.lock
6
+ html/
5
7
  pkg/*
@@ -0,0 +1,28 @@
1
+ = RDoc::Readme History
2
+
3
+ == 2012-01-03 v0.1.2
4
+
5
+ * Actual tests!
6
+ * Play nice with +RDoc::Task+
7
+
8
+ == 2011-04-06 v0.1.1
9
+
10
+ * Rake task can now send output to a file.
11
+
12
+ == 2011-04-06 v0.1.0
13
+
14
+ * +#from_file+ now returns array instead of printing to +$stdout+.
15
+ * +#from_file_handle+ now returns array instead of printing to +$stdout+.
16
+
17
+ == 2011-04-06 v0.0.3
18
+
19
+ * Added Rake task
20
+
21
+ == 2011-04-01 v0.0.2
22
+
23
+ * Documentation fix.
24
+
25
+ == 2011-04-01 v0.0.1
26
+
27
+ * Initial prototype release.
28
+
@@ -25,8 +25,15 @@
25
25
  # Pull in RDoc from $stdin and print to $stdout.
26
26
  RDoc::Readme::RakeTask.new
27
27
 
28
+ == Author
29
+
30
+ blair christensen. <mailto:blair.christensen@gmail.com>
31
+
32
+ == Homepage
33
+
34
+ https://github.com/blairc/rdoc-readme/
35
+
28
36
  == To Do
29
37
 
30
- * Tests!
31
38
  * Use +RDoc+ and/or +YARD+ to handle the parsing.
32
39
 
data/Rakefile CHANGED
@@ -1,6 +1,24 @@
1
- require 'bundler'
2
- Bundler::GemHelper.install_tasks
1
+ require 'bundler/gem_tasks'
2
+ require File.expand_path( File.join( File.dirname(__FILE__), 'lib', 'rdoc-readme', 'rake_task' ) )
3
+ require 'rake/clean'
4
+ require 'rake/testtask'
5
+ require 'rdoc/task'
6
+
7
+ %w{ coverage html out.txt pkg }.each { |p| CLEAN.include(p) }
8
+ %w{ build install test }.each { |t| task t.to_sym => [ 'rdoc:readme' ] }
9
+
10
+ task :default => :test
11
+
12
+ Rake::TestTask.new do |t|
13
+ t.libs << 'test'
14
+ t.test_files = FileList['test/test*.rb']
15
+ t.verbose = true
16
+ end
3
17
 
4
- require './lib/rdoc-readme/rake_task'
5
18
  RDoc::Readme::RakeTask.new 'lib/rdoc-readme.rb', 'README.rdoc'
6
19
 
20
+ RDoc::Task.new do |rdoc|
21
+ rdoc.main = 'README.rdoc'
22
+ rdoc.rdoc_files.include('README.rdoc', 'lib/**/*.rb')
23
+ end
24
+
@@ -26,22 +26,33 @@ module RDoc # :nodoc:
26
26
  # # Pull in RDoc from $stdin and print to $stdout.
27
27
  # RDoc::Readme::RakeTask.new
28
28
  #
29
+ # == Author
30
+ #
31
+ # blair christensen. <mailto:blair.christensen@gmail.com>
32
+ #
33
+ # == Homepage
34
+ #
35
+ # https://github.com/blairc/rdoc-readme/
36
+ #
29
37
  # == To Do
30
38
  #
31
- # * Tests!
32
39
  # * Use +RDoc+ and/or +YARD+ to handle the parsing.
33
40
  #
34
41
  class Readme
35
42
 
36
- # Create new +RDoc::Readme+ generator.
43
+ #
44
+ # Create new RDoc::Readme generator.
45
+ #
37
46
  def initialize
38
47
  yield self if block_given?
48
+ self
39
49
  end
40
50
 
41
- # Read RDoc from file handle. Returns array of output lines.
51
+ #
52
+ # Read RDoc from file handle. Returns +Array+ of output lines.
42
53
  #
43
54
  # Params:
44
- # +fh+:: Read from this file handle.
55
+ # +fh+:: Read from this file handle.
45
56
  def from_file_handle(fh)
46
57
  out = []
47
58
  rdoc = false
@@ -50,38 +61,45 @@ module RDoc # :nodoc:
50
61
  line.chomp!
51
62
 
52
63
  if rdoc
53
- comment?(line) ? ( out << sanitize(line) ) : rdoc = false
64
+ _comment?(line) ? ( out << _sanitize(line) ) : rdoc = false
54
65
  else
55
- start?(line) ? ( rdoc = true ; out << sanitize(line) ) : rdoc = false
66
+ _start?(line) ? ( rdoc = true ; out << _sanitize(line) ) : rdoc = false
56
67
  end
57
68
  end
58
69
 
59
70
  out
60
71
  end
61
72
 
62
- # Read RDoc from file. Returns array of output lines.
73
+ #
74
+ # Read RDoc from file. Returns +Array+ of output lines.
63
75
  #
64
76
  # Params:
65
- # +fn+:: Read from this file.
77
+ # +fn+:: Read from this file.
66
78
  def from_file(fn)
67
79
  from_file_handle( File.open(fn) )
68
80
  end
69
81
 
70
82
  private
71
83
 
72
- # Is this a comment?
73
- def comment?(text)
84
+ #
85
+ # Returns +true+ if +text+ contains a comment, otherwise +nil+.
86
+ #
87
+ def _comment?(text)
74
88
  text =~ /^\s*#\s*/
75
89
  end
76
90
 
77
- # Is this the start of RDoc markup?
78
- def start?(text)
79
- text =~ /^\s*#\s+=/
91
+ #
92
+ # Returns +text+ with leading whitespace and comment prefix removed.
93
+ #
94
+ def _sanitize(text)
95
+ text.lstrip.gsub(/^#\s?/, '')
80
96
  end
81
97
 
82
- # Remove leading whitespace and comments from RDoc text.
83
- def sanitize(text)
84
- text.lstrip.gsub(/^#\s?/, '')
98
+ #
99
+ # Returns +true+ if +text+ is the start of RDoc comments, otherwise +nil+.
100
+ #
101
+ def _start?(text)
102
+ text =~ /^\s*#\s+=/
85
103
  end
86
104
 
87
105
  end
@@ -12,7 +12,7 @@ module RDoc # :nodoc:
12
12
 
13
13
  desc('Generate README from RDoc')
14
14
  task @name do
15
- RDoc::Readme.new do |rdoc|
15
+ ::RDoc::Readme.new do |rdoc|
16
16
  if src && dst
17
17
  File.open(dst, 'w').puts( rdoc.from_file(src) )
18
18
  elsif src
@@ -1,5 +1,5 @@
1
1
  module RDoc # :nodoc:
2
2
  class Readme
3
- VERSION = '0.1.1'
3
+ VERSION = '0.1.2'
4
4
  end
5
5
  end
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
8
8
  s.platform = Gem::Platform::RUBY
9
9
  s.authors = ['Blair Christensen']
10
10
  s.email = ['blair.christensen@gmail.com']
11
- s.homepage = ""
11
+ s.homepage = 'https://github.com/blairc/rdoc-readme/'
12
12
  s.summary = %q{Extract high-level RDoc for use in a README file}
13
13
  s.description = %q{Extract high-level RDoc for use in a README file}
14
14
 
@@ -18,4 +18,8 @@ Gem::Specification.new do |s|
18
18
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
19
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
20
  s.require_paths = ['lib']
21
+
22
+ s.add_development_dependency 'rake', '~> 0.9.2'
23
+ s.add_development_dependency 'rdoc'
24
+ s.add_development_dependency 'simplecov'
21
25
  end
@@ -0,0 +1,39 @@
1
+ = RDoc::Readme - Extract high-level RDOC for use in a README file
2
+
3
+ == Usage
4
+
5
+ require 'rdoc-readme'
6
+
7
+ RDoc::Readme.new do |rdoc|
8
+ # Read from file
9
+ rdoc.from_file(file_name).each { |line| puts line }
10
+
11
+ # Read from file handle
12
+ rdoc.from_file_handle($stdin).each { |line| puts line }
13
+ end
14
+
15
+ == Rake Task
16
+
17
+ require 'rdoc-readme/rake_task'
18
+
19
+ # Pull in RDoc from source file and print to destination file.
20
+ RDoc::Readme::RakeTask.new 'lib/rdoc-readme.rb', 'README.rdoc'
21
+
22
+ # Pull in RDoc from source file and print to $stdout.
23
+ RDoc::Readme::RakeTask.new 'lib/rdoc-readme.rb'
24
+
25
+ # Pull in RDoc from $stdin and print to $stdout.
26
+ RDoc::Readme::RakeTask.new
27
+
28
+ == Author
29
+
30
+ blair christensen. <mailto:blair.christensen@gmail.com>
31
+
32
+ == Homepage
33
+
34
+ https://github.com/blairc/rdoc-readme/
35
+
36
+ == To Do
37
+
38
+ * Use +RDoc+ and/or +YARD+ to handle the parsing.
39
+
@@ -0,0 +1,97 @@
1
+ # encoding: utf-8
2
+
3
+ require 'simplecov'
4
+ SimpleCov.start
5
+
6
+ require 'rdoc-readme'
7
+ require 'test/unit'
8
+
9
+ class TestRDocReadme < Test::Unit::TestCase
10
+
11
+ @@expected = File.readlines( File.join( File.dirname(__FILE__), 'data', 'expected' ) )
12
+ @@expected.map { |line| line.chomp! }
13
+
14
+ def setup
15
+ @fn = File.expand_path( File.join( File.dirname(__FILE__), '..', 'lib', 'rdoc-readme.rb' ) )
16
+ end
17
+
18
+ def test_initialization
19
+ blockable = false
20
+ r = RDoc::Readme.new do |r|
21
+ assert_kind_of RDoc::Readme, r
22
+ blockable = true
23
+ end
24
+ assert blockable, 'works as block'
25
+ assert_kind_of RDoc::Readme, r
26
+ assert_kind_of RDoc::Readme, RDoc::Readme.new
27
+ end
28
+
29
+ def test_from_file_handle
30
+ RDoc::Readme.new do |r|
31
+ assert_not_nil @@expected
32
+ assert_kind_of Array, @@expected
33
+ assert_equal 39, @@expected.size
34
+
35
+ results = r.from_file_handle( File.open(@fn) )
36
+
37
+ assert_not_nil results
38
+ assert_kind_of Array, results
39
+ assert_equal @@expected.size, results.size
40
+ @@expected.each_with_index { |line, idx| assert_equal line, results[idx] }
41
+ end
42
+ end
43
+
44
+ def test_from_file
45
+ RDoc::Readme.new do |r|
46
+ assert_not_nil @@expected
47
+ assert_kind_of Array, @@expected
48
+ assert_equal 39, @@expected.size
49
+
50
+ results = r.from_file(@fn)
51
+ assert_not_nil results
52
+ assert_kind_of Array, results
53
+ assert_equal @@expected.size, results.size
54
+ @@expected.each_with_index { |line, idx| assert_equal line, results[idx] }
55
+ end
56
+ end
57
+
58
+ def test_underscore_comment?
59
+ RDoc::Readme.new do |r|
60
+ [ "", "foo" ].each do |txt|
61
+ assert_nil r.send(:_comment?, txt)
62
+ end
63
+ [ "#", " #", "# #" ].each do |txt|
64
+ assert r.send(:_comment?, txt)
65
+ end
66
+ end
67
+ end
68
+
69
+ def test_underscore_sanitize
70
+ RDoc::Readme.new do |r|r
71
+ {
72
+ '' => '',
73
+ 'foo' => 'foo',
74
+ 'foo #' => 'foo #',
75
+ ' # foo' => 'foo',
76
+ '# foo' => 'foo',
77
+ '#' => ''
78
+ }.each_pair do |input, output|
79
+ assert_equal output, r.send(:_sanitize, input)
80
+ end
81
+ end
82
+ end
83
+ #text.lstrip.gsub(/^#\s?/, '')
84
+
85
+ def test_underscore_start?
86
+ RDoc::Readme.new do |r|
87
+ [ "", "foo", "#", " #", "# #", "#=", "# foo" ].each do |txt|
88
+ assert_nil r.send(:_start?, txt)
89
+ end
90
+ [ "# = foo", " # == foo" ].each do |txt|
91
+ assert r.send(:_start?, txt)
92
+ end
93
+ end
94
+ end
95
+
96
+ end
97
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdoc-readme
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,9 +9,41 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-04-06 00:00:00.000000000 -05:00
13
- default_executable:
14
- dependencies: []
12
+ date: 2012-01-03 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ requirement: &70363536723760 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 0.9.2
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *70363536723760
25
+ - !ruby/object:Gem::Dependency
26
+ name: rdoc
27
+ requirement: &70363536723340 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70363536723340
36
+ - !ruby/object:Gem::Dependency
37
+ name: simplecov
38
+ requirement: &70363536759740 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70363536759740
15
47
  description: Extract high-level RDoc for use in a README file
16
48
  email:
17
49
  - blair.christensen@gmail.com
@@ -22,7 +54,7 @@ extra_rdoc_files: []
22
54
  files:
23
55
  - .gitignore
24
56
  - Gemfile
25
- - HISTORY
57
+ - HISTORY.rdoc
26
58
  - README.rdoc
27
59
  - Rakefile
28
60
  - bin/rdoc2readme
@@ -30,8 +62,9 @@ files:
30
62
  - lib/rdoc-readme/rake_task.rb
31
63
  - lib/rdoc-readme/version.rb
32
64
  - rdoc-readme.gemspec
33
- has_rdoc: true
34
- homepage: ''
65
+ - test/data/expected
66
+ - test/test_rdoc_readme.rb
67
+ homepage: https://github.com/blairc/rdoc-readme/
35
68
  licenses: []
36
69
  post_install_message:
37
70
  rdoc_options: []
@@ -43,16 +76,24 @@ required_ruby_version: !ruby/object:Gem::Requirement
43
76
  - - ! '>='
44
77
  - !ruby/object:Gem::Version
45
78
  version: '0'
79
+ segments:
80
+ - 0
81
+ hash: 595138242485204300
46
82
  required_rubygems_version: !ruby/object:Gem::Requirement
47
83
  none: false
48
84
  requirements:
49
85
  - - ! '>='
50
86
  - !ruby/object:Gem::Version
51
87
  version: '0'
88
+ segments:
89
+ - 0
90
+ hash: 595138242485204300
52
91
  requirements: []
53
92
  rubyforge_project: rdoc-readme
54
- rubygems_version: 1.6.0
93
+ rubygems_version: 1.8.7
55
94
  signing_key:
56
95
  specification_version: 3
57
96
  summary: Extract high-level RDoc for use in a README file
58
- test_files: []
97
+ test_files:
98
+ - test/data/expected
99
+ - test/test_rdoc_readme.rb
data/HISTORY DELETED
@@ -1,16 +0,0 @@
1
- 2011-04-06 v0.1.1
2
- - Rake task can now send output to a file.
3
-
4
- 2011-04-06 v0.1.0
5
- - '#from_file' now returns array instead of printing to $stdout.
6
- - '#from_file_handle' now returns array instead of printing to $stdout.
7
-
8
- 2011-04-06 v0.0.3
9
- - Added Rake task
10
-
11
- 2011-04-01 v0.0.2
12
- - Documentation fix.
13
-
14
- 2011-04-01 v0.0.1
15
- - Initial prototype release.
16
-