--- /dev/null
+require 'rake'
+require 'rake/clean'
+
+CLOBBER.include('wiki')
+
+CACHE_PREFIX =
+ "http://www.gmodules.com/gadgets/proxy/container=default&debug=0&nocache=0/"
+
+namespace :wiki do
+ desc 'Autogenerate wiki pages'
+ task :supported_apis do
+ output = <<-WIKI
+#summary The list of supported APIs
+
+The Google API Client for Ruby is a small flexible client library for accessing
+the following Google APIs.
+
+WIKI
+ preferred_apis = {}
+ require 'google/api_client'
+ client = Google::APIClient.new
+ for api in client.discovered_apis
+ if !preferred_apis.has_key?(api.name)
+ preferred_apis[api.name] = api
+ elsif api.preferred
+ preferred_apis[api.name] = api
+ end
+ end
+ for api_name, api in preferred_apis
+ if api.documentation.to_s != "" && api.title != ""
+ output += (
+ "||#{CACHE_PREFIX}#{api['icons']['x16']}||" +
+ "[#{api.documentation} #{api.title}]||" +
+ "#{api.description}||\n"
+ )
+ end
+ end
+ output.gsub!(/-32\./, "-16.")
+ wiki_path = File.expand_path(
+ File.join(File.dirname(__FILE__), '../wiki/'))
+ Dir.mkdir(wiki_path) unless File.exists?(wiki_path)
+ File.open(File.join(wiki_path, 'SupportedAPIs.wiki'), 'w') do |file|
+ file.write(output)
+ end
+ end
+
+ task 'generate' => ['wiki:supported_apis']
+end
+
+begin
+ $LOAD_PATH.unshift(
+ File.expand_path(File.join(File.dirname(__FILE__), '../yard/lib'))
+ )
+ $LOAD_PATH.unshift(File.expand_path('.'))
+ $LOAD_PATH.uniq!
+
+ require 'yard'
+ require 'yard/rake/wikidoc_task'
+
+ namespace :wiki do
+ desc 'Generate Wiki Documentation with YARD'
+ YARD::Rake::WikidocTask.new do |yardoc|
+ yardoc.name = 'reference'
+ yardoc.options = [
+ '--verbose',
+ '--markup', 'markdown',
+ '-e', 'yard/lib/yard-google-code.rb',
+ '-p', 'yard/templates',
+ '-f', 'wiki',
+ '-o', 'wiki'
+ ]
+ yardoc.files = [
+ 'lib/**/*.rb', 'ext/**/*.c', '-', 'README.md', 'CHANGELOG.md'
+ ]
+ end
+
+ task 'generate' => ['wiki:reference', 'wiki:supported_apis']
+ end
+rescue LoadError
+ # If yard isn't available, it's not the end of the world
+ warn('YARD unavailable. Cannot fully generate wiki.')
+end