Skip to content

Commit

Permalink
Added task for wiki autogeneration.
Browse files Browse the repository at this point in the history
  • Loading branch information
Bob Aman committed Oct 15, 2011
1 parent 2dcdec1 commit 4db326a
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 3 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@ doc
heckling
pkg
specdoc
wiki
.google-api.yaml
27 changes: 24 additions & 3 deletions lib/google/api_client/discovery/api.rb
Original file line number Diff line number Diff line change
Expand Up @@ -85,14 +85,29 @@ def version
end

##
# Returns the parsed section of the discovery document that applies to
# this version of the service.
# Returns a human-readable title for the API.
#
# @return [Hash] The service description.
# @return [Hash] The API title.
def title
return @discovery_document['title']
end

##
# Returns a human-readable description of the API.
#
# @return [Hash] The API description.
def description
return @discovery_document['description']
end

##
# Returns a URI for the API documentation.
#
# @return [Hash] The API documentation.
def documentation
return Addressable::URI.parse(@discovery_document['documentationLink'])
end

##
# Returns true if this is the preferred version of this API.
#
Expand Down Expand Up @@ -216,6 +231,12 @@ def methods
)
end

##
# Allows deep inspection of the discovery document.
def [](key)
return @discovery_document[key]
end

##
# Converts the service to a flat mapping of RPC names and method objects.
#
Expand Down
41 changes: 41 additions & 0 deletions tasks/wiki.rake
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
require 'google/api_client'

CACHE_PREFIX =
"http://www.gmodules.com/gadgets/proxy/container=default&debug=0&nocache=0/"

namespace :wiki do
desc 'Autogenerate wiki pages'
task :generate 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 = {}
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
output += (
"||#{CACHE_PREFIX}#{api['icons']['x16']}||" +
"[#{api.documentation} #{api.title}]||" +
"#{api.description}||\n"
)
end
wiki_path = File.expand_path(
File.join(File.dirname(__FILE__), '../wiki/'))
Dir.mkdir(wiki_path) if !File.exist?(wiki_path)
File.open(File.join(wiki_path, 'SupportedAPIs.wiki'), 'w') do |file|
file.write(output)
end
end
end

# task 'clobber' => ['wiki:clobber_wiki']

0 comments on commit 4db326a

Please sign in to comment.