For generating all versions of a doc.
Unified · Split
| @@ -75,8 +75,9 @@ module Docs · 74 unmodified lines | ||
| 75 | 75 | find(name, version).store_page(store, page_id) |
| 76 | 76 | end |
| 77 | 77 | |
| 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) | |
| 80 | 81 | end |
| 81 | 82 | |
| 82 | 83 | def self.generate_manifest |
| @@ -52,6 +52,7 @@ class DocsCLI < Thor · 51 unmodified lines | ||
| 52 | 52 | |
| 53 | 53 | desc 'generate <doc> [--version] [--verbose] [--debug] [--force] [--package]', 'Generate a documentation' |
| 54 | 54 | option :version, type: :string |
| 55 | + option :all, type: :boolean | |
| 55 | 56 | option :verbose, type: :boolean |
| 56 | 57 | option :debug, type: :boolean |
| 57 | 58 | option :force, type: :boolean |
| @@ -74,16 +75,20 @@ class DocsCLI < Thor · 16 unmodified lines | ||
| 74 | 75 | return unless yes? 'Proceed? (y/n)' |
| 75 | 76 | end |
| 76 | 77 | |
| 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" } | |
| 82 | 86 | end |
| 83 | − puts 'Done' | |
| 84 | 87 | else |
| 85 | − puts "Failed!#{' (try running with --debug for more information)' unless options[:debug]}" | |
| 88 | + generate_doc(doc, package: options[:package]) | |
| 86 | 89 | end |
| 90 | + | |
| 91 | + generate_manifest if result | |
| 87 | 92 | rescue Docs::DocNotFound => error |
| 88 | 93 | handle_doc_not_found_error(error) |
| 89 | 94 | end |
| @@ -169,6 +174,17 @@ class DocsCLI < Thor · 79 unmodified lines | ||
| 169 | 174 | puts 'Run "thor docs:list" to see the list of docs and versions.' |
| 170 | 175 | end |
| 171 | 176 | |
| 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 | + | |
| 172 | 188 | def download_docs(docs) |
| 173 | 189 | # Don't allow downloaded files to be created as StringIO |
| 174 | 190 | require 'open-uri' |