[docs] add task to build/publish supported services matrix

This commit is contained in:
geemus 2011-08-09 10:56:54 -05:00
parent ad3ad56f10
commit 822fd3c81e
3 changed files with 69 additions and 1 deletions

3
.gitignore vendored
View File

@ -4,9 +4,10 @@
*.sw?
.bundle
.DS_Store
docs/_site/*
coverage
doc/*
docs/_site/*
docs/about/supported_services.markdown
Gemfile.lock
rdoc
pkg

View File

@ -250,6 +250,7 @@ task :changelog do
end
task :docs do
Rake::Task[:supported_services_docs].invoke
Rake::Task[:upload_fog_io].invoke
Rake::Task[:upload_rdoc].invoke
@ -312,6 +313,71 @@ task :upload_fog_io do
Formatador.redisplay("Uploaded docs/_site\n")
end
task :supported_services_docs do
support, shared = {}, []
for key, values in Fog.services
unless values.length == 1
shared |= [key]
values.each do |value|
support[value] ||= {}
support[value][key] = '+'
end
else
value = values.first
support[value] ||= {}
support[value][:other] ||= []
support[value][:other] << key
end
end
shared.sort! {|x,y| x.to_s <=> y.to_s}
columns = [:provider] + shared + [:other]
data = []
for key in support.keys.sort {|x,y| x.to_s <=> y.to_s}
data << { :provider => key }.merge!(support[key])
end
table = ''
table << "<table border='1'>\n"
table << " <tr>"
for column in columns
table << "<th>#{column}</th>"
end
table << "</tr>\n"
for datum in data
table << " <tr>"
for column in columns
if value = datum[column]
case value
when Array
table << "<td>#{value.join(', ')}</td>"
when '+'
table << "<td style='text-align: center;'>#{value}</td>"
else
table << "<th>#{value}</th>"
end
else
table << "<td></td>"
end
end
table << "</tr>\n"
end
table << "</table>\n"
File.open('docs/about/supported_services.markdown', 'w') do |file|
file.puts <<-METADATA
---
layout: default
title: Supported Services
---
METADATA
file.puts(table)
end
end
task :upload_rdoc do
# connect to storage provider
Fog.credential = :geemus

View File

@ -61,6 +61,7 @@
<li><a href="/about/getting_started.html">Getting Started</a></li>
<li><a href="/about/press.html">Press</a></li>
<li><a href="/about/structure.html">Structure</a></li>
<li><a href="/about/supported_services.html">Supported Services</a></li>
<li><a href="/about/users.html">Users</a></li>
</ul>