double_doc 2.0.0 → 2.0.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.
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