Skip to content

Commit caa2592

Browse files
committed
Add --all option to docs:generate command
For generating all versions of a doc.
1 parent fbbf9d5 commit caa2592

2 files changed

Lines changed: 26 additions & 9 deletions

File tree

lib/docs.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,9 @@ def self.generate_page(name, version, page_id)
7575
find(name, version).store_page(store, page_id)
7676
end
7777

78-
def self.generate(name, version)
79-
find(name, version).store_pages(store)
78+
def self.generate(doc, version = nil)
79+
doc = find(doc, version) unless doc.respond_to?(:store_pages)
80+
doc.store_pages(store)
8081
end
8182

8283
def self.generate_manifest

lib/tasks/docs.thor

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ class DocsCLI < Thor
5252

5353
desc 'generate <doc> [--version] [--verbose] [--debug] [--force] [--package]', 'Generate a documentation'
5454
option :version, type: :string
55+
option :all, type: :boolean
5556
option :verbose, type: :boolean
5657
option :debug, type: :boolean
5758
option :force, type: :boolean
@@ -74,16 +75,20 @@ class DocsCLI < Thor
7475
return unless yes? 'Proceed? (y/n)'
7576
end
7677

77-
if Docs.generate(name, options[:version])
78-
generate_manifest
79-
if options[:package]
80-
require 'unix_utils'
81-
package_doc(Docs.find(name, options[:version]))
78+
require 'unix_utils' if options[:package]
79+
80+
doc = Docs.find(name, options[:version])
81+
82+
result = if doc.version && options[:all]
83+
doc.superclass.versions.all? do |_doc|
84+
puts "==> #{_doc.version}"
85+
generate_doc(_doc, package: options[:package]).tap { puts "\n" }
8286
end
83-
puts 'Done'
8487
else
85-
puts "Failed!#{' (try running with --debug for more information)' unless options[:debug]}"
88+
generate_doc(doc, package: options[:package])
8689
end
90+
91+
generate_manifest if result
8792
rescue Docs::DocNotFound => error
8893
handle_doc_not_found_error(error)
8994
end
@@ -169,6 +174,17 @@ class DocsCLI < Thor
169174
puts 'Run "thor docs:list" to see the list of docs and versions.'
170175
end
171176

177+
def generate_doc(doc, package: nil)
178+
if Docs.generate(doc)
179+
package_doc(doc) if package
180+
puts 'Done'
181+
true
182+
else
183+
puts "Failed!#{' (try running with --debug for more information)' unless options[:debug]}"
184+
false
185+
end
186+
end
187+
172188
def download_docs(docs)
173189
# Don't allow downloaded files to be created as StringIO
174190
require 'open-uri'

0 commit comments

Comments
 (0)