double_doc 2.0.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0b493c229ee510da46837763b4a16a77430c1995
4
+ data.tar.gz: f2221645c30250b611de735808feaff8901a9439
5
+ SHA512:
6
+ metadata.gz: 2eb54cc44d17e555cad20baf5c19c329fbef31ed16af3e26a251e91030a7046042fcd72c7029bc132f5d45fcbb726ea93764b348134acd1736bda08bfcd0ba81
7
+ data.tar.gz: b49bd054fecd71297b57c01deea107f3375be701d411349fa6a106d90cb538c8b008770b4d5397f9c42f690413cd761afd6e5cd2ac7b30cf022e4187ddd4f836
data/lib/double_doc.rb CHANGED
@@ -1,2 +1,3 @@
1
1
  require "double_doc/version"
2
2
  require "double_doc/task"
3
+ require "double_doc/client"
@@ -0,0 +1,67 @@
1
+ require 'double_doc/import_handler'
2
+ require 'double_doc/html_generator'
3
+
4
+ module DoubleDoc
5
+ class Client
6
+ attr_reader :md_sources, :options
7
+
8
+ def initialize(md_sources, options = {})
9
+ @md_sources = [md_sources].flatten
10
+ @options = options
11
+ end
12
+
13
+ def process
14
+ sources = md_sources.map do |source|
15
+ if source.to_s =~ /\*/
16
+ import_handler.load_paths.map do |path|
17
+ Dir.glob(File.join(path, source))
18
+ end
19
+ else
20
+ import_handler.find_file(source).path
21
+ end
22
+ end.flatten.uniq
23
+
24
+ generated_md_files = []
25
+
26
+ md_dst = Pathname.new(options[:md_destination])
27
+ system('mkdir', '-p', md_dst.to_s)
28
+ sources.each do |src|
29
+ next if File.directory?(src)
30
+ dst = md_dst + File.basename(src)
31
+ puts "#{src} -> #{dst}" unless options[:quiet]
32
+
33
+ if src.to_s =~ /\.md$/
34
+ body = import_handler.resolve_imports(File.new(src))
35
+ else
36
+ body = File.read(src)
37
+ end
38
+
39
+ File.open(dst, 'w') do |out|
40
+ out.write(body)
41
+ end
42
+
43
+ generated_md_files << dst
44
+ end
45
+
46
+ args = options[:args] || {}
47
+ html_dst = Pathname.new(options[:html_destination]) if options[:html_destination]
48
+ if html_dst || args[:html_destination]
49
+ html_generator = DoubleDoc::HtmlGenerator.new(generated_md_files, options.merge(args))
50
+ html_generator.generate
51
+ end
52
+
53
+ sources
54
+ end
55
+
56
+ private
57
+
58
+ def import_handler
59
+ return @import_handler if defined?(@import_handler)
60
+
61
+ roots = options[:roots] || [File.dirname(__FILE__)]
62
+ import_options = options.fetch(:import, {})
63
+ roots << { :quiet => options[:quiet] }.merge(import_options)
64
+ @import_handler = DoubleDoc::ImportHandler.new(*roots)
65
+ end
66
+ end
67
+ end
@@ -14,6 +14,7 @@ module DoubleDoc
14
14
  @html_renderer = options[:html_renderer] || HtmlRenderer
15
15
  @stylesheet = options[:html_css] || DEFAULT_CSS
16
16
  @title = options[:title] || 'Documentation'
17
+ @quiet = options[:quiet] == true
17
18
  @exclude_from_navigation = options[:exclude_from_navigation] || []
18
19
  end
19
20
 
@@ -32,7 +33,7 @@ module DoubleDoc
32
33
  end
33
34
 
34
35
  dst = @output_directory + path
35
- puts "#{src} -> #{dst}"
36
+ puts "#{src} -> #{dst}" unless @quiet
36
37
  FileUtils.mkdir_p(File.dirname(dst))
37
38
 
38
39
  if from_markdown
@@ -4,11 +4,14 @@ require 'bundler'
4
4
 
5
5
  module DoubleDoc
6
6
  class ImportHandler
7
- attr_reader :root, :load_paths
7
+ attr_reader :load_paths
8
8
 
9
- def initialize(root, options = {})
10
- @root = Pathname.new(root)
11
- @load_paths = [@root]
9
+ def initialize(*roots)
10
+ options = roots.pop if roots.last.is_a?(Hash)
11
+ options ||= {}
12
+
13
+ @load_paths = roots.map {|root| Pathname.new(root)}
14
+ @quiet = options[:quiet] == true
12
15
 
13
16
  if options[:gemfile]
14
17
  begin
@@ -35,6 +38,18 @@ module DoubleDoc
35
38
  end
36
39
  end
37
40
 
41
+ def find_file(path)
42
+ load_path = @load_paths.detect do |load_path|
43
+ (load_path + path).exist?
44
+ end
45
+
46
+ unless load_path
47
+ raise LoadError, "No such file or directory: #{path}"
48
+ end
49
+
50
+ File.new(load_path + path)
51
+ end
52
+
38
53
  protected
39
54
 
40
55
  def load_paths_from_gemfile(root)
@@ -45,7 +60,7 @@ module DoubleDoc
45
60
  end
46
61
 
47
62
  with_gemfile(gemfile) do
48
- puts "Loading paths from #{gemfile}"
63
+ puts "Loading paths from #{gemfile}" unless @quiet
49
64
 
50
65
  defn = Bundler::Definition.build(gemfile, root + "Gemfile.lock", nil)
51
66
  defn.validate_ruby!
@@ -83,18 +98,6 @@ module DoubleDoc
83
98
  end
84
99
  end
85
100
 
86
- def find_file(path)
87
- load_path = @load_paths.detect do |load_path|
88
- (load_path + path).exist?
89
- end
90
-
91
- unless load_path
92
- raise LoadError, "No such file or directory: #{path}"
93
- end
94
-
95
- File.new(load_path + path)
96
- end
97
-
98
101
  def with_gemfile(gemfile)
99
102
  ENV["BUNDLE_GEMFILE"], orig_gemfile = gemfile.to_s, ENV["BUNDLE_GEMFILE"]
100
103
  yield
@@ -1,19 +1,19 @@
1
1
  require 'rake'
2
2
  require 'pathname'
3
3
  require 'tmpdir'
4
- require 'double_doc/import_handler'
5
- require 'double_doc/html_generator'
4
+ require 'double_doc/client'
6
5
 
7
6
  module DoubleDoc
8
7
 
9
8
  ## ### Rake Task
10
9
  ## It is very easy to set up a rake task for generating your documentation. All you have to do is
11
- ## tell DoubleDoc what the input files are, and where you want the output to go.
10
+ ## tell DoubleDoc what the input files are, and where you want the output to go. In the example,
11
+ ## `double_doc` is picked to avoid conflicts with the `doc` rake task in rails.
12
12
  ##
13
13
  ## ```ruby
14
14
  ## require 'double_doc'
15
15
  ##
16
- ## DoubleDoc::Task.new(:doc,
16
+ ## DoubleDoc::Task.new(:double_doc,
17
17
  ## :sources => 'doc/source/*.md',
18
18
  ## :md_destination => 'doc/generated',
19
19
  ## :html_destination => 'site'
@@ -32,14 +32,15 @@ module DoubleDoc
32
32
  ## | __html_css__ | You can use your own custom CSS document by specifying it's path here.
33
33
  ## | __title__ | The title you want in the generated HTML. Defaults to "Documentation".
34
34
  ##
35
- ## If you just want to use double doc to generate your README.md for github, you should write your documentation in doc/README.md and put his in your Rakefile:
35
+ ## If you just want to use double_doc to generate your README.md for github, you should write your documentation in doc/README.md and put this in your Rakefile:
36
36
  ##
37
37
  ## ```ruby
38
38
  ## require 'double_doc'
39
39
  ##
40
- ## DoubleDoc::Task.new(:doc, :sources => 'doc/README.md', :md_destination => '.')
40
+ ## DoubleDoc::Task.new(:double_doc, :sources => 'doc/README.md', :md_destination => '.')
41
41
  ## ```
42
- ## Then all you have to do is to run `rake doc`, and you will have a `readme.md` in the root of your project.
42
+ ##
43
+ ## Then all you have to do is to run `rake double_doc`, and you will have a `readme.md` in the root of your project.
43
44
  ##
44
45
  ## If you have a gh-pages branch set up in your repository, you can event run `rake doc:publish` to generate html documentation and push it to your github pages.
45
46
  class Task
@@ -48,41 +49,20 @@ module DoubleDoc
48
49
  def initialize(task_name, options)
49
50
  md_dst = Pathname.new(options[:md_destination])
50
51
  html_dst = Pathname.new(options[:html_destination]) if options[:html_destination]
51
- sources = FileList[*options[:sources]].uniq
52
52
 
53
53
  destinations = [md_dst, html_dst].compact
54
54
  destinations.each do |dst|
55
55
  directory(dst.to_s)
56
56
  end
57
57
 
58
- desc "Generate markdown #{html_dst ? 'and HTML ' : ''}DoubleDoc documentation from #{sources.join(', ')}"
59
- generated_task = task(task_name => destinations) do |t, args|
60
- import_handler = DoubleDoc::ImportHandler.new(options[:root] || Rake.original_dir, options.fetch(:import, {}))
61
-
62
- generated_md_files = []
63
-
64
- sources.each do |src|
65
- dst = md_dst + File.basename(src)
66
- puts "#{src} -> #{dst}"
67
-
68
- if src.to_s =~ /\.md$/
69
- body = import_handler.resolve_imports(File.new(src))
70
- else
71
- body = File.new(src).read
72
- end
73
-
74
- File.open(dst, 'w') do |out|
75
- out.write(body)
76
- end
77
-
78
- generated_md_files << dst
79
- end
80
-
81
- if html_dst || args[:html_destination]
82
- html_generator = DoubleDoc::HtmlGenerator.new(generated_md_files, options.merge(args))
83
- html_generator.generate
84
- end
58
+ roots = Array(options[:root])
59
+ roots << Rake.original_dir if roots.empty?
85
60
 
61
+ desc "Generate markdown #{html_dst ? 'and HTML ' : ''}DoubleDoc documentation"
62
+ generated_task = task(task_name => destinations) do |t, args|
63
+ opts = args.merge(options.merge(:roots => roots))
64
+ client = DoubleDoc::Client.new(options[:sources], opts)
65
+ client.process
86
66
  end
87
67
 
88
68
  has_github_pages = !`git branch | grep 'gh-pages'`.empty? rescue false
@@ -1,4 +1,4 @@
1
1
  ## ## DoubleDoc 2.0
2
2
  module DoubleDoc
3
- VERSION = "2.0.0"
3
+ VERSION = "2.0.1"
4
4
  end
data/readme.md CHANGED
@@ -1,4 +1,7 @@
1
- ## DoubleDoc 1.3
1
+ ## DoubleDoc 2.0
2
+
3
+ [![Build Status](https://travis-ci.org/zendesk/double_doc.svg?branch=master)](https://travis-ci.org/zendesk/double_doc)
4
+
2
5
 
3
6
  One of the challenges you face when writing public documention for code or APIs, is that you have to remember to update the documentation
4
7
  when ever you change the API. The main reason why this is a problem is that very often the documentation lives very for from your code.
@@ -66,12 +69,13 @@ And DoubleDoc will generate this markdown document for you:
66
69
 
67
70
  ### Rake Task
68
71
  It is very easy to set up a rake task for generating your documentation. All you have to do is
69
- tell DoubleDoc what the input files are, and where you want the output to go.
72
+ tell DoubleDoc what the input files are, and where you want the output to go. In the example,
73
+ `double_doc` is picked to avoid conflicts with the `doc` rake task in rails.
70
74
 
71
75
  ```ruby
72
76
  require 'double_doc'
73
77
 
74
- DoubleDoc::Task.new(:doc,
78
+ DoubleDoc::Task.new(:double_doc,
75
79
  :sources => 'doc/source/*.md',
76
80
  :md_destination => 'doc/generated',
77
81
  :html_destination => 'site'
@@ -90,21 +94,20 @@ The available options are:
90
94
  | __html_css__ | You can use your own custom CSS document by specifying it's path here.
91
95
  | __title__ | The title you want in the generated HTML. Defaults to "Documentation".
92
96
 
93
- If you just want to use double doc to generate your README.md for github, you should write your documentation in doc/README.md and put his in your Rakefile:
97
+ If you just want to use double_doc to generate your README.md for github, you should write your documentation in doc/README.md and put this in your Rakefile:
94
98
 
95
99
  ```ruby
96
100
  require 'double_doc'
97
101
 
98
- DoubleDoc::Task.new(:doc, :sources => 'doc/README.md', :md_destination => '.')
102
+ DoubleDoc::Task.new(:double_doc, :sources => 'doc/README.md', :md_destination => '.')
99
103
  ```
100
- Then all you have to do is to run `rake doc`, and you will have a `readme.md` in the root of your project.
104
+
105
+ Then all you have to do is to run `rake double_doc`, and you will have a `readme.md` in the root of your project.
101
106
 
102
107
  If you have a gh-pages branch set up in your repository, you can event run `rake doc:publish` to generate html documentation and push it to your github pages.
103
108
 
104
109
  ### Notes
105
- DoubleDoc is tested as working on both ruby 1.8.7 and 1.9.3, but does not work on jruby because if it's dependency on redcarpet.
106
-
107
- [![Build Status](https://secure.travis-ci.org/staugaard/double_doc.png?branch=master)](http://travis-ci.org/staugaard/double_doc)
110
+ DoubleDoc is tested as working on both ruby 1.8.7 and 1.9.3, but does not work on jruby because of its dependency on redcarpet.
108
111
 
109
112
  ### TODO
110
113
  * Tests
@@ -0,0 +1,51 @@
1
+ require 'test_helper'
2
+
3
+ describe "import handler" do
4
+ subject do
5
+ DoubleDoc::Client.new(sources, options)
6
+ end
7
+
8
+ describe '#process' do
9
+ let(:destination) { Dir.mktmpdir }
10
+ let(:sources) { [Bundler.root + 'doc/readme.md'] }
11
+ let(:options) { { :md_destination => destination, :roots => [Bundler.root], :quiet => true } }
12
+
13
+ before do
14
+ subject.process
15
+ end
16
+
17
+ it 'produces output at the md_destination' do
18
+ File.exists?(destination + '/readme.md').must_equal true
19
+ end
20
+
21
+ describe 'with a missing directory' do
22
+ let(:destination) { Dir.mktmpdir + '/tmp' }
23
+
24
+ it 'creates the directory' do
25
+ File.exists?(destination + '/readme.md').must_equal true
26
+ end
27
+ end
28
+
29
+ describe 'with multiple sources' do
30
+ let(:sources) { %w(readme todo).map{|f| Bundler.root + "doc/#{f}.md" } }
31
+
32
+ it 'processes all sources' do
33
+ File.exists?(destination + '/readme.md').must_equal true
34
+ File.exists?(destination + '/todo.md').must_equal true
35
+ end
36
+ end
37
+
38
+ describe 'producing html' do
39
+ let(:options) { {
40
+ :md_destination => destination,
41
+ :html_destination => destination + '/html',
42
+ :roots => [Bundler.root],
43
+ :quiet => true
44
+ } }
45
+
46
+ it 'creates html files' do
47
+ File.exists?(destination + '/html/readme.html').must_equal true
48
+ end
49
+ end
50
+ end
51
+ end
@@ -10,7 +10,10 @@ describe "the html generator" do
10
10
  @output_file_name = @destination + 'input.html'
11
11
  Dir.mkdir(@root + 'source')
12
12
  Dir.mkdir(@destination)
13
- @generator = DoubleDoc::HtmlGenerator.new([@input_file_name], { :html_destination => @destination })
13
+ @generator = DoubleDoc::HtmlGenerator.new([@input_file_name], {
14
+ :html_destination => @destination,
15
+ :quiet => true
16
+ })
14
17
  end
15
18
 
16
19
  after do
@@ -63,7 +66,8 @@ describe "the html generator" do
63
66
 
64
67
  it "should generate links for each page in the navigation area" do
65
68
  generator = DoubleDoc::HtmlGenerator.new(@input_files, {
66
- :html_destination => @destination
69
+ :html_destination => @destination,
70
+ :quiet => true
67
71
  })
68
72
  generator.generate
69
73
 
@@ -76,7 +80,8 @@ describe "the html generator" do
76
80
  it "should skip specified filed" do
77
81
  generator = DoubleDoc::HtmlGenerator.new(@input_files, {
78
82
  :html_destination => @destination,
79
- :exclude_from_navigation => ['file_two.html']
83
+ :exclude_from_navigation => ['file_two.html'],
84
+ :quiet => true
80
85
  })
81
86
  generator.generate
82
87
 
@@ -2,13 +2,24 @@ require 'test_helper'
2
2
 
3
3
  describe "import handler" do
4
4
  subject do
5
- DoubleDoc::ImportHandler.new(root, options)
5
+ roots = Array(root).push(options.merge( :quiet => true ))
6
+ DoubleDoc::ImportHandler.new(*roots)
6
7
  end
7
8
 
8
9
  after do
9
10
  ENV["BUNDLE_GEMFILE"] = Bundler.root.join("Gemfile").to_s
10
11
  end
11
12
 
13
+ describe "multiple roots" do
14
+ let(:root) { [Bundler.root + 'lib', Bundler.root + 'doc'] }
15
+ let(:options) {{}}
16
+
17
+ it "finds files from either root" do
18
+ subject.find_file("double_doc.rb").must_be_instance_of File
19
+ subject.find_file("readme.md").must_be_instance_of File
20
+ end
21
+ end
22
+
12
23
  describe "with gemfile" do
13
24
  let(:root) { Bundler.root }
14
25
  let(:options) {{ :gemfile => true }}
@@ -16,19 +27,19 @@ describe "import handler" do
16
27
  describe "rubygems" do
17
28
  describe "load_paths" do
18
29
  it "should add Gemfile load paths" do
19
- subject.load_paths.must_include subject.root
30
+ subject.load_paths.must_include root
20
31
  subject.load_paths.size.must_be :>, 1
21
32
  end
22
33
  end
23
34
 
24
35
  describe "find_file" do
25
36
  it "should resolve files" do
26
- subject.send(:find_file, "bundler.rb").must_be_instance_of File
37
+ subject.find_file("bundler.rb").must_be_instance_of File
27
38
  end
28
39
 
29
40
  it "should raise if unable to find file" do
30
41
  lambda do
31
- subject.send(:find_file, "nope.rb")
42
+ subject.find_file("nope.rb")
32
43
  end.must_raise LoadError
33
44
  end
34
45
  end
@@ -36,11 +47,11 @@ describe "import handler" do
36
47
 
37
48
  describe "find_file" do
38
49
  it "should resolve files from path" do
39
- subject.send(:find_file, "double_doc.rb").must_be_instance_of File
50
+ subject.find_file("double_doc.rb").must_be_instance_of File
40
51
  end
41
52
 
42
53
  it "should resolve file from git" do
43
- subject.send(:find_file, "mime-types.rb").must_be_instance_of File
54
+ subject.find_file("mime-types.rb").must_be_instance_of File
44
55
  end
45
56
  end
46
57
  end
metadata CHANGED
@@ -1,110 +1,97 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: double_doc
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
5
- prerelease:
4
+ version: 2.0.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Mick Staugaard
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-07-15 00:00:00.000000000 Z
11
+ date: 2015-11-09 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: guard
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
- version: '0'
19
+ version: '1.6'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: '0'
26
+ version: '1.6'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: minitest
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rake
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: erubis
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - ">="
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - ">="
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: redcarpet
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ~>
73
+ - - "<"
84
74
  - !ruby/object:Gem::Version
85
- version: '2.1'
75
+ version: '4'
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ~>
80
+ - - "<"
92
81
  - !ruby/object:Gem::Version
93
- version: '2.1'
82
+ version: '4'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: pygments.rb
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ~>
87
+ - - "~>"
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0.2'
102
90
  type: :runtime
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ~>
94
+ - - "~>"
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0.2'
110
97
  description: A simple framework for writing and generating beautiful documentation
@@ -115,53 +102,49 @@ executables: []
115
102
  extensions: []
116
103
  extra_rdoc_files: []
117
104
  files:
105
+ - lib/double_doc.rb
106
+ - lib/double_doc/client.rb
118
107
  - lib/double_doc/doc_extractor.rb
119
108
  - lib/double_doc/html_generator.rb
120
109
  - lib/double_doc/html_renderer.rb
121
110
  - lib/double_doc/import_handler.rb
122
111
  - lib/double_doc/task.rb
123
112
  - lib/double_doc/version.rb
124
- - lib/double_doc.rb
125
113
  - lib/guard/double_doc.rb
126
114
  - lib/guard/doubledoc.rb
115
+ - readme.md
127
116
  - templates/default.html.erb
128
117
  - templates/screen.css
129
- - readme.md
118
+ - test/client_test.rb
130
119
  - test/doc_extractor_test.rb
131
120
  - test/html_generator_test.rb
132
121
  - test/import_handler_test.rb
133
122
  - test/test_helper.rb
134
123
  homepage: http://staugaard.github.com/double_doc
135
124
  licenses: []
125
+ metadata: {}
136
126
  post_install_message:
137
127
  rdoc_options: []
138
128
  require_paths:
139
129
  - lib
140
130
  required_ruby_version: !ruby/object:Gem::Requirement
141
- none: false
142
131
  requirements:
143
- - - ! '>='
132
+ - - ">="
144
133
  - !ruby/object:Gem::Version
145
134
  version: '0'
146
- segments:
147
- - 0
148
- hash: -1964755725115919551
149
135
  required_rubygems_version: !ruby/object:Gem::Requirement
150
- none: false
151
136
  requirements:
152
- - - ! '>='
137
+ - - ">="
153
138
  - !ruby/object:Gem::Version
154
139
  version: '0'
155
- segments:
156
- - 0
157
- hash: -1964755725115919551
158
140
  requirements: []
159
141
  rubyforge_project:
160
- rubygems_version: 1.8.25
142
+ rubygems_version: 2.4.5
161
143
  signing_key:
162
- specification_version: 3
144
+ specification_version: 4
163
145
  summary: Documentation right where you want it
164
146
  test_files:
147
+ - test/client_test.rb
165
148
  - test/doc_extractor_test.rb
166
149
  - test/html_generator_test.rb
167
150
  - test/import_handler_test.rb