From 15ec2c2c90785e77014006e720c3b2354dd31ca8 Mon Sep 17 00:00:00 2001 From: "konstantin.grabar" Date: Fri, 7 Sep 2012 19:55:50 +0400 Subject: [PATCH] [refs #374] Add nanoc api docs --- Gemfile | 5 + Gemfile.lock | 11 + apidocs/.gitattributes | 1 + apidocs/.gitignore | 5 + apidocs/.rbenv-version | 1 + apidocs/Gemfile | 16 + apidocs/Gemfile.lock | 42 + apidocs/README.md | 123 ++ apidocs/Rakefile | 34 + apidocs/Rules | 61 + apidocs/config.yaml | 56 + apidocs/content/index.md | 11 + apidocs/content/v1.md | 374 +++++ apidocs/content/v1/architectures.md | 37 + apidocs/content/v1/build.md | 193 +++ apidocs/content/v1/markdown.md | 49 + apidocs/content/v1/platforms.md | 173 +++ apidocs/content/v1/projects.md | 165 +++ apidocs/content/v1/repositories.md | 55 + apidocs/crash.log | 179 +++ apidocs/layouts/_changes.html | 6 + apidocs/layouts/_meta.html | 18 + apidocs/layouts/changes.html | 5 + apidocs/layouts/default.html | 133 ++ apidocs/lib/changes_helper.rb | 89 ++ apidocs/lib/default.rb | 3 + apidocs/lib/resources.rb | 1278 +++++++++++++++++ apidocs/lib/static.rb | 55 + apidocs/script/bootstrap | 2 + apidocs/script/bootstrap.rb | 40 + apidocs/static/css/960.css | 643 +++++++++ apidocs/static/css/reset.css | 171 +++ apidocs/static/css/uv_active4d.css | 115 ++ apidocs/static/favicon.ico | Bin 0 -> 1148 bytes apidocs/static/images/background-v2.png | Bin 0 -> 199 bytes apidocs/static/images/background-white.png | Bin 0 -> 1774 bytes apidocs/static/images/logo.png | Bin 0 -> 3541 bytes apidocs/static/images/logo_developer.png | Bin 0 -> 12087 bytes apidocs/static/images/nav-rule.png | Bin 0 -> 120 bytes apidocs/static/images/rackspace_logo.png | Bin 0 -> 1434 bytes apidocs/static/shared/.gitignore | 2 + apidocs/static/shared/css/documentation.css | 935 ++++++++++++ apidocs/static/shared/css/pygments.css | 60 + apidocs/static/shared/images/active-arrow.png | Bin 0 -> 1065 bytes .../static/shared/images/background-v2.png | Bin 0 -> 199 bytes .../static/shared/images/background-white.png | Bin 0 -> 1774 bytes apidocs/static/shared/images/bg.png | Bin 0 -> 945 bytes .../static/shared/images/bg_footer_bottom.png | Bin 0 -> 929 bytes .../static/shared/images/bg_footer_top.png | Bin 0 -> 929 bytes apidocs/static/shared/images/blacktocat.png | Bin 0 -> 5498 bytes apidocs/static/shared/images/blacktocat.svg | 269 ++++ apidocs/static/shared/images/crud-sprite.png | Bin 0 -> 1200 bytes .../static/shared/images/dropdown_sprites.jpg | Bin 0 -> 1873 bytes .../static/shared/images/expand-arrows.png | Bin 0 -> 1774 bytes apidocs/static/shared/images/footer-logo.png | Bin 0 -> 2654 bytes apidocs/static/shared/images/footer-logo.svg | 199 +++ apidocs/static/shared/images/footer_logo.png | Bin 0 -> 4430 bytes apidocs/static/shared/images/nav-rule.png | Bin 0 -> 120 bytes .../static/shared/images/next_step_arrow.gif | Bin 0 -> 1166 bytes apidocs/static/shared/images/qmark.png | Bin 0 -> 257 bytes .../static/shared/images/rackspace_logo.png | Bin 0 -> 1434 bytes apidocs/static/shared/js/documentation.js | 78 + apidocs/static/shared/js/jquery.js | 154 ++ 63 files changed, 5846 insertions(+) create mode 100644 apidocs/.gitattributes create mode 100644 apidocs/.gitignore create mode 100644 apidocs/.rbenv-version create mode 100644 apidocs/Gemfile create mode 100644 apidocs/Gemfile.lock create mode 100644 apidocs/README.md create mode 100644 apidocs/Rakefile create mode 100644 apidocs/Rules create mode 100644 apidocs/config.yaml create mode 100644 apidocs/content/index.md create mode 100644 apidocs/content/v1.md create mode 100644 apidocs/content/v1/architectures.md create mode 100644 apidocs/content/v1/build.md create mode 100644 apidocs/content/v1/markdown.md create mode 100644 apidocs/content/v1/platforms.md create mode 100644 apidocs/content/v1/projects.md create mode 100644 apidocs/content/v1/repositories.md create mode 100644 apidocs/crash.log create mode 100644 apidocs/layouts/_changes.html create mode 100644 apidocs/layouts/_meta.html create mode 100644 apidocs/layouts/changes.html create mode 100644 apidocs/layouts/default.html create mode 100644 apidocs/lib/changes_helper.rb create mode 100644 apidocs/lib/default.rb create mode 100644 apidocs/lib/resources.rb create mode 100644 apidocs/lib/static.rb create mode 100755 apidocs/script/bootstrap create mode 100755 apidocs/script/bootstrap.rb create mode 100644 apidocs/static/css/960.css create mode 100644 apidocs/static/css/reset.css create mode 100644 apidocs/static/css/uv_active4d.css create mode 100644 apidocs/static/favicon.ico create mode 100644 apidocs/static/images/background-v2.png create mode 100644 apidocs/static/images/background-white.png create mode 100644 apidocs/static/images/logo.png create mode 100644 apidocs/static/images/logo_developer.png create mode 100644 apidocs/static/images/nav-rule.png create mode 100644 apidocs/static/images/rackspace_logo.png create mode 100644 apidocs/static/shared/.gitignore create mode 100644 apidocs/static/shared/css/documentation.css create mode 100644 apidocs/static/shared/css/pygments.css create mode 100644 apidocs/static/shared/images/active-arrow.png create mode 100644 apidocs/static/shared/images/background-v2.png create mode 100644 apidocs/static/shared/images/background-white.png create mode 100644 apidocs/static/shared/images/bg.png create mode 100644 apidocs/static/shared/images/bg_footer_bottom.png create mode 100644 apidocs/static/shared/images/bg_footer_top.png create mode 100644 apidocs/static/shared/images/blacktocat.png create mode 100644 apidocs/static/shared/images/blacktocat.svg create mode 100644 apidocs/static/shared/images/crud-sprite.png create mode 100644 apidocs/static/shared/images/dropdown_sprites.jpg create mode 100644 apidocs/static/shared/images/expand-arrows.png create mode 100644 apidocs/static/shared/images/footer-logo.png create mode 100644 apidocs/static/shared/images/footer-logo.svg create mode 100644 apidocs/static/shared/images/footer_logo.png create mode 100644 apidocs/static/shared/images/nav-rule.png create mode 100644 apidocs/static/shared/images/next_step_arrow.gif create mode 100644 apidocs/static/shared/images/qmark.png create mode 100644 apidocs/static/shared/images/rackspace_logo.png create mode 100644 apidocs/static/shared/js/documentation.js create mode 100644 apidocs/static/shared/js/jquery.js diff --git a/Gemfile b/Gemfile index f9e2a65f2..74c4cd7b5 100644 --- a/Gemfile +++ b/Gemfile @@ -55,6 +55,11 @@ gem 'rails-backbone', '~> 0.7.2' gem 'rack-throttle' +# Abf API: +gem 'nanoc' +gem 'kramdown' +gem 'adsf' + group :assets do gem 'sass-rails', '~> 3.2.5' gem 'coffee-rails', '~> 3.2.2' diff --git a/Gemfile.lock b/Gemfile.lock index 800ce6aff..9e0f44a06 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -69,6 +69,8 @@ GEM activesupport (3.2.7) i18n (~> 0.6) multi_json (~> 1.0) + adsf (1.1.1) + rack (>= 1.0.0) airbrake (3.1.2) activesupport builder @@ -103,6 +105,7 @@ GEM coffee-script-source execjs coffee-script-source (1.3.3) + colored (1.2) compass (0.12.2) chunky_png (~> 1.2) fssm (>= 0.2.7) @@ -110,6 +113,8 @@ GEM compass-rails (1.0.3) compass (>= 0.12.2, < 0.14) creole (0.4.2) + cri (2.3.0) + colored (>= 1.2) daemons (1.1.6) devise (2.1.2) bcrypt-ruby (~> 3.0) @@ -159,6 +164,7 @@ GEM thor (~> 0.14) json (1.7.4) kgio (2.7.4) + kramdown (0.13.8) libv8 (3.3.10.4) macaddr (1.6.1) systemu (~> 2.5.0) @@ -180,6 +186,8 @@ GEM mime-types (1.19) multi_json (1.3.6) mustache (0.99.4) + nanoc (3.4.0) + cri (~> 2.2) net-scp (1.0.4) net-ssh (>= 1.99.1) net-sftp (2.0.5) @@ -365,6 +373,7 @@ PLATFORMS DEPENDENCIES RedCloth + adsf airbrake (~> 3.1.2) ancestry (~> 1.3.0) bluepill (~> 0.0.60) @@ -388,8 +397,10 @@ DEPENDENCIES hirb jbuilder (~> 0.4.0) jquery-rails (~> 2.0.2) + kramdown mailcatcher meta-tags (~> 1.2.5) + nanoc newrelic_rpm (~> 3.4.1) omniauth (~> 1.1.0) omniauth-openid (~> 1.0.1) diff --git a/apidocs/.gitattributes b/apidocs/.gitattributes new file mode 100644 index 000000000..2504c66a8 --- /dev/null +++ b/apidocs/.gitattributes @@ -0,0 +1 @@ +*.svg eol=lf diff --git a/apidocs/.gitignore b/apidocs/.gitignore new file mode 100644 index 000000000..165eb6406 --- /dev/null +++ b/apidocs/.gitignore @@ -0,0 +1,5 @@ +output +tmp +.DS_Store +.bundle +bin diff --git a/apidocs/.rbenv-version b/apidocs/.rbenv-version new file mode 100644 index 000000000..77fee73a8 --- /dev/null +++ b/apidocs/.rbenv-version @@ -0,0 +1 @@ +1.9.3 diff --git a/apidocs/Gemfile b/apidocs/Gemfile new file mode 100644 index 000000000..845339066 --- /dev/null +++ b/apidocs/Gemfile @@ -0,0 +1,16 @@ +source "http://rubygems.org" + +gem 'rake', '~> 0.9.2' +gem 'nanoc', '~> 3.3.7' +gem 'kramdown', '~> 0.13.2' +gem 'nokogiri', '~> 1.4.4' +gem 'yajl-ruby', '~> 0.8.2' +gem 'pygments.rb' +gem 'mime-types', '~> 1.16' +gem 'coderay' +gem 'builder' + +group :development do + gem 'adsf' + gem 'fssm' +end diff --git a/apidocs/Gemfile.lock b/apidocs/Gemfile.lock new file mode 100644 index 000000000..f76f1b93e --- /dev/null +++ b/apidocs/Gemfile.lock @@ -0,0 +1,42 @@ +GEM + remote: http://rubygems.org/ + specs: + adsf (1.1.1) + rack (>= 1.0.0) + blankslate (2.1.2.4) + builder (3.0.0) + coderay (1.0.6) + colored (1.2) + cri (2.3.0) + colored (>= 1.2) + ffi (1.0.11) + fssm (0.2.9) + kramdown (0.13.7) + mime-types (1.18) + nanoc (3.3.7) + cri (~> 2.2) + nokogiri (1.4.7) + pygments.rb (0.2.12) + rubypython (~> 0.5.3) + rack (1.4.1) + rake (0.9.2.2) + rubypython (0.5.3) + blankslate (>= 2.1.2.3) + ffi (~> 1.0.7) + yajl-ruby (0.8.3) + +PLATFORMS + ruby + +DEPENDENCIES + adsf + builder + coderay + fssm + kramdown (~> 0.13.2) + mime-types (~> 1.16) + nanoc (~> 3.3.7) + nokogiri (~> 1.4.4) + pygments.rb + rake (~> 0.9.2) + yajl-ruby (~> 0.8.2) diff --git a/apidocs/README.md b/apidocs/README.md new file mode 100644 index 000000000..a25c80e8f --- /dev/null +++ b/apidocs/README.md @@ -0,0 +1,123 @@ +# developer.github.com + +This is a GitHub API resource built with [nanoc][nanoc]. + +All submissions are welcome. To submit a change, fork this repo, commit your changes, and send us a [pull request](http://help.github.com/send-pull-requests/). + +## Setup + +Ruby 1.9 is required to build the site. + +Get the nanoc gem, plus kramdown for markdown parsing: + + bundle install + +You can see the available commands with nanoc: + + nanoc -h + +Nanoc has [some nice documentation](http://nanoc.stoneship.org/docs/3-getting-started/) to get you started. Though if you're mainly concerned with editing or adding content, you won't need to know much about nanoc. + +[nanoc]: http://nanoc.stoneship.org/ + +## Styleguide + +Not sure how to structure the docs? Here's what the structure of the +API docs should look like: + + # API title + + ## API endpoint title + + [VERB] /path/to/endpoint.json + + ### Parameters + + name + : description + + ### Input (request json body) + + <%= json :field => "sample value" %> + + ### Response + + <%= headers 200, :pagination => true, 'X-Custom-Header' => "value" %> + <%= json :resource_name %> + +**Note**: We're using [Kramdown Markdown extensions](http://kramdown.rubyforge.org/syntax.html), such as definition lists. + +### JSON Responses + +We specify the JSON responses in ruby so that we don't have to write +them by hand all over the docs. You can render the JSON for a resource +like this: + + <%= json :issue %> + +This looks up `GitHub::Resources::ISSUE` in `lib/resources.rb`. + +Some actions return arrays. You can modify the JSON by passing a block: + + <%= json(:issue) { |hash| [hash] } %> + +### Terminal blocks + +You can specify terminal blocks with `pre.terminal` elements. It'd be +nice if Markdown could do this more cleanly... + +
+    $ curl foobar
+    ....
+    
+ +This isn't a `curl` tutorial though, I'm not sure every API call needs +to show how to access it with `curl`. + +## Development + +Nanoc compiles the site into static files living in `./output`. It's +smart enough not to try to compile unchanged files: + + $ nanoc compile + Loading site data... + Compiling site... + identical [0.00s] output/css/960.css + identical [0.00s] output/css/pygments.css + identical [0.00s] output/css/reset.css + identical [0.00s] output/css/styles.css + identical [0.00s] output/css/uv_active4d.css + update [0.28s] output/index.html + update [1.31s] output/v3/gists/comments/index.html + update [1.92s] output/v3/gists/index.html + update [0.25s] output/v3/issues/comments/index.html + update [0.99s] output/v3/issues/labels/index.html + update [0.49s] output/v3/issues/milestones/index.html + update [0.50s] output/v3/issues/index.html + update [0.05s] output/v3/index.html + + Site compiled in 5.81s. + +You can setup whatever you want to view the files. If you have the adsf +gem, however (I hope so, it was in the Gemfile), you can start Webrick: + + $ nanoc view + $ open http://localhost:3000 + +Compilation times got you down? Use `autocompile`! + + $ nanoc autocompile + +This starts a web server too, so there's no need to run `nanoc view`. +One thing: remember to add trailing slashes to all nanoc links! + +## Deploy + + $ rake publish + +## TODO + +* Integrate through a simple hurl.it app for live API calls. +* Maybe add a nice TOC at the top of each page. +* Write a task for verifying JSON Resource examples against the actual + API. diff --git a/apidocs/Rakefile b/apidocs/Rakefile new file mode 100644 index 000000000..e936202c3 --- /dev/null +++ b/apidocs/Rakefile @@ -0,0 +1,34 @@ +require 'nanoc3/tasks' + +desc "Compile the site" +task :compile do + `nanoc compile` +end + +desc "Publish to http://developer.github.com" +task :publish => [:clean] do + FileUtils.rm_r('output') if File.exist?('output') + + sh "nanoc compile" + + ENV['GIT_DIR'] = File.expand_path(`git rev-parse --git-dir`.chomp) + old_sha = `git rev-parse refs/remotes/origin/gh-pages`.chomp + Dir.chdir('output') do + ENV['GIT_INDEX_FILE'] = gif = '/tmp/dev.gh.i' + ENV['GIT_WORK_TREE'] = Dir.pwd + File.unlink(gif) if File.file?(gif) + `git add -A` + tsha = `git write-tree`.strip + puts "Created tree #{tsha}" + if old_sha.size == 40 + csha = `echo 'boom' | git commit-tree #{tsha} -p #{old_sha}`.strip + else + csha = `echo 'boom' | git commit-tree #{tsha}`.strip + end + puts "Created commit #{csha}" + puts `git show #{csha} --stat` + puts "Updating gh-pages from #{old_sha}" + `git update-ref refs/heads/gh-pages #{csha}` + `git push origin gh-pages` + end +end diff --git a/apidocs/Rules b/apidocs/Rules new file mode 100644 index 000000000..ed139b271 --- /dev/null +++ b/apidocs/Rules @@ -0,0 +1,61 @@ +#!/usr/bin/env ruby + +# A few helpful tips about the Rules file: +# +# * The order of rules is important: for each item, only the first matching +# rule is applied. +# +# * Item identifiers start and end with a slash (e.g. “/about/” for the file +# “content/about.html”). To select all children, grandchildren, … of an +# item, use the pattern “/about/*/”; “/about/*” will also select the parent, +# because “*” matches zero or more characters. + +compile '/static/*' do +end + +compile '/CNAME/' do +end + +compile '/feed/' do + filter :erb + filter :kramdown + filter :colorize_syntax, + :colorizers => {:javascript => :pygmentsrb} +end + +%w(v3 */).each do |version| + compile "/changes/#{version}" do + filter :erb + filter :kramdown + filter :colorize_syntax, + :colorizers => {:javascript => :pygmentsrb} + layout 'changes' if version[0] == '*' + layout 'default' + end +end + +compile '*' do + filter :erb + filter :kramdown + filter :colorize_syntax, + :colorizers => {:javascript => :pygmentsrb} + layout 'default' +end + +route '/static/*' do + item.identifier[7..-2] +end + +route '/CNAME/' do + '/CNAME' +end + +route '/feed' do + '/changes.atom' +end + +route '*' do + item.identifier + 'index.html' +end + +layout '*', :erb diff --git a/apidocs/config.yaml b/apidocs/config.yaml new file mode 100644 index 000000000..b2a6c6213 --- /dev/null +++ b/apidocs/config.yaml @@ -0,0 +1,56 @@ +# A list of file extensions that nanoc will consider to be textual rather than +# binary. If an item with an extension not in this list is found, the file +# will be considered as binary. +text_extensions: [ 'css', 'erb', 'haml', 'htm', 'html', 'js', 'less', 'markdown', 'md', 'php', 'rb', 'sass', 'scss', 'txt', 'xhtml', 'xml', 'atom' ] + +# The path to the directory where all generated files will be written to. This +# can be an absolute path starting with a slash, but it can also be path +# relative to the site directory. +output_dir: output + +# A list of index filenames, i.e. names of files that will be served by a web +# server when a directory is requested. Usually, index files are named +# “index.hml”, but depending on the web server, this may be something else, +# such as “default.htm”. This list is used by nanoc to generate pretty URLs. +index_filenames: [ 'index.html' ] + +# Whether or not to generate a diff of the compiled content when compiling a +# site. The diff will contain the differences between the compiled content +# before and after the last site compilation. +enable_output_diff: false + +# The data sources where nanoc loads its data from. This is an array of +# hashes; each array element represents a single data source. By default, +# there is only a single data source that reads data from the “content/” and +# “layout/” directories in the site directory. +data_sources: + - + # The type is the identifier of the data source. By default, this will be + # `filesystem_unified`. + type: filesystem_unified + + # The path where items should be mounted (comparable to mount points in + # Unix-like systems). This is “/” by default, meaning that items will have + # “/” prefixed to their identifiers. If the items root were “/en/” + # instead, an item at content/about.html would have an identifier of + # “/en/about/” instead of just “/about/”. + items_root: / + + # The path where layouts should be mounted. The layouts root behaves the + # same as the items root, but applies to layouts rather than items. + layouts_root: / + + - + type: static + items_root: /static + +# For the atom feed. +base_url: http://developer.github.com + +# Array of [version, released_at] Array tuples. +api_versions: + - + - beta + - 2011-4-27 + - + - v3 diff --git a/apidocs/content/index.md b/apidocs/content/index.md new file mode 100644 index 000000000..e0721bfa5 --- /dev/null +++ b/apidocs/content/index.md @@ -0,0 +1,11 @@ +--- +title: RosaLab ABF API +--- + +# RosaLab ABF API + +This describes the resources that make up the official Rosa ABF API. If you have any problems or requests please contact support. + +**Note: This API is in a beta state. Breaking changes may occur.** + +All of the urls in this manual have the same tail: .json. Because the default diff --git a/apidocs/content/v1.md b/apidocs/content/v1.md new file mode 100644 index 000000000..3e0b86dfb --- /dev/null +++ b/apidocs/content/v1.md @@ -0,0 +1,374 @@ +--- +title: GitHub API v3 +--- + +# API v3 + +This describes the resources that make up the official GitHub API v3. If +you have any problems or requests please contact +[support](mailto:support@github.com?subject=APIv3). + +* Schema +* Client Errors +* HTTP Verbs +* Authentication +* Pagination +* Rate Limiting +* Conditional Requests +* Cross Origin Resource Sharing +* JSON-P Callbacks + +## Schema + +All API access is over HTTPS, and accessed from the `api.github.com` +domain (or through `yourdomain.com/api/v3/` for enterprise). All data is +sent and received as JSON. + +
+$ curl -i https://api.github.com
+
+HTTP/1.1 302 Found
+Server: nginx/1.0.12
+Date: Mon, 20 Feb 2012 11:15:49 GMT
+Content-Type: text/html;charset=utf-8
+Connection: keep-alive
+Status: 302 Found
+X-RateLimit-Limit: 5000
+ETag: "d41d8cd98f00b204e9800998ecf8427e"
+Location: http://developer.github.com
+X-RateLimit-Remaining: 4999
+Content-Length: 0
+
+
+ +Blank fields are included as `null` instead of being omitted. + +All timestamps are returned in ISO 8601 format: + + YYYY-MM-DDTHH:MM:SSZ + +## Client Errors + +There are three possible types of client errors on API calls that +receive request bodies: + +1. Sending invalid JSON will result in a `400 Bad Request` response. + + HTTP/1.1 400 Bad Request + Content-Length: 35 + + {"message":"Problems parsing JSON"} + +2. Sending the wrong type of JSON values will result in a `400 Bad + Request` response. + + HTTP/1.1 400 Bad Request + Content-Length: 40 + + {"message":"Body should be a JSON Hash"} + +3. Sending invalid fields will result in a `422 Unprocessable Entity` + response. + + HTTP/1.1 422 Unprocessable Entity + Content-Length: 149 + + { + "message": "Validation Failed", + "errors": [ + { + "resource": "Issue", + "field": "title", + "code": "missing_field" + } + ] + } + +All error objects have resource and field properties so that your client +can tell what the problem is. There's also an error code to let you +know what is wrong with the field. These are the possible validation error +codes: + +missing +: This means a resource does not exist. + +missing\_field +: This means a required field on a resource has not been set. + +invalid +: This means the formatting of a field is invalid. The documentation +for that resource should be able to give you more specific information. + +already\_exists +: This means another resource has the same value as this field. This +can happen in resources that must have some unique key (such as Label +names). + +If resources have custom validation errors, they will be documented with +the resource. + +## HTTP Verbs + +Where possible, API v3 strives to use appropriate HTTP verbs for each +action. + +HEAD +: Can be issued against any resource to get just the HTTP header info. + +GET +: Used for retrieving resources. + +POST +: Used for creating resources, or performing custom actions (such as +merging a pull request). + +PATCH +: Used for updating resources with partial JSON data. For instance, an +Issue resource has `title` and `body` attributes. A PATCH request may +accept one or more of the attributes to update the resource. PATCH is a +relatively new and uncommon HTTP verb, so resource endpoints also accept +POST requests. + +PUT +: Used for replacing resources or collections. For PUT requests +with no `body` attribute, be sure to set the `Content-Length` header to zero. + +DELETE +: Used for deleting resources. + +## Authentication + +There are two ways to authenticate through GitHub API v3: + +Basic Authentication: + +
+$ curl -u "username" https://api.github.com
+
+ +OAuth2 Token (sent in a header): + +
+$ curl -H "Authorization: token OAUTH-TOKEN" https://api.github.com
+
+ +OAuth2 Token (sent as a parameter): + +
+$ curl https://api.github.com/?access_token=OAUTH-TOKEN
+
+ +Read [more about OAuth2](/v3/oauth/). Note that OAuth2 tokens can be [acquired +programmatically](/v3/oauth/#create-a-new-authorization), for applications that +are not websites. + +Requests that require authentication will return 404, instead of 403, in some places. +This is to prevent the accidental leakage of private repositories to unauthorized +users. + +## Pagination + +Requests that return multiple items will be paginated to 30 items by +default. You can specify further pages with the `?page` parameter. For some +resources, you can also set a custom page size up to 100 with the `?per_page` parameter. + +
+$ curl https://api.github.com/user/repos?page=2&per_page=100
+
+ +The pagination info is included in [the Link +header](http://www.w3.org/Protocols/9707-link-header.html). It is important to +follow these Link header values instead of constructing your own URLs. In some +instances, such as in the [Commits +API](/v3/repos/commits/), pagination is based on +SHA1 and not on page number. + + Link: ; rel="next", + ; rel="last" + +_Linebreak is included for readability._ + +The possible `rel` values are: + +`next` +: Shows the URL of the immediate next page of results. + +`last` +: Shows the URL of the last page of results. + +`first` +: Shows the URL of the first page of results. + +`prev` +: Shows the URL of the immediate previous page of results. + +## Rate Limiting + +We limit requests to API v3 to 5000 per hour. This is keyed off either your +login, your OAuth token, or request IP. You can check the returned HTTP +headers of any API request to see your current status: + +
+$ curl -i https://api.github.com/users/whatever
+
+HTTP/1.1 200 OK
+Status: 200 OK
+X-RateLimit-Limit: 5000
+X-RateLimit-Remaining: 4966
+
+ +You can also check your rate limit status without incurring an API hit. + + GET /rate_limit + +### Rate limit + +<%= headers 200 %> +<%= json :rate => {:remaining => 4999, :limit => 5000} %> + +
+ +#### Unauthenticated rate limited requests + +If you need to make unauthenticated calls but need to use a higher rate limit +associated with your OAuth application, you can send over your client ID and +secret in the query string. + +
+$ curl -i https://api.github.com/users/whatever?client_id=xxxxxxxxxxxxxx&client_secret=yyyyyyyyyyyyyyyyyyyyy
+
+HTTP/1.1 200 OK
+Status: 200 OK
+X-RateLimit-Limit: 12500
+X-RateLimit-Remaining: 11966
+
+ +This method should only be used for server-to-server calls. You should never +share your client secret with anyone or include it in client-side browser code. + +Please [contact us](https://github.com/contact) to request white listed access +for your application. We prefer sites that setup OAuth applications for their + users. + +## Conditional Requests + +Most responses return `Last-Modified` and `Etag` headers. You can use the values +of these headers to make subsequent requests to those resources using the +`If-Modified-Since` and `If-None-Match` headers, respectively. If the resource +has not changed, the server will return a `304 Not Modified`. Also note: making +a conditional request and receiving a 304 response does not count against your +[Rate Limit](#rate-limiting), so we encourage you to use it whenever possible. + +
+$ curl -i https://api.github.com/user
+HTTP/1.1 200 OK
+Cache-Control: private, max-age=60
+ETag: "644b5b0155e6404a9cc4bd9d8b1ae730"
+Last-Modified: Thu, 05 Jul 2012 15:31:30 GMT
+Status: 200 OK
+Vary: Accept, Authorization, Cookie
+X-RateLimit-Limit: 5000
+X-RateLimit-Remaining: 4996
+
+$ curl -i https://api.github.com/user -H "If-Modified-Since: Thu, 05 Jul 2012 15:31:30 GMT"
+HTTP/1.1 304 Not Modified
+Cache-Control: private, max-age=60
+Last-Modified: Thu, 05 Jul 2012 15:31:30 GMT
+Status: 304 Not Modified
+Vary: Accept, Authorization, Cookie
+X-RateLimit-Limit: 5000
+X-RateLimit-Remaining: 4996
+
+$ curl -i https://api.github.com/user -H 'If-None-Match: "644b5b0155e6404a9cc4bd9d8b1ae730"'
+HTTP/1.1 304 Not Modified
+Cache-Control: private, max-age=60
+ETag: "644b5b0155e6404a9cc4bd9d8b1ae730"
+Last-Modified: Thu, 05 Jul 2012 15:31:30 GMT
+Status: 304 Not Modified
+Vary: Accept, Authorization, Cookie
+X-RateLimit-Limit: 5000
+X-RateLimit-Remaining: 4996
+
+ +## Cross Origin Resource Sharing + +The API supports Cross Origin Resource Sharing (CORS) for AJAX requests. +you can read the [CORS W3C working draft](http://www.w3.org/TR/cors), or +[this intro](http://code.google.com/p/html5security/wiki/CrossOriginRequestSecurity) from the +HTML 5 Security Guide. + +Here's a sample request sent from a browser hitting +`http://some-site.com`: + + $ curl -i https://api.github.com -H "Origin: http://some-site.com" + HTTP/1.1 302 Found + +Any domain that is registered as an OAuth Application is accepted. +Here's a sample request for a browser hitting [Calendar About Nothing](http://calendaraboutnothing.com/): + + $ curl -i https://api.github.com -H "Origin: http://calendaraboutnothing.com" + HTTP/1.1 302 Found + Access-Control-Allow-Origin: http://calendaraboutnothing.com + Access-Control-Expose-Headers: Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-OAuth-Scopes, X-Accepted-OAuth-Scopes + Access-Control-Allow-Credentials: true + +This is what the CORS preflight request looks like: + + $ curl -i https://api.github.com -H "Origin: http://calendaraboutnothing.com" -X OPTIONS + HTTP/1.1 204 No Content + Access-Control-Allow-Origin: http://calendaraboutnothing.com + Access-Control-Allow-Headers: Authorization, X-Requested-With + Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE + Access-Control-Expose-Headers: Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-OAuth-Scopes, X-Accepted-OAuth-Scopes + Access-Control-Max-Age: 86400 + Access-Control-Allow-Credentials: true + +## JSON-P Callbacks + +You can send a `?callback` parameter to any GET call to have the results +wrapped in a JSON function. This is typically used when browsers want +to embed GitHub content in web pages by getting around cross domain +issues. The response includes the same data output as the regular API, +plus the relevant HTTP Header information. + +
+$ curl https://api.github.com?callback=foo
+
+foo({
+  "meta": {
+    "status": 200,
+    "X-RateLimit-Limit": "5000",
+    "X-RateLimit-Remaining": "4966",
+    "Link": [ // pagination headers and other links
+      ["https://api.github.com?page=2", {"rel": "next"}]
+    ]
+  },
+  "data": {
+    // the data
+  }
+})
+
+ +You can write a javascript handler to process the callback like this: + +
function foo(response) {
+  var meta = response.meta
+  var data = response.data
+  console.log(meta)
+  console.log(data)
+}
+ +All of the headers are the same String value as the HTTP Headers with one +notable exception: Link. Link headers are pre-parsed for you and come +through as an array of `[url, options]` tuples. + +A link that looks like this: + + Link: ; rel="next", ; rel="foo"; bar="baz" + +... will look like this in the Callback output: + +<%= json "Link" => [ + ["url1", {:rel => "next"}], + ["url2", {:rel => "foo", :bar => "baz"}]] %> + diff --git a/apidocs/content/v1/architectures.md b/apidocs/content/v1/architectures.md new file mode 100644 index 000000000..86267cbce --- /dev/null +++ b/apidocs/content/v1/architectures.md @@ -0,0 +1,37 @@ +### 4. Architectures list + +This request will return you all needed data about posible architectures into JSON format. + +URL: /api/v1/arches.json + +TYPE: GET + +RESPONSE: + +```json +{ + "architectures": [ + { + "id": , + "name": + }, + ... + ] +``` + +RESPONSE EXAMPLE: + +```json +{ + "architectures": [ + { + "id": 1, + "name": "x86_64" + }, + { + "id": 2, + "name": "i586" + }, + ... + ] +``` diff --git a/apidocs/content/v1/build.md b/apidocs/content/v1/build.md new file mode 100644 index 000000000..c56fa01c1 --- /dev/null +++ b/apidocs/content/v1/build.md @@ -0,0 +1,193 @@ +--- +title: Project Build | GitHub API +--- + +## 1. Show build data + +This request will return you all needed data of requested build task into JSON format. + +URL: /buils_lists/:id.json + +TYPE: GET + +PARAMS: +: * :id - identifier of current build task + +RESPONSE: + +<%= json(:build_list_show_parameters) %> + +EXAMPLE: + +<%= json(:build_list_show_example) %> + +## 2. Create build task + +By this request you can create build task for project. + +Create parameters: + +<%= json(:build_list_create_parameters) %> + +**Note: Request creates build list for each architecture and base platform.** + +POSIBLE UPDATE TYPES: + + security + bugfix + enhancement + recommended + newpackage + +URL: /api/v1/build_lists.json + +TYPE: POST + +REQUEST EXAMPLE: + +<%= json(:build_list_create_example) %> + +RESPONSE: + +<%= json(:build_list_create_response) %> + +RESPONSE EXAMPLE: + +<%= json(:build_list_create_response_example) %> + +## 3. Cancel build task + +By this request you can cancel build task. + +URL: /buils_lists/:id/cancel.json + +TYPE: PUT + +RESPONSE: + +<%= json(:build_list_cancel_response) %> + +EXAMPLE: + +<%= json(:build_list_cancel_response_example) %> + + +<%= json(:build_list_cancel_response_example2) %> + +## 4. Publish build task + +By this request you can publish build task. + +URL: /buils_lists/:id/publish.json + +TYPE: PUT + +RESPONSE: + +<%= json(:build_list_publish_response) %> + +EXAMPLE: + +<%= json(:build_list_publish_response_example) %> + + +<%= json(:build_list_publish_response_example2) %> + +## 5. Reject publish build task + +By this request you can reject publish build task. + +URL: /buils_lists/:id/reject_publish.json + +TYPE: PUT + +RESPONSE: + +<%= json(:build_list_reject_response) %> + +EXAMPLE: + +<%= json(:build_list_reject_response_example) %> + + +<%= json(:build_list_reject_response_example2) %> + +## 6. Search + +By this way you can search build list you need. + +Search params: + +* page - page number of build lists results list +* per_page - amount of build list per one page (default 30, maximum 100) +* filter[status] - integer code of the build status +* filter[arch_id] - identifier of the architecture +* filter[is_circle] - recurrent build (true or false) +* filter[project_name] - project name +* filter[created_at_start / created_at_end] - start and end of the build list creation date diapason(unixtime) +* filter[updated_at_start / updated_at_end] - start and end of the build list last change date diapason(unixtime) +* filter[ownership] - ownership type (owned/related/index) +* filter[mass_build_id] - mass build identifier +* filter[save_to_platform_id] - platform id for build save + + +BUILD LIST POSIBLE STATUSES + + Build error: 666 + Build has been published: 6000 + Publishing rejected: 9000 + Build is being published: 7000 + Publishing error: 8000 + Dependences not found: ? + Waiting for response: 4000 + Build pending: 2000 + Dependency test failed: ? + Binary test failed: ? + Build canceled: 5000 + Build complete: 0 + Build started: 3000 + Platform not found: 1 + Platform pending: 2 + Project not found: 3 + Project version not found: 4 + +URL: /build_lists.json? + +TYPE: GET + +RESPONSE: + +<%= json(:build_list_search_response) %> + +EXAMPLE OF REQUEST URL: + +> /build_lists.json?filter[project_name]=rails + +> /build_lists.json?filter[ownership]=owned&filter[status]=6000&filter[arch_id]=2 + +EXAMPLES OF RESPONSES: + +<%= json(:build_list_search_response_example) %> + +## 7. Destroy build task + +You can't destroy build list. Only cancel it. :) + +## 8. 404, 500, 503 and 401 errors. + +Some requests can cause cancer of 404, 500 and 503 errors. In these situatins you will receive such data: + +<%= json(:error_404) %> + +<%= json(:error_500) %> + +<%= json(:error_503) %> + +<%= json(:error_401) %> + +If you don't have enough rights for requested action, you will receive +error response such this: + +<%= json(:error_403) %> + +and http status code will be 403. diff --git a/apidocs/content/v1/markdown.md b/apidocs/content/v1/markdown.md new file mode 100644 index 000000000..eadf2f2f7 --- /dev/null +++ b/apidocs/content/v1/markdown.md @@ -0,0 +1,49 @@ +--- +title: Markdown Rendering | GitHub API +--- + +# Markdown Rendering API + +## Render an arbitrary Markdown document + + POST /markdown + +### Input + +text +: _Required_ **string** - The Markdown text to render + +mode +: _Optional_ **string** - The rendering mode + + - `markdown` to render a document as plain Markdown, just like README files are rendered. + - `gfm` to render a document as user-content, e.g. like user comments or issues are rendered. In GFM mode, hard line breaks are always taken into account, and issue and user mentions are linked accordingly. + +context +: _Optional_ **string** - The repository context, only taken into account when rendering as `gfm` + +<%= json \ + :text => "Hello world github/linguist#1 **cool**, and #1!", + :mode => "gfm", + :context => "github/gollum" +%> + +### Response + +<%= text_html \ + %(

Hello world github/linguist#1 cool, and #1!

), 200 +%> + +# Render a Markdown document in raw mode + + POST /markdown/raw + +### Input + +The raw API is not JSON-based. It takes a Markdown document as plaintext (`text/plain` or `text/x-markdown`) and renders it as plain Markdown without a repository context (just like a README.md file is rendered -- this is the simplest way to preview a readme online). + +### Response + +<%= text_html \ + %(

Hello world github/linguist#1 cool, and #1!

), 200 +%> diff --git a/apidocs/content/v1/platforms.md b/apidocs/content/v1/platforms.md new file mode 100644 index 000000000..4c314c29d --- /dev/null +++ b/apidocs/content/v1/platforms.md @@ -0,0 +1,173 @@ +## 3. Platform + +### 3.1. Platform data + +This request will return you all needed data about platforms list into JSON format. + +URL: /api/v1/platforms/:id.json + +PARAMS: +* :id - identifier of current project + +TYPE: GET + +RESPONSE: + +```json +{ + "id": , + "name": , + "description": , + "parent_platform_id": , + "created_at": , + "updated_at": , + "released": , + "visibility": , + "platform_type": , + "distrib_type": , + "owner": { + "id": , + "name": , + "type": , + "url": + }, + "repositories": [ + { + "id": , + "name": , + "url":   + } + ... + ], + "url": +} + +``` + +EXAMPLE: + +```json +{ + "id": 1, + "name": "mdv_main", + "description": "mdv_main", + "parent_platform_id": null, + "created_at": 2012-05-09 11:26:46 UTC , + "updated_at": "2012-06-09 11:26:46 UTC ", + "released": , + "visibility": "open", + "platform_type": "main", + "distrib_type": "mdv", + "owner": { + "id":5, + "name":"Timothy Bobrov", + "type":"User", + "url":"/users/5.json" + }, + "repositories": [ + { + "id": 1, + "name": "main", + "url":  "/api/v1/repositories/1.json" + }, + { + "id": 2, + "name": "release", + "url":  "/api/v1/repositories/2.json" + } + ], + "url": "/api/v1/platforms/1.json" +} + +``` + +### 3.2. Platform list + +This request will return you all needed data about platform into JSON format. + +URL: /api/v1/platforms.json + +TYPE: GET + +PARAMETERS: + +* type - filter platforms by type (main/personal). Also you can don't set the type to get all of the platforms + +REQUEST EXAMPLES: + + /api/v1/platforms.json?type=main + /api/v1/platforms.json?type=personal + /api/v1/platforms.json + +RESPONSE: + +```json +{ + "platforms":[ + { + "id": , + "name": , + "platform_type": , + "visibility": , + "owner":{ + "id": , + "name": , + "type": , + "url": + }, + "url": + }, + ... + ] +} + +``` + +EXAMPLE: + +```json +{ + "platforms":[ + { + "id":26, + "name":"fucktest", + "platform_type":"mail", + "visibility":"hidden", + "owner":{ + "id":5, + "name":"Timothy Bobrov1", + "type":"User", + "url":"/users/5.json" + }, + "url":"/api/v1/platforms/26.json" + }, + { + "id":17, + "name":"aaa", + "platform_type":"main", + "visibility":"hidden", + "owner":{ + "id":5, + "name":"Timothy Bobrov", + "type":"User", + "url":"/timothy_bobrov.json" + }, + "url":"/api/v1/platforms/17.json" + }, + { + "id":18, + "name":"timothy_tsvetkov", + "platform_type":"main", + "visibility":"hidden", + "owner":{ + "id":4, + "name":"Yaroslav Garkin", + "type":"User", + "url":"/users/4.json" + }, + "url":"/api/v1/platforms/18.json" + }, + ],"url":"/api/v1/platforms.json" +} + +``` diff --git a/apidocs/content/v1/projects.md b/apidocs/content/v1/projects.md new file mode 100644 index 000000000..b75472491 --- /dev/null +++ b/apidocs/content/v1/projects.md @@ -0,0 +1,165 @@ +## 1. Projects + +### 1.1. Project data + +This request will return you all needed data of requested project into JSON format. + +URL: /api/v1/projects/:id.json + +TYPE: GET + +PARAMS: +* :id - identifier of current project + +RESPONSE: + +```json +{ + "project": + { + "id": , + "name": , + "created_at": , + "updated_at" , + "visibility": , + "description": , + "ancestry": , + "has_issues": , + "has_wiki": , + "default_branch": , + "is_package": , + "average_build_time": , + "owner": { + "id": , + "name": , + "url": + }, + "repositories": [ + { + "id": , + "name": , + "url":  , + "platform": { + "id": , + "name": , + "url": + } + }, + .... + ], + "url": + } +} + +``` + +EXAMPLE: + +```json +{ + "project": + { + "id":4661, + "name":"hwinfo", + "created_at":"2011-09-05T14:33:25Z", + "updated_at":"2012-02-29T18:16:02Z", + "visibility":"open", + "description":"asfsafafsfasf fas fasfsa fas fasfa s", + "ancestry":null, + "has_issues":true, + "has_wiki":false, + "default_branch":"master", + "is_package":true, + "average_build_time":0, + "owner":{ + "id":4, + "name":"Yaroslav Garkin", + "type":"User", + "url":"/users/4.json" + }, + "repositories": [ + { + "id": 1, + "name": "main", + "url":  "/api/v1/repositories/1.json", + "platform": { + "id": 1, + "name": "mdv_main", + "url": "/api/v1/platforms/1.json" + } + }, + { + "id": 3, + "name": "main", + "url":  "/api/v1/repositories/3.json", + "platform": { + "id": 3, + "name": "warpc_personal", + "url": "/api/v1/platforms/3.json" + } + } + ], + }, + "url":"/api/v1/projects/4661.json"} +} + +``` + +### 1.2. Project id get by name and owner + +This request will return you all needed data about projects list into JSON format and also you can filter them by name. + +URL: /api/v1/projects/get_id.json?name=:project_name&owner=:owner_name + +TYPE: GET + +PARAMETERS: + +* project_name - project name +* owner_name - project owner name + +REQUEST EXAMPLES: + + /api/v1/projects/get_id.json?name=rails&owner=warpc + +RESPONSE: + +```json +{ + "project": + { + "id": , + "name": , + "visibility": , + "owner": { + "id": , + "name": , + "url": + }, + "url": + } +} + +``` + +EXAMPLE: + +```json +{ + "project": + { + "id":4661, + "name":"hwinfo", + "visibility":"open", + "owner":{ + "id":4, + "name":"Yaroslav Garkin", + "type":"User", + "url":"/users/4.json" + }, + "url":"/api/v1/projects/4661.json" + } +} + +``` + diff --git a/apidocs/content/v1/repositories.md b/apidocs/content/v1/repositories.md new file mode 100644 index 000000000..a4b048860 --- /dev/null +++ b/apidocs/content/v1/repositories.md @@ -0,0 +1,55 @@ +## 2. Repository + +### 2.1. Repository data + +This request will return you all needed data about repositories list into JSON format. + +URL: /api/v1/repositories/:id.json + +PARAMS: +* :id - identifier of current project + +TYPE: GET + +RESPONSE: + +```json +{ + "repository": + { + "id": , + "name": , + "created_at": , + "updated_at": , + "description": , + "platform": { + "id": , + "name": , + "url": + }, + "url": + }, + "url": +} + +``` + +EXAMPLE: + +```json +{ + "repository": + { + "id":30, + "name":"main", + "platform":{ + "id":41, + "name":"my_personal", + "url":"/api/v1/platforms/41.json" + }, + }, + "url":"/api/v1/repositories/30.json" +} + +``` + diff --git a/apidocs/crash.log b/apidocs/crash.log new file mode 100644 index 000000000..26d8a0ede --- /dev/null +++ b/apidocs/crash.log @@ -0,0 +1,179 @@ +Crashlog created at 2012-09-06 16:43:36 +0400 + +=== MESSAGE: + +LoadError: cannot load such file -- yajl/json_gem + +=== COMPILATION STACK: + + (empty) + +=== BACKTRACE: + + 0. lib/resources.rb:2:in `require' + 1. lib/resources.rb:2:in `
' + 2. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/nanoc-3.4.0/lib/nanoc/base/source_data/code_snippet.rb:36:in `eval' + 3. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/nanoc-3.4.0/lib/nanoc/base/source_data/code_snippet.rb:36:in `load' + 4. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/nanoc-3.4.0/lib/nanoc/base/source_data/site.rb:300:in `block in load_code_snippets' + 5. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/nanoc-3.4.0/lib/nanoc/base/source_data/site.rb:300:in `each' + 6. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/nanoc-3.4.0/lib/nanoc/base/source_data/site.rb:300:in `load_code_snippets' + 7. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/nanoc-3.4.0/lib/nanoc/base/source_data/site.rb:244:in `load' + 8. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/nanoc-3.4.0/lib/nanoc/base/compilation/compiler.rb:112:in `load' + 9. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/nanoc-3.4.0/lib/nanoc/base/compilation/compiler.rb:82:in `run' + 10. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/nanoc-3.4.0/lib/nanoc/base/source_data/site.rb:57:in `compile' + 11. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/nanoc-3.4.0/lib/nanoc/cli/commands/compile.rb:57:in `run' + 12. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/nanoc-3.4.0/lib/nanoc/cli/command_runner.rb:14:in `block in call' + 13. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/nanoc-3.4.0/lib/nanoc/cli/error_handler.rb:63:in `handle_while' + 14. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/nanoc-3.4.0/lib/nanoc/cli/error_handler.rb:26:in `handle_while' + 15. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/nanoc-3.4.0/lib/nanoc/cli/command_runner.rb:13:in `call' + 16. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/cri-2.3.0/lib/cri/command_dsl.rb:185:in `block in runner' + 17. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/cri-2.3.0/lib/cri/command.rb:296:in `call' + 18. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/cri-2.3.0/lib/cri/command.rb:296:in `run_this' + 19. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/cri-2.3.0/lib/cri/command.rb:249:in `run' + 20. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/cri-2.3.0/lib/cri/command.rb:262:in `run' + 21. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/nanoc-3.4.0/lib/nanoc/cli.rb:47:in `block in run' + 22. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/nanoc-3.4.0/lib/nanoc/cli/error_handler.rb:63:in `handle_while' + 23. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/nanoc-3.4.0/lib/nanoc/cli/error_handler.rb:26:in `handle_while' + 24. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/nanoc-3.4.0/lib/nanoc/cli.rb:44:in `run' + 25. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/nanoc-3.4.0/bin/nanoc:19:in `' + 26. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/bin/nanoc:19:in `load' + 27. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/bin/nanoc:19:in `
' + +=== VERSION INFORMATION: + +nanoc 3.4.0 © 2007-2012 Denis Defreyne. +Running ruby 1.9.3 (2011-10-30) on x86_64-darwin11.3.0 with RubyGems 1.8.15. + +=== INSTALLED GEMS: + + adsf 1.1.1 + blankslate 2.1.2.4 + builder 3.0.0 + bundler 1.0.21 + coderay 1.0.6 + colored 1.2 + cri 2.3.0 + ffi 1.0.11 + fssm 0.2.9 + kramdown 0.13.7 + mime-types 1.18 + nanoc 3.3.7 + nokogiri 1.4.7 + pygments.rb 0.2.12 + rack 1.4.1 + rake 0.9.2.2 + rubypython 0.5.3 + yajl-ruby 0.8.3 + +=== ENVIRONMENT: + +Apple_PubSub_Socket_Render => "/tmp/launch-B4d6SC/Render" +Apple_Ubiquity_Message => "/tmp/launch-AJa40D/Apple_Ubiquity_Message" +BUNDLE_BIN_PATH => "/Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/bundler-1.0.21/bin/bundle" +BUNDLE_GEMFILE => "/Users/santaux/Projects/ABF/rosa-build/developer.github.com/Gemfile" +COMMAND_MODE => "unix2003" +DISPLAY => "/tmp/launch-sOdemU/org.x:0" +GEM_HOME => "/Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf" +GEM_PATH => "/Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf:/Users/santaux/.rvm/gems/ruby-1.9.3-p0@global" +HOME => "/Users/santaux" +IRBRC => "/Users/santaux/.rvm/rubies/ruby-1.9.3-p0/.irbrc" +LANG => "ru_RU.UTF-8" +LOGNAME => "santaux" +MY_RUBY_HOME => "/Users/santaux/.rvm/rubies/ruby-1.9.3-p0" +OLDPWD => "/Users/santaux/Projects/ABF/rosa-build" +PATH => "/Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/bin:/Users/santaux/.rvm/gems/ruby-1.9.3-p0@global/bin:/Users/santaux/.rvm/rubies/ruby-1.9.3-p0/bin:/Users/santaux/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin" +PWD => "/Users/santaux/Projects/ABF/rosa-build/developer.github.com" +RUBYOPT => "-I/Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/bundler-1.0.21/lib -rbundler/setup" +RUBY_VERSION => "ruby-1.9.3-p0" +SECURITYSESSIONID => "186a5" +SHELL => "/bin/bash" +SHLVL => "1" +SSH_AUTH_SOCK => "/tmp/launch-MbrIi7/Listeners" +TERM => "xterm-color" +TERM_PROGRAM => "Apple_Terminal" +TERM_PROGRAM_VERSION => "303.2" +TERM_SESSION_ID => "94F76547-3228-4372-9CB3-3241FF0C3DF3" +TMPDIR => "/var/folders/j8/crjskgf16hd9hsdqr40r36br0000gn/T/" +USER => "santaux" +_ => "/Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/bin/nanoc" +__CF_USER_TEXT_ENCODING => "0x1F5:7:32" +__array_start => "0" +_first => "0" +_second => "1" +escape_flag => "1" +rvm_bin_path => "/Users/santaux/.rvm/bin" +rvm_path => "/Users/santaux/.rvm" +rvm_prefix => "/Users/santaux" +rvm_reload_flag => "0" +rvm_version => "1.10.2" + +=== GEMFILE.LOCK: + +GEM + remote: http://rubygems.org/ + specs: + adsf (1.1.1) + rack (>= 1.0.0) + blankslate (2.1.2.4) + builder (3.0.0) + coderay (1.0.6) + colored (1.2) + cri (2.3.0) + colored (>= 1.2) + ffi (1.0.11) + fssm (0.2.9) + kramdown (0.13.7) + mime-types (1.18) + nanoc (3.3.7) + cri (~> 2.2) + nokogiri (1.4.7) + pygments.rb (0.2.12) + rubypython (~> 0.5.3) + rack (1.4.1) + rake (0.9.2.2) + rubypython (0.5.3) + blankslate (>= 2.1.2.3) + ffi (~> 1.0.7) + yajl-ruby (0.8.3) + +PLATFORMS + ruby + +DEPENDENCIES + adsf + builder + coderay + fssm + kramdown (~> 0.13.2) + mime-types (~> 1.16) + nanoc (~> 3.3.7) + nokogiri (~> 1.4.4) + pygments.rb + rake (~> 0.9.2) + yajl-ruby (~> 0.8.2) + +=== $LOAD_PATH: + + 0. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/nanoc-3.4.0/lib + 1. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/mime-types-1.18/lib + 2. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/kramdown-0.13.7/lib + 3. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/fssm-0.2.9/lib + 4. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/ffi-1.0.11/lib + 5. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/ffi-1.0.11/ext + 6. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/cri-2.3.0/lib + 7. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/colored-1.2/lib + 8. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/coderay-1.0.6/lib + 9. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/builder-3.0.0/lib + 10. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/blankslate-2.1.2.4/lib + 11. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/adsf-1.1.1/lib + 12. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/rack-1.4.1/lib + 13. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/rake-0.9.2.2/lib + 14. /Users/santaux/.rvm/gems/ruby-1.9.3-p0@abf/gems/bundler-1.0.21/lib + 15. /Users/santaux/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1 + 16. /Users/santaux/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/x86_64-darwin11.3.0 + 17. /Users/santaux/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby + 18. /Users/santaux/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/vendor_ruby/1.9.1 + 19. /Users/santaux/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/vendor_ruby/1.9.1/x86_64-darwin11.3.0 + 20. /Users/santaux/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/vendor_ruby + 21. /Users/santaux/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1 + 22. /Users/santaux/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/x86_64-darwin11.3.0 diff --git a/apidocs/layouts/_changes.html b/apidocs/layouts/_changes.html new file mode 100644 index 000000000..1afd6e7e6 --- /dev/null +++ b/apidocs/layouts/_changes.html @@ -0,0 +1,6 @@ +<% @changes.each do |article| %> +
+ <%= render '_meta', :item => article %> + <%= article.compiled_content %> +
+<% end %> diff --git a/apidocs/layouts/_meta.html b/apidocs/layouts/_meta.html new file mode 100644 index 000000000..12ca53188 --- /dev/null +++ b/apidocs/layouts/_meta.html @@ -0,0 +1,18 @@ +

+ <%= @item[:title] %> +

+ +
+
+ <%= gravatar_for(@item[:author_name]) %> + + <%= @item[:author_name] %> + + + <%= post_date @item %> + <% if version = @item[:api_version] %> + / Version: <%= version %> + <% end %> + +
+
diff --git a/apidocs/layouts/changes.html b/apidocs/layouts/changes.html new file mode 100644 index 000000000..710fd394a --- /dev/null +++ b/apidocs/layouts/changes.html @@ -0,0 +1,5 @@ +
+<%= render '_meta', :item => @item %> + +<%= yield %> +
diff --git a/apidocs/layouts/default.html b/apidocs/layouts/default.html new file mode 100644 index 000000000..64998081b --- /dev/null +++ b/apidocs/layouts/default.html @@ -0,0 +1,133 @@ + + + + + + + + <%= @item[:title] %> + + + + + + + + + +
+ +
+ +
+
+ <%= yield %> +
+ + + +
+ + + + + diff --git a/apidocs/lib/changes_helper.rb b/apidocs/lib/changes_helper.rb new file mode 100644 index 000000000..d26a8ad57 --- /dev/null +++ b/apidocs/lib/changes_helper.rb @@ -0,0 +1,89 @@ +module ChangesHelper + MimeFormat = "application/vnd.github.%s+json".freeze + # Public: Filters the change items out. If a version is given, show only the + # items related to that version. + # + # version - Optional String version key. + # + # Returns an Array of the first 30 Nanoc::Item objects, sorted in reverse + # chronological order. + def api_changes(version = nil) + changes = @items.select { |item| item[:kind] == 'change' } + if version + version_s = version.to_s + changes.select { |item| item[:api_version] == version_s } + else + changes + end.sort! do |x, y| + attribute_to_time(y[:created_at]) <=> attribute_to_time(x[:created_at]) + end.first(30) + end + + # Public + def current_api + @current_api ||= (api_versions[-2] || api_versions.first).first + end + + # Public + def upcoming_api + @upcoming_api ||= begin + version, date = api_versions.last + version unless date + end + end + + # Public + def current_api?(version) + @api_current_checks ||= {} + if @api_current_checks.key?(version) + @api_current_checks[version] + end + + @api_current_checks[version] = version == current_api + end + + # Public + def no_current_api_versions?(*versions) + versions.none? { |v| current_api?(v) } + end + + # Public + def api_released_at(version) + @api_releases ||= {} + if @api_releases.key?(version) + @api_releases[version] + end + + @api_releases[version] = begin + pair = api_versions.detect do |(name, date)| + name == version + end + pair ? pair[1] : nil + end + end + + # Public + def api_mimetype_listing(version) + version_s = version.to_s + mime = mimetype_for version_s + if time = api_released_at(version_s) + mime << " (" + mime << "Current, " if current_api?(version_s) + mime << strftime(time) + mime << ")" + else + mime + end + end + + # Internal + def mimetype_for(version) + MimeFormat % version.to_s + end + + # Internal + def api_versions + @api_versions ||= Array(@site.config[:api_versions]) + end +end + diff --git a/apidocs/lib/default.rb b/apidocs/lib/default.rb new file mode 100644 index 000000000..1921f4637 --- /dev/null +++ b/apidocs/lib/default.rb @@ -0,0 +1,3 @@ +# All files in the 'lib' directory will be loaded +# before nanoc starts compiling. +include Nanoc::Helpers::Rendering, Nanoc::Helpers::Blogging, ChangesHelper diff --git a/apidocs/lib/resources.rb b/apidocs/lib/resources.rb new file mode 100644 index 000000000..95b7a2fc5 --- /dev/null +++ b/apidocs/lib/resources.rb @@ -0,0 +1,1278 @@ +require 'pp' +require 'yajl/json_gem' +require 'stringio' +require 'cgi' + +module GitHub + module Resources + module Helpers + STATUSES = { + 200 => '200 OK', + 201 => '201 Created', + 202 => '202 Accepted', + 204 => '204 No Content', + 301 => '301 Moved Permanently', + 304 => '304 Not Modified', + 401 => '401 Unauthorized', + 403 => '403 Forbidden', + 404 => '404 Not Found', + 409 => '409 Conflict', + 422 => '422 Unprocessable Entity', + 500 => '500 Server Error' + } + + AUTHORS = { + :technoweenie => '821395fe70906c8290df7f18ac4ac6cf' + } + + DefaultTimeFormat = "%B %-d, %Y".freeze + + def post_date(item) + strftime item[:created_at] + end + + def strftime(time, format = DefaultTimeFormat) + attribute_to_time(time).strftime(format) + end + + def gravatar_for(login) + %() % gravatar_url_for(login) + end + + def gravatar_url_for(login) + md5 = AUTHORS[login.to_sym] + default = "https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png" + "https://secure.gravatar.com/avatar/%s?s=20&d=%s" % + [md5, default] + end + + def headers(status, head = {}) + css_class = (status == 204 || status == 404) ? 'headers no-response' : 'headers' + lines = ["Status: #{STATUSES[status]}"] + head.each do |key, value| + case key + when :pagination + lines << 'Link: ; rel="next",' + lines << ' ; rel="last"' + else lines << "#{key}: #{value}" + end + end + + lines << "X-RateLimit-Limit: 5000" + lines << "X-RateLimit-Remaining: 4999" + + %(
#{lines * "\n"}
\n) + end + + def json(key) + hash = case key + when Hash + h = {} + key.each { |k, v| h[k.to_s] = v } + h + when Array + key + else Resources.const_get(key.to_s.upcase) + end + + hash = yield hash if block_given? + + %(
) +
+          JSON.pretty_generate(hash) + "
" + end + + def text_html(response, status, head = {}) + hs = headers(status, head.merge('Content-Type' => 'text/html')) + res = CGI.escapeHTML(response) + hs + %(
) + res + "
" + end + end + +#============================================================================== +# ABF constants +#============================================================================== + +BUILD_LIST_SHOW_EXAMPLE = { + "build_list" => + { + "id" => 10, + "name" => "evil_tools", + "container_path" => "/rosa2012/container/evil_tools", + "status" => 6000, + "project_version" => "latest_rosa2012", + "package_version" => "latest_rosa2012", + "project" => { + "id" => 666, + "name" => "evil_tools", + "fullname" => "", + "url" => "/api/v1/projects/1" + }, + "build_for_platform" => { + "id" => 1, + "name" => "rosa2012", + "url" => "/api/v1/platforms/1" + }, + "save_to_repository" => { + "id" => 12, + "name" => "mr_evil/personal", + "url" => "/api/v1/repositories/12", + "platform" => { + "id" => 2, + "name" => "cocos_lts", + "url" => "/api/v1/platforms/2" + } + }, + "arch" => { + "id" => 1, + "name" => "x84_64" + }, + "notifed_at" => "Tue, 03 Apr 2012 14 =>06 =>10 UTC +00 =>00", + "is_circle" => false, + "update_type" => "bugfix", + "build_requires" => false, + "auto_publish" => true, + "commit_hash" => "4edafbe69632173a1800c4d7582b60b46bc1fb55", + "priority" => 0, + "duration" => nil, + "build_log_url" => "/downloads/warpc_personal/container/evil_tools-680163/log/evil_tools/build.log", + "advisory" => { + "id" => 666, + "name" => "at", + "description" => "warpc/at", + "url" => "/api/v1/advisories/666" + }, + "mass_build" => { + "id" => 666, + "name" => "rosa2012lts (main)", + "url" => "/api/v1/mass_builds/666" + }, + "owner" => { + "id" => 49, + "name" => "Mr. Evil", + "url" => "/users/49.json" + }, + "include_repos" => [ + { + "id" => 16, + "name" => "main", + "url" => "/api/v1/repositories/16.json", + "platform" => { + "id" => 16, + "name" => "warpc_personal", + "url" => "/api/v1/platforms/16.json" + } + } + ], + "url" => "/api/v1/build_lists/10.json" + } +} + +BUILD_LIST_SHOW_PARAMETERS = { + "build_list" => + { + "id" => "resource id", + "name" => "name", + "container_path" => "Container path", + "status" => "status code", + "project_version" => "parent project version", + "package_version" => "package version", + "project" => { + "id" => "project id", + "name" => "project name", + "fullname" => "project fullname", + "url" => "url to project data page" + }, + "build_for_platform" => { + "id" => "platform id", + "name" => "platform name", + "url" => "platform data page path" + }, + "save_to_repository" => { + "id" => "repository for package storage id", + "name" => "repository for package storage name", + "url" => "path to repository data page", + "platform" => { + "id" => "repository platform id", + "name" => "repository platform name", + "url" => "path to repository platform data page" + } + }, + "arch" => { + "id" => "build architecture id", + "name" => "build architecture name" + }, + "is_circle" => "recurrent build", + "update_type" => "update type", + "build_requires" => "build with all the required packages", + "auto_publish" => "automated publising", + "commit_hash" => "last commit hash of project source", + "priority" => "build priority", + "duration" => "build duration in seconds", + "build_log_url" => "build list log url", + "advisory" => { + "id" => "advisory id", + "name" => "advisory name", + "description" => "advisory description", + "url" => "path to advisory data page" + }, + "mass_build" => { + "id" => "mass_build id", + "name" => "mass_build name", + "url" => "path to mass_build data page" + }, + "owner" => { + "id" => "project owner id", + "name" => "project owner name", + "url" => "url to owner profile" + }, + "include_repos" => [ + { + "id" => "included repository id", + "name" => "included repository name", + "url" => "path to included repository data page", + "platform" => { + "id" => "repository platform id", + "name" => "repository platform name", + "url" => "path to repository platform data page" + } + } + ], + "url" => "url to build list page" + } +} + + +BUILD_LIST_CREATE_PARAMETERS = { + "build_list"=> { + "project_id"=> "project id", + "commit_hash"=> "commit hash to build", + "update_type"=> "one of the update types", + "save_to_repository_id"=> "repository identifier for package storage", + "build_for_platform_id"=> "platform identifier of platform for build", + "auto_publish"=> "automated publising", + "build_requires"=> "true if build with all the required packages", + "include_repos[]"=> [ + "included repository id for each selected platform" + ], + "arch_id"=> "architecture identifier" + } +} + +BUILD_LIST_CREATE_EXAMPLE = { + "build_list"=> { + "project_id"=> "10", + "commit_hash"=> "751b0cad9cd1467e735d8c3334ea3cf988995fab", + "update_type"=> "bugfix", + "save_to_repository_id"=> 12, + "build_for_platform_id"=> 2, + "auto_publish"=> true, + "build_requires"=> true, + "include_repos[]"=> [ + 54, + 53 + ], + "arch_id"=> 1 + } +} + +BUILD_LIST_CREATE_RESPONSE = { + "build_list" => + { + "id" => "build list id (null if failed)", + "message" => "success of fail message" + } +} + +BUILD_LIST_CREATE_RESPONSE_EXAMPLE = { + "build_list"=> + { + "id"=> 56, + "message"=> "Build list for project version 'beta_2012', platform 'rosa2012' and architecture 'i586' has been created successfully" + } +} + +BUILD_LIST_CANCEL_RESPONSE = { + "is_canceled"=> "true or false", + "url"=> "url to build list page", + "message"=> "success of fail message" +} + +BUILD_LIST_CANCEL_RESPONSE_EXAMPLE = { + "is_canceled"=> true, + "url"=> "/api/v1/build_lists/10.json", + "message"=> "Build canceled" +} + +BUILD_LIST_CANCEL_RESPONSE_EXAMPLE2 = { + "is_canceled"=> false, + "url"=> "/api/v1/build_lists/10.json", + "message"=> "Errors during build cancelation!" +} + +BUILD_LIST_PUBLISH_RESPONSE = { + "is_published"=> "true or false", # May be just result name will be better + "url"=> "url to build list page", + "message"=> "success of fail message" +} + +BUILD_LIST_PUBLISH_RESPONSE_EXAMPLE = { + "is_published"=> true, + "url"=> "/api/v1/build_lists/10.json", + "message"=> "Build is queued for publishing" +} + +BUILD_LIST_PUBLISH_RESPONSE_EXAMPLE2 = { + "is_published"=> false, + "url"=> "/api/v1/build_lists/10.json", + "message"=> "Errors during build publishing!" +} + +BUILD_LIST_REJECT_RESPONSE = { + "is_rejected"=> "true or false", # May be just result name will be better + "url"=> "url to build list page", + "message"=> "success or fail message" +} + +BUILD_LIST_REJECT_RESPONSE_EXAMPLE = { + "is_rejected"=> true, + "url"=> "/api/v1/build_lists/10.json", + "message"=> "Build is rejected" +} + +BUILD_LIST_REJECT_RESPONSE_EXAMPLE2 = { + "is_rejected"=> false, + "url"=> "/api/v1/build_lists/10.json", + "message"=> "Errors during build rejecting!" +} + +BUILD_LIST_SEARCH_RESPONSE = { + "build_lists"=> [ + { + "id"=> "build list id", + "name"=> "build list name", + "status"=> "build list status", + "url"=> "build list page" + } + ], + "url"=> "current url for build lists page" +} + +BUILD_LIST_SEARCH_RESPONSE_EXAMPLE = { + "build_lists"=> [ + { + "id"=> 25, + "name"=> "evil_tools", + "status"=> 6000, + "url"=> "/api/v1/build_lists/25.json" + }, + { + "id"=> 26, + "name"=> "evil_tools", + "status"=> 6000, + "url"=> "/api/v1/build_lists/26.json" + } + ], + "url"=> "/api/v1/build_lists.json" +} + +ERROR_404 = { + "status"=> 404, + "message"=> "Page not found" +} + +ERROR_500 = { + "status"=> 500, + "message"=> "Something went wrong. We've been notified about this issue and we'll take a look at it shortly." +} + +ERROR_503 = { + "status"=> 503, + "message"=> "We update the site, it will take some time. We are really trying to do it fast. We apologize for any inconvenience.." +} + +ERROR_401 = { + "status"=> 401, + "message"=> "Requires authentication" +} + +ERROR_403 = { + "message"=> "Forbidden. Sorry, you don't have enough rights for this action!" +} + +#============================================================================== +# Github constants +#============================================================================== + + USER = { + "login" => "octocat", + "id" => 1, + "avatar_url" => "https://github.com/images/error/octocat_happy.gif", + "gravatar_id" => "somehexcode", + "url" => "https://api.github.com/users/octocat" + } + + CONTRIBUTOR = USER.merge({ + "contributions" => 32 + }) + + FULL_USER = USER.merge({ + "name" => "monalisa octocat", + "company" => "GitHub", + "blog" => "https://github.com/blog", + "location" => "San Francisco", + "email" => "octocat@github.com", + "hireable" => false, + "bio" => "There once was...", + "public_repos" => 2, + "public_gists" => 1, + "followers" => 20, + "following" => 0, + "html_url" => "https://github.com/octocat", + "created_at" => "2008-01-14T04:33:35Z", + "type" => "User" + }) + + PRIVATE_USER = FULL_USER.merge({ + "total_private_repos" => 100, + "owned_private_repos" => 100, + "private_gists" => 81, + "disk_usage" => 10000, + "collaborators" => 8, + "plan" => { + "name" => "Medium", + "space" => 400, + "collaborators" => 10, + "private_repos" => 20 + } + }) + + PUBLIC_KEY = { + "url" => "https://api.github.com/user/keys/1", + "id" => 1, + "title" => "octocat@octomac", + "key" => "ssh-rsa AAA...", + } + + REPO = { + "url" => "https://api.github.com/repos/octocat/Hello-World", + "html_url" => "https://github.com/octocat/Hello-World", + "clone_url" => "https://github.com/octocat/Hello-World.git", + "git_url" => "git://github.com/octocat/Hello-World.git", + "ssh_url" => "git@github.com:octocat/Hello-World.git", + "svn_url" => "https://svn.github.com/octocat/Hello-World", + "mirror_url" => "git://git.example.com/octocat/Hello-World", + "id" => 1296269, + "owner" => USER, + "name" => "Hello-World", + "full_name" => "octocat/Hello-World", + "description" => "This your first repo!", + "homepage" => "https://github.com", + "language" => nil, + "private" => false, + "fork" => false, + "forks" => 9, + "watchers" => 80, + "size" => 108, + "master_branch" => 'master', + "open_issues" => 0, + "pushed_at" => "2011-01-26T19:06:43Z", + "created_at" => "2011-01-26T19:01:12Z", + "updated_at" => "2011-01-26T19:14:43Z" + } + + FULL_REPO = REPO.merge({ + "organization" => USER.merge('type' => 'Organization'), + "parent" => REPO, + "source" => REPO, + "has_issues" => true, + "has_wiki" => true, + "has_downloads" => true + }) + + TAG = { + "name" => "v0.1", + "commit" => { + "sha" => "c5b97d5ae6c19d5c5df71a34c7fbeeda2479ccbc", + "url" => "https://api.github.com/octocat/Hello-World/commits/c5b97d5ae6c19d5c5df71a34c7fbeeda2479ccbc" + }, + "zipball_url" => "https://github.com/octocat/Hello-World/zipball/v0.1", + "tarball_url" => "https://github.com/octocat/Hello-World/tarball/v0.1", + } + + BRANCHES = [ + { + "name" => "master", + "commit" => { + "sha" => "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "url" => "https://api.github.com/repos/octocat/Hello-World/commits/c5b97d5ae6c19d5c5df71a34c7fbeeda2479ccbc" + } + } + ] + + BRANCH = {"name"=>"master", + "commit"=> + {"sha"=>"7fd1a60b01f91b314f59955a4e4d4e80d8edf11d", + "commit"=> + {"author"=> + {"name"=>"The Octocat", + "date"=>"2012-03-06T15:06:50-08:00", + "email"=>"octocat@nowhere.com"}, + "url"=> + "https://api.github.com/repos/octocat/Hello-World/git/commits/7fd1a60b01f91b314f59955a4e4d4e80d8edf11d", + "message"=> + "Merge pull request #6 from Spaceghost/patch-1\n\nNew line at end of file.", + "tree"=> + {"sha"=>"b4eecafa9be2f2006ce1b709d6857b07069b4608", + "url"=> + "https://api.github.com/repos/octocat/Hello-World/git/trees/b4eecafa9be2f2006ce1b709d6857b07069b4608"}, + "committer"=> + {"name"=>"The Octocat", + "date"=>"2012-03-06T15:06:50-08:00", + "email"=>"octocat@nowhere.com"}}, + "author"=> + {"gravatar_id"=>"7ad39074b0584bc555d0417ae3e7d974", + "avatar_url"=> + "https://secure.gravatar.com/avatar/7ad39074b0584bc555d0417ae3e7d974?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", + "url"=>"https://api.github.com/users/octocat", + "id"=>583231, + "login"=>"octocat"}, + "parents"=> + [{"sha"=>"553c2077f0edc3d5dc5d17262f6aa498e69d6f8e", + "url"=> + "https://api.github.com/repos/octocat/Hello-World/commits/553c2077f0edc3d5dc5d17262f6aa498e69d6f8e"}, + {"sha"=>"762941318ee16e59dabbacb1b4049eec22f0d303", + "url"=> + "https://api.github.com/repos/octocat/Hello-World/commits/762941318ee16e59dabbacb1b4049eec22f0d303"}], + "url"=> + "https://api.github.com/repos/octocat/Hello-World/commits/7fd1a60b01f91b314f59955a4e4d4e80d8edf11d", + "committer"=> + {"gravatar_id"=>"7ad39074b0584bc555d0417ae3e7d974", + "avatar_url"=> + "https://secure.gravatar.com/avatar/7ad39074b0584bc555d0417ae3e7d974?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", + "url"=>"https://api.github.com/users/octocat", + "id"=>583231, + "login"=>"octocat"}}, + "_links"=> + {"html"=>"https://github.com/octocat/Hello-World/tree/master", + "self"=>"https://api.github.com/repos/octocat/Hello-World/branches/master"}} + + MERGE_COMMIT = {"commit"=> + {"sha"=>"7fd1a60b01f91b314f59955a4e4d4e80d8edf11d", + "commit"=> + {"author"=> + {"name"=>"The Octocat", + "date"=>"2012-03-06T15:06:50-08:00", + "email"=>"octocat@nowhere.com"}, + "url"=> + "https://api.github.com/repos/octocat/Hello-World/git/commits/7fd1a60b01f91b314f59955a4e4d4e80d8edf11d", + "message"=> + "Shipped cool_feature!", + "tree"=> + {"sha"=>"b4eecafa9be2f2006ce1b709d6857b07069b4608", + "url"=> + "https://api.github.com/repos/octocat/Hello-World/git/trees/b4eecafa9be2f2006ce1b709d6857b07069b4608"}, + "committer"=> + {"name"=>"The Octocat", + "date"=>"2012-03-06T15:06:50-08:00", + "email"=>"octocat@nowhere.com"}}, + "author"=> + {"gravatar_id"=>"7ad39074b0584bc555d0417ae3e7d974", + "avatar_url"=> + "https://secure.gravatar.com/avatar/7ad39074b0584bc555d0417ae3e7d974?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", + "url"=>"https://api.github.com/users/octocat", + "id"=>583231, + "login"=>"octocat"}, + "parents"=> + [{"sha"=>"553c2077f0edc3d5dc5d17262f6aa498e69d6f8e", + "url"=> + "https://api.github.com/repos/octocat/Hello-World/commits/553c2077f0edc3d5dc5d17262f6aa498e69d6f8e"}, + {"sha"=>"762941318ee16e59dabbacb1b4049eec22f0d303", + "url"=> + "https://api.github.com/repos/octocat/Hello-World/commits/762941318ee16e59dabbacb1b4049eec22f0d303"}], + "url"=> + "https://api.github.com/repos/octocat/Hello-World/commits/7fd1a60b01f91b314f59955a4e4d4e80d8edf11d", + "committer"=> + {"gravatar_id"=>"7ad39074b0584bc555d0417ae3e7d974", + "avatar_url"=> + "https://secure.gravatar.com/avatar/7ad39074b0584bc555d0417ae3e7d974?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png", + "url"=>"https://api.github.com/users/octocat", + "id"=>583231, + "login"=>"octocat"}}} + + MILESTONE = { + "url" => "https://api.github.com/repos/octocat/Hello-World/milestones/1", + "number" => 1, + "state" => "open", + "title" => "v1.0", + "description" => "", + "creator" => USER, + "open_issues" => 4, + "closed_issues" => 8, + "created_at" => "2011-04-10T20:09:31Z", + "due_on" => nil + } + + + PULL = { + "url" => "https://api.github.com/octocat/Hello-World/pulls/1", + "html_url" => "https://github.com/octocat/Hello-World/pulls/1", + "diff_url" => "https://github.com/octocat/Hello-World/pulls/1.diff", + "patch_url" => "https://github.com/octocat/Hello-World/pulls/1.patch", + "issue_url" => "https://github.com/octocat/Hello-World/issue/1", + "number" => 1, + "state" => "open", + "title" => "new-feature", + "body" => "Please pull these awesome changes", + "created_at" => "2011-01-26T19:01:12Z", + "updated_at" => "2011-01-26T19:01:12Z", + "closed_at" => "2011-01-26T19:01:12Z", + "merged_at" => "2011-01-26T19:01:12Z", + "head" => { + "label" => "new-topic", + "ref" => "new-topic", + "sha" => "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "user" => USER, + "repo" => REPO, + }, + "base" => { + "label" => "master", + "ref" => "master", + "sha" => "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "user" => USER, + "repo" => REPO, + }, + "_links" => { + "self" => {'href' => + "https://api.github.com/octocat/Hello-World/pulls/1"}, + "html" => {'href' => + "https://github.com/octocat/Hello-World/pull/1"}, + "comments" => {'href' => + "https://api.github.com/octocat/Hello-World/issues/1/comments"}, + "review_comments" => {'href' => + "https://api.github.com/octocat/Hello-World/pulls/1/comments"} + }, + "user" => USER + } + + FULL_PULL = PULL.merge({ + "merged" => false, + "mergeable" => true, + "merged_by" => USER, + "comments" => 10, + "commits" => 3, + "additions" => 100, + "deletions" => 3, + "changed_files" => 5 + }) + + COMMIT = { + "url" => "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "sha" => "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "commit" => { + "url" => "https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "sha" => "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "author" => { + "name" => "Monalisa Octocat", + "email" => "support@github.com", + "date" => "2011-04-14T16:00:49Z", + }, + "committer" => { + "name" => "Monalisa Octocat", + "email" => "support@github.com", + "date" => "2011-04-14T16:00:49Z", + }, + "message" => "Fix all the bugs", + "tree" => { + "url" => "https://api.github.com/repos/octocat/Hello-World/tree/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "sha" => "6dcb09b5b57875f334f61aebed695e2e4193db5e", + }, + }, + "author" => USER, + "committer" => USER, + "parents" => [{ + "url" => "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "sha" => "6dcb09b5b57875f334f61aebed695e2e4193db5e", + }] + } + + FULL_COMMIT = COMMIT.merge({ + "stats" => { + "additions" => 104, + "deletions" => 4, + "total" => 108, + }, + "files" => [{ + "filename" => "file1.txt", + "additions" => 10, + "deletions" => 2, + "changes" => 12, + "status" => "modified", + "raw_url" => "https://github.com/octocat/Hello-World/raw/7ca483543807a51b6079e54ac4cc392bc29ae284/file1.txt", + "blob_url" => "https://github.com/octocat/Hello-World/blob/7ca483543807a51b6079e54ac4cc392bc29ae284/file1.txt", + "patch" => "@@ -29,7 +29,7 @@\n....." + }] + }) + + COMMIT_COMMENT = { + "html_url" => "https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e#commitcomment-1", + "url" => "https://api.github.com/repos/octocat/Hello-World/comments/1", + "id" => 1, + "body" => "Great stuff", + "path" => "file1.txt", + "position" => 4, + "line" => 14, + "commit_id" => "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "user" => USER, + "created_at" => "2011-04-14T16:00:49Z", + "updated_at" => "2011-04-14T16:00:49Z" + } + + FILE = { + "sha" => "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "filename" => "file1.txt", + "status" => "added", + "additions" => 103, + "deletions" => 21, + "changes" => 124, + "blob_url" => "https://github.com/octocat/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt", + "raw_url" => "https://github.com/octocat/Hello-World/raw/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt", + "patch" => "@@ -132,7 +132,7 @@ module Test @@ -1000,7 +1000,7 @@ module Test" + } + + COMMIT_COMPARISON = { + "url" => "https://api.github.com/repos/octocat/Hello-World/compare/master...topic", + "html_url" => "https://github.com/octocat/Hello-World/compare/master...topic", + "permalink_url" => "https://github.com/octocat/Hello-World/compare/octocat:bbcd538c8e72b8c175046e27cc8f907076331401...octocat:0328041d1152db8ae77652d1618a02e57f745f17", + "diff_url" => "https://github.com/octocat/Hello-World/compare/master...topic.diff", + "patch_url" => "https://github.com/octocat/Hello-World/compare/master...topic.patch", + "base_commit" => COMMIT, + "status" => "behind", + "ahead_by" => 1, + "behind_by" => 2, + "total_commits" => 1, + "commits" => [COMMIT], + "files" => [FILE], + } + + PULL_COMMENT = { + "url" => "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1", + "id" => 1, + "body" => "Great stuff", + "path" => "file1.txt", + "position" => 4, + "commit_id" => "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "user" => USER, + "created_at" => "2011-04-14T16:00:49Z", + "updated_at" => "2011-04-14T16:00:49Z", + "_links" => { + "self" => {'href' => + "https://api.github.com/octocat/Hello-World/pulls/comments/1"}, + "html" => {'href' => + "https://github.com/octocat/Hello-World/pull/1#discussion-diff-1"}, + "pull_request" => {'href' => + "https://api.github.com/octocat/Hello-World/pulls/1"} + } + } + + DOWNLOAD = { + "url" => "https://api.github.com/repos/octocat/Hello-World/downloads/1", + "html_url" => "https://github.com/repos/octocat/Hello-World/downloads/new_file.jpg", + "id" => 1, + "name" => "new_file.jpg", + "description" => "Description of your download", + "size" => 1024, + "download_count" => 40, + "content_type" => ".jpg" + } + + CREATE_DOWNLOAD = DOWNLOAD.merge({ + "policy" => "ewogICAg...", + "signature" => "mwnFDC...", + "bucket" => "github", + "accesskeyid" => "1ABCDEFG...", + "path" => "downloads/ocotocat/Hello-World/new_file.jpg", + "acl" => "public-read", + "expirationdate" => "2011-04-14T16:00:49Z", + "prefix" => "downloads/octocat/Hello-World/", + "mime_type" => "image/jpeg", + "redirect" => false, + "s3_url" => "https://github.s3.amazonaws.com/" + }) + + ORG = { + "login" => "github", + "id" => 1, + "url" => "https://api.github.com/orgs/github", + "avatar_url" => "https://github.com/images/error/octocat_happy.gif" + } + + FULL_ORG = ORG.merge({ + "name" => "github", + "company" => "GitHub", + "blog" => "https://github.com/blog", + "location" => "San Francisco", + "email" => "octocat@github.com", + "public_repos" => 2, + "public_gists" => 1, + "followers" => 20, + "following" => 0, + "html_url" => "https://github.com/octocat", + "created_at" => "2008-01-14T04:33:35Z", + "type" => "Organization" + }) + + PRIVATE_ORG = FULL_ORG.merge({ + "total_private_repos" => 100, + "owned_private_repos" => 100, + "private_gists" => 81, + "disk_usage" => 10000, + "collaborators" => 8, + "billing_email" => "support@github.com", + "plan" => { + "name" => "Medium", + "space" => 400, + "private_repos" => 20 + } + }) + + TEAM = { + "url" => "https://api.github.com/teams/1", + "name" => "Owners", + "id" => 1 + } + + FULL_TEAM = TEAM.merge({ + "permission" => "admin", + "members_count" => 3, + "repos_count" => 10 + }) + + LABEL = { + "url" => "https://api.github.com/repos/octocat/Hello-World/labels/bug", + "name" => "bug", + "color" => "f29513" + } + + ISSUE = { + "url" => "https://api.github.com/repos/octocat/Hello-World/issues/1", + "html_url" => "https://github.com/octocat/Hello-World/issues/1", + "number" => 1347, + "state" => "open", + "title" => "Found a bug", + "body" => "I'm having a problem with this.", + "user" => USER, + "labels" => [LABEL], + "assignee" => USER, + "milestone" => MILESTONE, + "comments" => 0, + "pull_request" => { + "html_url" => "https://github.com/octocat/Hello-World/issues/1", + "diff_url" => "https://github.com/octocat/Hello-World/issues/1.diff", + "patch_url" => "https://github.com/octocat/Hello-World/issues/1.patch" + }, + "closed_at" => nil, + "created_at" => "2011-04-22T13:33:48Z", + "updated_at" => "2011-04-22T13:33:48Z" + } + + ISSUE_COMMENT = { + "id" => 1, + "url" => "https://api.github.com/repos/octocat/Hello-World/issues/comments/1", + "body" => "Me too", + "user" => USER, + "created_at" => "2011-04-14T16:00:49Z", + "updated_at" => "2011-04-14T16:00:49Z" + } + + ISSUE_EVENT = { + "url" => "https://api.github.com/repos/octocat/Hello-World/issues/events/1", + "actor" => USER, + "event" => "closed", + "commit_id" => "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "created_at" => "2011-04-14T16:00:49Z" + } + + FULL_ISSUE_EVENT = ISSUE_EVENT.merge('issue' => ISSUE) + + ISSUE_SEARCH_ITEM = { + "gravatar_id" => "4c3d600867886124a73f14a907b1a955", + "position" => 10, + "number" => 10, + "votes" => 2, + "created_at" => "2010-06-04T23:20:33-07:00", + "comments" => 5, + "body" => "Issue body goes here", + "title" => "This is is the issue title", + "updated_at" => "2010-06-04T23:20:33-07:00", + "html_url" => "https://github.com/pengwynn/linkedin/issues/10", + "user" => "ckarbass", + "labels" => [ + "api", + "feature request", + "investigation" + ], + "state" => "open" + } + + ISSUE_SEARCH_RESULTS = { + "issues" => [ISSUE_SEARCH_ITEM] + } + + REPO_SEARCH_ITEM = { + "type" => "repo", + "created" => "2011-09-05T11:07:54-07:00", + "watchers" => 2913, + "has_downloads" => true, + "username" => "mathiasbynens", + "homepage" => "http://mths.be/dotfiles", + "url" => "https://github.com/mathiasbynens/dotfiles", + "fork" => false, + "has_issues" => true, + "has_wiki" => false, + "forks" => 520, + "size" => 192, + "private" => false, + "followers" => 2913, + "name" => "dotfiles", + "owner" => "mathiasbynens", + "open_issues" => 12, + "pushed_at" => "2012-06-05T03:37:13-07:00", + "score" => 3.289718, + "pushed" => "2012-06-05T03:37:13-07:00", + "description" => "sensible hacker defaults for OS X", + "language" => "VimL", + "created_at" => "2011-09-05T11:07:54-07:00" + } + + REPO_SEARCH_RESULTS = { + "repositories" => [REPO_SEARCH_ITEM] + } + + USER_SEARCH_ITEM = { + "gravatar_id" => "70889091349f7598bce9afa588034310", + "name" => "Hirotaka Kawata", + "created_at" => "2009-10-05T01:32:06Z", + "location" => "Tsukuba, Ibaraki, Japan", + "public_repo_count" => 8, + "followers" => 10, + "language" => "Python", + "fullname" => "Hirotaka Kawata", + "username" => "techno", + "id" => "user-135050", + "repos" => 8, + "type" => "user", + "followers_count" => 10, + "pushed" => "2012-04-18T02:15:17.511Z", + "login" => "techno", + "score" => 4.2559967, + "record" => nil, + "created" => "2009-10-05T01:32:06Z" + } + + USER_SEARCH_RESULTS = { + "users" => [USER_SEARCH_ITEM] + } + + EMAIL_SEARCH_RESULTS = { + "user" => USER_SEARCH_ITEM + } + + GIST_HISTORY = { + "history" => [ + { + "url" => "https://api.github.com/gists/1/57a7f021a713b1c5a6a199b54cc514735d2d462f", + "version" => "57a7f021a713b1c5a6a199b54cc514735d2d462f", + "user" => USER, + "change_status" => { + "deletions" => 0, + "additions" => 180, + "total" => 180 + }, + "committed_at" => "2010-04-14T02:15:15Z" + } + ] + } + + GIST_FORKS = { + "forks" => [ + { + "user" => USER, + "url" => "https://api.github.com/gists/5", + "created_at" => "2011-04-14T16:00:49Z" + } + ] + } + + GIST_FILES = { + "files" => { + "ring.erl" => { + "size" => 932, + "filename" => "ring.erl", + "raw_url" => "https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl" + } + } + } + + GIST = { + "url" => "https://api.github.com/gists/1", + "id" => "1", + "description" => "description of gist", + "public" => true, + "user" => USER, + "files" => GIST_FILES, + "comments" => 0, + "html_url" => "https://gist.github.com/1", + "git_pull_url" => "git://gist.github.com/1.git", + "git_push_url" => "git@gist.github.com:1.git", + "created_at" => "2010-04-14T02:15:15Z" + }.update(GIST_FILES) + + FULL_GIST = GIST.merge(GIST_FORKS).merge(GIST_HISTORY) + FULL_GIST['files']['ring.erl']['content'] = 'contents of gist' + + GIST_COMMENT = { + "id" => 1, + "url" => "https://api.github.com/gists/comments/1", + "body" => "Just commenting for the sake of commenting", + "user" => USER, + "created_at" => "2011-04-18T23:23:56Z" + } + + TREE = { + "sha" => "9fb037999f264ba9a7fc6274d15fa3ae2ab98312", + "url" => "https://api.github.com/repo/octocat/Hello-World/trees/9fb037999f264ba9a7fc6274d15fa3ae2ab98312", + "tree" => [ + { "path" => "file.rb", + "mode" => "100644", + "type" => "blob", + "size" => 30, + "sha" => "44b4fc6d56897b048c772eb4087f854f46256132", + "url" => "https://api.github.com/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", + }, + { "path" => "subdir", + "mode" => "040000", + "type" => "tree", + "sha" => "f484d249c660418515fb01c2b9662073663c242e", + "url" => "https://api.github.com/octocat/Hello-World/git/blobs/f484d249c660418515fb01c2b9662073663c242e" + }, + { "path" => "exec_file", + "mode" => "100755", + "type" => "blob", + "size" => 75, + "sha" => "45b983be36b73c0788dc9cbcb76cbb80fc7bb057", + "url" => "https://api.github.com/octocat/Hello-World/git/blobs/45b983be36b73c0788dc9cbcb76cbb80fc7bb057", + } + ] + } + TREE_EXTRA = { + "sha" => "fc6274d15fa3ae2ab983129fb037999f264ba9a7", + "url" => "https://api.github.com/repo/octocat/Hello-World/trees/fc6274d15fa3ae2ab983129fb037999f264ba9a7", + "tree" => [ { + "path" => "subdir/file.txt", + "mode" => "100644", + "type" => "blob", + "size" => 132, + "sha" => "7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b", + "url" => "https://api.github.com/octocat/Hello-World/git/7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b" + } ] + } + TREE_NEW = { + "sha" => "cd8274d15fa3ae2ab983129fb037999f264ba9a7", + "url" => "https://api.github.com/repo/octocat/Hello-World/trees/cd8274d15fa3ae2ab983129fb037999f264ba9a7", + "tree" => [ { + "path" => "file.rb", + "mode" => "100644", + "type" => "blob", + "size" => 132, + "sha" => "7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b", + "url" => "https://api.github.com/octocat/Hello-World/git/blobs/7c258a9869f33c1e1e1f74fbb32f07c86cb5a75b" + } ] + } + + GIT_COMMIT = { + "sha" => "7638417db6d59f3c431d3e1f261cc637155684cd", + "url" => "https://api.github.com/repos/octocat/Hello-World/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd", + "author" => { + "date" => "2010-04-10T14:10:01-07:00", + "name" => "Scott Chacon", + "email" => "schacon@gmail.com" + }, + "committer" => { + "date" => "2010-04-10T14:10:01-07:00", + "name" => "Scott Chacon", + "email" => "schacon@gmail.com" + }, + "message" => "added readme, because im a good github citizen\n", + "tree" => { + "url" => "https://api.github.com/repos/octocat/Hello-World/git/trees/691272480426f78a0138979dd3ce63b77f706feb", + "sha" => "691272480426f78a0138979dd3ce63b77f706feb" + }, + "parents" => [ + { + "url" => "https://api.github.com/repos/octocat/Hello-World/git/commits/1acc419d4d6a9ce985db7be48c6349a0475975b5", + "sha" => "1acc419d4d6a9ce985db7be48c6349a0475975b5" + } + ] + } + + NEW_COMMIT = { + "sha" => "7638417db6d59f3c431d3e1f261cc637155684cd", + "url" => "https://api.github.com/repos/octocat/Hello-World/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd", + "author" => { + "date" => "2008-07-09T16:13:30+12:00", + "name" => "Scott Chacon", + "email" => "schacon@gmail.com" + }, + "committer" => { + "date" => "2008-07-09T16:13:30+12:00", + "name" => "Scott Chacon", + "email" => "schacon@gmail.com" + }, + "message" => "my commit message", + "tree" => { + "url" => "https://api.github.com/repos/octocat/Hello-World/git/trees/827efc6d56897b048c772eb4087f854f46256132", + "sha" => "827efc6d56897b048c772eb4087f854f46256132" + }, + "parents" => [ + { + "url" => "https://api.github.com/repos/octocat/Hello-World/git/commits/7d1b31e74ee336d15cbd21741bc88a537ed063a0", + "sha" => "7d1b31e74ee336d15cbd21741bc88a537ed063a0" + } + ] + } + + GITTAG = { + "tag" => "v0.0.1", + "sha" => "940bd336248efae0f9ee5bc7b2d5c985887b16ac", + "url" => "https://api.github.com/repos/octocat/Hello-World/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac", + "message" => "initial version\n", + "tagger" => { + "name" => "Scott Chacon", + "email" => "schacon@gmail.com", + "date" => "2011-06-17T14:53:35-07:00" + }, + "object" => { + "type" => "commit", + "sha" => "c3d0be41ecbe669545ee3e94d31ed9a4bc91ee3c", + "url" => "https://api.github.com/repos/octocat/Hello-World/git/commits/c3d0be41ecbe669545ee3e94d31ed9a4bc91ee3c" + } + } + + REF = { + "ref" => "refs/heads/sc/featureA", + "url" => "https://api.github.com/repos/octocat/Hello-World/git/refs/heads/sc/featureA", + "object" => { + "type" => "commit", + "sha" => "aa218f56b14c9653891f9e74264a383fa43fefbd", + "url" => "https://api.github.com/repos/octocat/Hello-World/git/commits/aa218f56b14c9653891f9e74264a383fa43fefbd" + } + } + + REFS = [ + { + "ref" => "refs/heads/master", + "url" => "https://api.github.com/repos/octocat/Hello-World/git/refs/heads/master", + "object" => { + "type" => "commit", + "sha" => "aa218f56b14c9653891f9e74264a383fa43fefbd", + "url" => "https://api.github.com/repos/octocat/Hello-World/git/commits/aa218f56b14c9653891f9e74264a383fa43fefbd" + } + }, + { + "ref" => "refs/heads/gh-pages", + "url" => "https://api.github.com/repos/octocat/Hello-World/git/refs/heads/gh-pages", + "object" => { + "type" => "commit", + "sha" => "612077ae6dffb4d2fbd8ce0cccaa58893b07b5ac", + "url" => "https://api.github.com/repos/octocat/Hello-World/git/commits/612077ae6dffb4d2fbd8ce0cccaa58893b07b5ac" + } + }, + { + "ref" => "refs/tags/v0.0.1", + "url" => "https://api.github.com/repos/octocat/Hello-World/git/refs/tags/v0.0.1", + "object" => { + "type" => "tag", + "sha" => "940bd336248efae0f9ee5bc7b2d5c985887b16ac", + "url" => "https://api.github.com/repos/octocat/Hello-World/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac" + } + } + ] + + HOOK = { + "url" => "https://api.github.com/repos/octocat/Hello-World/hooks/1", + "updated_at" => "2011-09-06T20:39:23Z", + "created_at" => "2011-09-06T17:26:27Z", + "name" => "web", + "events" => ["push"], + "active" => true, + "config" => + {'url' => 'http://example.com', 'content_type' => 'json'}, + "id" => 1 + } + + OAUTH_ACCESS = { + "id" => 1, + "url" => "https://api.github.com/authorizations/1", + "scopes" => ["public_repo"], + "token" => "abc123", + "app" => { + "url" => "http://my-github-app.com", + "name" => "my github app" + }, + "note" => "optional note", + "note_url" => "http://optional/note/url", + "updated_at" => "2011-09-06T20:39:23Z", + "created_at" => "2011-09-06T17:26:27Z" + } + + EVENT = { + :type => "Event", + :public => true, + :payload => {}, + :repo => { + :id => 3, + :name => "octocat/Hello-World", + :url => "https://api.github.com/repos/octocat/Hello-World" + }, + :actor => USER, + :org => USER, + :created_at => "2011-09-06T17:26:27Z", + :id => "12345" + } + + README_CONTENT = { + "type" => "file", + "encoding" => "base64", + "_links" => { + "git" => "https://api.github.com/repos/pengwynn/octokit/git/blobs/3d21ec53a331a6f037a91c368710b99387d012c1", + "self" => "https://api.github.com/repos/pengwynn/octokit/contents/README.md", + "html" => "https://github.com/pengwynn/octokit/blob/master/README.md" + }, + "size" => 5362, + "name" => "README.md", + "path" => "README.md", + "content" => "encoded content ...", + "sha" => "3d21ec53a331a6f037a91c368710b99387d012c1" + } + + STATUS = { + "created_at" => "2012-07-20T01:19:13Z", + "updated_at" => "2012-07-20T01:19:13Z", + "state" => "success", + "target_url" => "https://ci.example.com/1000/output", + "description" => "Build has completed successfully", + "id" => 1, + "url" => "https://api.github.com/repos/octocat/example/statuses/1", + "creator" => USER + } + + BLOB = { + :content => "Content of the blob", + :encoding => "utf-8", + :sha => "3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15", + :size => 100 + } + end +end + +include GitHub::Resources::Helpers diff --git a/apidocs/lib/static.rb b/apidocs/lib/static.rb new file mode 100644 index 000000000..5d091fa85 --- /dev/null +++ b/apidocs/lib/static.rb @@ -0,0 +1,55 @@ +require 'digest/sha1' + +module Nanoc3::DataSources + + class Static < Nanoc3::DataSource + + identifier :static + + def items + # Get prefix + prefix = config[:prefix] || 'static' + + # Get all files under prefix dir + filenames = Dir[prefix + '/**/*'].select { |f| File.file?(f) } + + # Convert filenames to items + filenames.map do |filename| + attributes = { + :extension => File.extname(filename)[1..-1], + :filename => filename, + } + identifier = filename[(prefix.length+1)..-1] + '/' + + mtime = File.mtime(filename) + checksum = checksum_for(filename) + + Nanoc3::Item.new( + filename, + attributes, + identifier, + :binary => true, :mtime => mtime, :checksum => checksum + ) + end + end + + private + + # Returns a checksum of the given filenames + # TODO un-duplicate this somewhere + def checksum_for(*filenames) + filenames.flatten.map do |filename| + digest = Digest::SHA1.new + File.open(filename, 'r') do |io| + until io.eof + data = io.readpartial(2**10) + digest.update(data) + end + end + digest.hexdigest + end.join('-') + end + + end + +end diff --git a/apidocs/script/bootstrap b/apidocs/script/bootstrap new file mode 100755 index 000000000..a7c34d210 --- /dev/null +++ b/apidocs/script/bootstrap @@ -0,0 +1,2 @@ +#!/bin/sh +exec $0.rb "$@" diff --git a/apidocs/script/bootstrap.rb b/apidocs/script/bootstrap.rb new file mode 100755 index 000000000..009f0d0d3 --- /dev/null +++ b/apidocs/script/bootstrap.rb @@ -0,0 +1,40 @@ +#!/usr/bin/env ruby +#/ Usage: script/bootstrap [] +#/ Bootstraps the gem environment. +#/ +#/ Options are passed through to the bundle-install command. In most cases you +#/ won't need these. They're used primarily in production environments. +# +# ============================================================================= +# Uses bundler to install all gems specified in the Gemfile. +# +# show usage message with --help +if ARGV.include?('--help') + system "grep '^#/' <'#{__FILE__}' |cut -c4-" + exit 2 +end + +# go into the project root because it makes everything easier +root = File.expand_path('../..', __FILE__) +Dir.chdir(root) + +# bring in rubygems and make sure bundler is installed. +require 'rubygems' +begin + require 'bundler' +rescue LoadError => boom + warn "Bundler not found. Install it with `gem install bundler' and try again." + exit 1 +end + +# run bundle-install to install any missing gems +argv = ['--no-color', 'install'] +argv += ARGV +system("bundle", *argv) || begin + if $?.exitstatus == 127 + warn "bundle executable not found. Ensure bundler is installed (`gem " + + "install bundler`) and that the gem bin path is in your PATH" + end + exit($?.exitstatus) +end + diff --git a/apidocs/static/css/960.css b/apidocs/static/css/960.css new file mode 100644 index 000000000..5e00e1847 --- /dev/null +++ b/apidocs/static/css/960.css @@ -0,0 +1,643 @@ +/* + 960 Grid System ~ Core CSS. + Learn more ~ http://960.gs/ + + Licensed under GPL and MIT. +*/ + +/* + Forces backgrounds to span full width, + even if there is horizontal scrolling. + Increase this if your layout is wider. + + Note: IE6 works fine without this fix. +*/ + +body { + min-width: 960px; +} + +/* `Containers +----------------------------------------------------------------------------------------------------*/ + +.container_12, +.container_16 { + margin-left: auto; + margin-right: auto; + width: 960px; +} + +/* `Grid >> Global +----------------------------------------------------------------------------------------------------*/ + +.grid_1, +.grid_2, +.grid_3, +.grid_4, +.grid_5, +.grid_6, +.grid_7, +.grid_8, +.grid_9, +.grid_10, +.grid_11, +.grid_12, +.grid_13, +.grid_14, +.grid_15, +.grid_16 { + display: inline; + float: left; + margin-left: 10px; + margin-right: 10px; +} + +.push_1, .pull_1, +.push_2, .pull_2, +.push_3, .pull_3, +.push_4, .pull_4, +.push_5, .pull_5, +.push_6, .pull_6, +.push_7, .pull_7, +.push_8, .pull_8, +.push_9, .pull_9, +.push_10, .pull_10, +.push_11, .pull_11, +.push_12, .pull_12, +.push_13, .pull_13, +.push_14, .pull_14, +.push_15, .pull_15 { + position: relative; +} + +.container_12 .grid_3, +.container_16 .grid_4 { + width: 220px; +} + +.container_12 .grid_6, +.container_16 .grid_8 { + width: 460px; +} + +.container_12 .grid_9, +.container_16 .grid_12 { + width: 700px; +} + +.container_12 .grid_12, +.container_16 .grid_16 { + width: 940px; +} + +/* `Grid >> Children (Alpha ~ First, Omega ~ Last) +----------------------------------------------------------------------------------------------------*/ + +.alpha { + margin-left: 0; +} + +.omega { + margin-right: 0; +} + +/* `Grid >> 12 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_12 .grid_1 { + width: 60px; +} + +.container_12 .grid_2 { + width: 140px; +} + +.container_12 .grid_4 { + width: 300px; +} + +.container_12 .grid_5 { + width: 380px; +} + +.container_12 .grid_7 { + width: 540px; +} + +.container_12 .grid_8 { + width: 620px; +} + +.container_12 .grid_10 { + width: 780px; +} + +.container_12 .grid_11 { + width: 860px; +} + +/* `Grid >> 16 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_16 .grid_1 { + width: 40px; +} + +.container_16 .grid_2 { + width: 100px; +} + +.container_16 .grid_3 { + width: 160px; +} + +.container_16 .grid_5 { + width: 280px; +} + +.container_16 .grid_6 { + width: 340px; +} + +.container_16 .grid_7 { + width: 400px; +} + +.container_16 .grid_9 { + width: 520px; +} + +.container_16 .grid_10 { + width: 580px; +} + +.container_16 .grid_11 { + width: 640px; +} + +.container_16 .grid_13 { + width: 760px; +} + +.container_16 .grid_14 { + width: 820px; +} + +.container_16 .grid_15 { + width: 880px; +} + +/* `Prefix Extra Space >> Global +----------------------------------------------------------------------------------------------------*/ + +.container_12 .prefix_3, +.container_16 .prefix_4 { + padding-left: 240px; +} + +.container_12 .prefix_6, +.container_16 .prefix_8 { + padding-left: 480px; +} + +.container_12 .prefix_9, +.container_16 .prefix_12 { + padding-left: 720px; +} + +/* `Prefix Extra Space >> 12 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_12 .prefix_1 { + padding-left: 80px; +} + +.container_12 .prefix_2 { + padding-left: 160px; +} + +.container_12 .prefix_4 { + padding-left: 320px; +} + +.container_12 .prefix_5 { + padding-left: 400px; +} + +.container_12 .prefix_7 { + padding-left: 560px; +} + +.container_12 .prefix_8 { + padding-left: 640px; +} + +.container_12 .prefix_10 { + padding-left: 800px; +} + +.container_12 .prefix_11 { + padding-left: 880px; +} + +/* `Prefix Extra Space >> 16 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_16 .prefix_1 { + padding-left: 60px; +} + +.container_16 .prefix_2 { + padding-left: 120px; +} + +.container_16 .prefix_3 { + padding-left: 180px; +} + +.container_16 .prefix_5 { + padding-left: 300px; +} + +.container_16 .prefix_6 { + padding-left: 360px; +} + +.container_16 .prefix_7 { + padding-left: 420px; +} + +.container_16 .prefix_9 { + padding-left: 540px; +} + +.container_16 .prefix_10 { + padding-left: 600px; +} + +.container_16 .prefix_11 { + padding-left: 660px; +} + +.container_16 .prefix_13 { + padding-left: 780px; +} + +.container_16 .prefix_14 { + padding-left: 840px; +} + +.container_16 .prefix_15 { + padding-left: 900px; +} + +/* `Suffix Extra Space >> Global +----------------------------------------------------------------------------------------------------*/ + +.container_12 .suffix_3, +.container_16 .suffix_4 { + padding-right: 240px; +} + +.container_12 .suffix_6, +.container_16 .suffix_8 { + padding-right: 480px; +} + +.container_12 .suffix_9, +.container_16 .suffix_12 { + padding-right: 720px; +} + +/* `Suffix Extra Space >> 12 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_12 .suffix_1 { + padding-right: 80px; +} + +.container_12 .suffix_2 { + padding-right: 160px; +} + +.container_12 .suffix_4 { + padding-right: 320px; +} + +.container_12 .suffix_5 { + padding-right: 400px; +} + +.container_12 .suffix_7 { + padding-right: 560px; +} + +.container_12 .suffix_8 { + padding-right: 640px; +} + +.container_12 .suffix_10 { + padding-right: 800px; +} + +.container_12 .suffix_11 { + padding-right: 880px; +} + +/* `Suffix Extra Space >> 16 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_16 .suffix_1 { + padding-right: 60px; +} + +.container_16 .suffix_2 { + padding-right: 120px; +} + +.container_16 .suffix_3 { + padding-right: 180px; +} + +.container_16 .suffix_5 { + padding-right: 300px; +} + +.container_16 .suffix_6 { + padding-right: 360px; +} + +.container_16 .suffix_7 { + padding-right: 420px; +} + +.container_16 .suffix_9 { + padding-right: 540px; +} + +.container_16 .suffix_10 { + padding-right: 600px; +} + +.container_16 .suffix_11 { + padding-right: 660px; +} + +.container_16 .suffix_13 { + padding-right: 780px; +} + +.container_16 .suffix_14 { + padding-right: 840px; +} + +.container_16 .suffix_15 { + padding-right: 900px; +} + +/* `Push Space >> Global +----------------------------------------------------------------------------------------------------*/ + +.container_12 .push_3, +.container_16 .push_4 { + left: 240px; +} + +.container_12 .push_6, +.container_16 .push_8 { + left: 480px; +} + +.container_12 .push_9, +.container_16 .push_12 { + left: 720px; +} + +/* `Push Space >> 12 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_12 .push_1 { + left: 80px; +} + +.container_12 .push_2 { + left: 160px; +} + +.container_12 .push_4 { + left: 320px; +} + +.container_12 .push_5 { + left: 400px; +} + +.container_12 .push_7 { + left: 560px; +} + +.container_12 .push_8 { + left: 640px; +} + +.container_12 .push_10 { + left: 800px; +} + +.container_12 .push_11 { + left: 880px; +} + +/* `Push Space >> 16 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_16 .push_1 { + left: 60px; +} + +.container_16 .push_2 { + left: 120px; +} + +.container_16 .push_3 { + left: 180px; +} + +.container_16 .push_5 { + left: 300px; +} + +.container_16 .push_6 { + left: 360px; +} + +.container_16 .push_7 { + left: 420px; +} + +.container_16 .push_9 { + left: 540px; +} + +.container_16 .push_10 { + left: 600px; +} + +.container_16 .push_11 { + left: 660px; +} + +.container_16 .push_13 { + left: 780px; +} + +.container_16 .push_14 { + left: 840px; +} + +.container_16 .push_15 { + left: 900px; +} + +/* `Pull Space >> Global +----------------------------------------------------------------------------------------------------*/ + +.container_12 .pull_3, +.container_16 .pull_4 { + left: -240px; +} + +.container_12 .pull_6, +.container_16 .pull_8 { + left: -480px; +} + +.container_12 .pull_9, +.container_16 .pull_12 { + left: -720px; +} + +/* `Pull Space >> 12 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_12 .pull_1 { + left: -80px; +} + +.container_12 .pull_2 { + left: -160px; +} + +.container_12 .pull_4 { + left: -320px; +} + +.container_12 .pull_5 { + left: -400px; +} + +.container_12 .pull_7 { + left: -560px; +} + +.container_12 .pull_8 { + left: -640px; +} + +.container_12 .pull_10 { + left: -800px; +} + +.container_12 .pull_11 { + left: -880px; +} + +/* `Pull Space >> 16 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_16 .pull_1 { + left: -60px; +} + +.container_16 .pull_2 { + left: -120px; +} + +.container_16 .pull_3 { + left: -180px; +} + +.container_16 .pull_5 { + left: -300px; +} + +.container_16 .pull_6 { + left: -360px; +} + +.container_16 .pull_7 { + left: -420px; +} + +.container_16 .pull_9 { + left: -540px; +} + +.container_16 .pull_10 { + left: -600px; +} + +.container_16 .pull_11 { + left: -660px; +} + +.container_16 .pull_13 { + left: -780px; +} + +.container_16 .pull_14 { + left: -840px; +} + +.container_16 .pull_15 { + left: -900px; +} + +/* `Clear Floated Elements +----------------------------------------------------------------------------------------------------*/ + +/* http://sonspring.com/journal/clearing-floats */ + +.clear { + clear: both; + display: block; + overflow: hidden; + visibility: hidden; + width: 0; + height: 0; +} + +/* http://www.yuiblog.com/blog/2010/09/27/clearfix-reloaded-overflowhidden-demystified */ + +.clearfix:before, +.clearfix:after { + content: '\0020'; + display: block; + overflow: hidden; + visibility: hidden; + width: 0; + height: 0; +} + +.clearfix:after { + clear: both; +} + +/* + The following zoom:1 rule is specifically for IE6 + IE7. + Move to separate stylesheet if invalid CSS is a problem. +*/ + +.clearfix { + zoom: 1; +} \ No newline at end of file diff --git a/apidocs/static/css/reset.css b/apidocs/static/css/reset.css new file mode 100644 index 000000000..885707c16 --- /dev/null +++ b/apidocs/static/css/reset.css @@ -0,0 +1,171 @@ +/* `XHTML, HTML4, HTML5 Reset +----------------------------------------------------------------------------------------------------*/ + +a, +abbr, +acronym, +address, +applet, +article, +aside, +audio, +b, +big, +blockquote, +body, +canvas, +caption, +center, +cite, +code, +dd, +del, +details, +dfn, +dialog, +div, +dl, +dt, +em, +embed, +fieldset, +figcaption, +figure, +font, +footer, +form, +h1, +h2, +h3, +h4, +h5, +h6, +header, +hgroup, +hr, +html, +i, +iframe, +img, +ins, +kbd, +label, +legend, +li, +mark, +menu, +meter, +nav, +object, +ol, +output, +p, +pre, +progress, +q, +rp, +rt, +ruby, +s, +samp, +section, +small, +span, +strike, +strong, +sub, +summary, +sup, +table, +tbody, +td, +tfoot, +th, +thead, +time, +tr, +tt, +u, +ul, +var, +video, +xmp { + border: 0; + margin: 0; + padding: 0; + font-size: 100%; +} + +html, +body { + height: 100%; +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +menu, +nav, +section { +/* + Override the default (display: inline) for + browsers that do not recognize HTML5 tags. + + IE8 (and lower) requires a shiv: + http://ejohn.org/blog/html5-shiv +*/ + display: block; +} + +b, +strong { +/* + Makes browsers agree. + IE + Opera = font-weight: bold. + Gecko + WebKit = font-weight: bolder. +*/ + font-weight: bold; +} + +img { + color: transparent; + font-size: 0; + vertical-align: middle; +/* + For IE. + http://css-tricks.com/ie-fix-bicubic-scaling-for-images +*/ + -ms-interpolation-mode: bicubic; +} + +li { +/* + For IE6 + IE7. +*/ + display: list-item; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +th, +td, +caption { + font-weight: normal; + vertical-align: top; + text-align: left; +} + +svg { +/* + For IE9. +*/ + overflow: hidden; +} \ No newline at end of file diff --git a/apidocs/static/css/uv_active4d.css b/apidocs/static/css/uv_active4d.css new file mode 100644 index 000000000..60e909b3a --- /dev/null +++ b/apidocs/static/css/uv_active4d.css @@ -0,0 +1,115 @@ +pre.active4d code { + background:none; + color:#000; + font-size:1.1em +} + +pre.active4d .DiffHeader { + background-color: #656565; + color: #FFFFFF; +} +pre.active4d .Operator { +} +pre.active4d .InheritedClass { +} +pre.active4d .TypeName { + color: #21439C; +} +pre.active4d .Number { + color: #A8017E; +} +pre.active4d .EmbeddedSource { + background-color: #ECF1FF; +} +pre.active4d { + background-color: #FFFFFF; + color: #000000; +} +pre.active4d .DiffInsertedLine { + background-color: #98FF9A; + color: #000000; +} +pre.active4d .LibraryVariable { + color: #A535AE; +} +pre.active4d .Storage { + color: #FF5600; +} +pre.active4d .InterpolatedEntity { + color: #66CCFF; +} +pre.active4d .line-numbers { + background-color: #BAD6FD; + color: #000000; +} +pre.active4d .LocalVariable { + color: #6392FF; +} +pre.active4d .DiffLineRange { + background-color: #1B63FF; + color: #FFFFFF; +} +pre.active4d .BlockComment { + color: #D33435; +} +pre.active4d .TagName { + color: #016CFF; +} +pre.active4d .FunctionArgument { +} +pre.active4d .BuiltInConstant { + color: #A535AE; +} +pre.active4d .LineComment { + color: #D33535; +} +pre.active4d .DiffDeletedLine { + background-color: #FF7880; + color: #000000; +} +pre.active4d .NamedConstant { + color: #B7734C; +} +pre.active4d .CommandMethod { + color: #45AE34; +} +pre.active4d .TableField { + color: #0BB600; +} +pre.active4d .PlainXmlText { + color: #000000; +} +pre.active4d .Invalid { + background-color: #990000; + color: #FFFFFF; +} +pre.active4d .LibraryClassType { + color: #A535AE; +} +pre.active4d .TagAttribute { + color: #963DFF; +} +pre.active4d .Keyword { + color: #006699; +} +pre.active4d .UserDefinedConstant { +} +pre.active4d .String { + color: #666666; +} +pre.active4d .DiffUnchangedLine { + color: #5E5E5E; +} +pre.active4d .TagContainer { + color: #7A7A7A; +} +pre.active4d .FunctionName { + color: #21439C; +} +pre.active4d .Variable { + color: #0053FF; +} +pre.active4d .DateTimeLiteral { + font-weight: bold; + color: #66CCFF; +} \ No newline at end of file diff --git a/apidocs/static/favicon.ico b/apidocs/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..47df9d03b03277e6512565b6cfec6948346b8816 GIT binary patch literal 1148 zcma)+Pe+7N6o>DqMWbj)k;tJatxBtiY10R28xd`aXxp;%1zNRj6%o<4RT&~8+O~>5 zz|bm&dY-1s_4fBSo_Wtb=lt$_-}l~`lxln$jl_4P&EAwoQcBZ6icB}pB`r}K>hI$C z4~khM-wuIZI=ekT1L$lmhm{K{TE z-p6?#K@EWU(o>D|Uh2_X`e*;}I+y(_`&~m`|1fa}s`o6%Gt|rVGfeleVSrAc>@Q<$ z%3eKL?!_~>H^-pIeZB+VvsZKb@ZJ8A{x~msR$$UZMZULXu*b7imCxjveSsaAf-L7V zXU(3x*Mwi>v)qI0^}LI*x$?|0{8j(@{dSrW?ZJqv9+-&On}gAaMqfnqcHv(n4(sG= O5v^9l^+DIuX}$v*;(ql2 literal 0 HcmV?d00001 diff --git a/apidocs/static/images/background-v2.png b/apidocs/static/images/background-v2.png new file mode 100644 index 0000000000000000000000000000000000000000..33292d8b6478884e4795dd7d2ebec1228c0df4f3 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^0ze$i!3HF&a#+s+DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MVX#1jv*Dd-b^{jdq9DQ`K?ya?*A<}o6@+ zAT*=`5)V-XWC@E>4kaj7z_JAl$b(}fED3>xt-UYw59lxV-MMdO?l<3jbD5qVt|(n& zT?m3uq$5Oc2wE)y`$(O&U=_5a41>>>SeN6mKGC7E2|?5l=x}iKnGjP_R8UxmcSulh z(xuiAdk9*aP9h#Yme@Bw;Ba@F%VzqJbizN_%Dj;pxPf@lXPwT^PnMH(+qPXt_d4$wuxU-0y zia&H{p){)BN=ODV6E$x`6=O=J5^ip8Ccn#bSU9Va%2d1`vU4I>RP>0YtGtb4)j*Sv zv^GyIjZwY@F>ZUxrvf+}&PM`mQT1{|o9&M5Ij+4&mV%+qQYJ68snu$I%67ytE-p^_ zWocn9b=&fM0uz=Ut4722?)a^FDYmw@4KJe>9&`g%8@*8uLQLNrU;L&i=25&4T)&$j zn8PNRZ-F5C`@7!Wz0UYBWfkE&c84m((gN#NizJM55C0A4U7Z8VHgQ zsEX&yyji0AY6x=F(nc*tTZk-LK*-`pp}?1rI6N+~1eO8PQd9OS;DiI7bWfzY2xX8H z$O$oQz@ifZmjB}@-p3zO$JbF_Mh^=8>u5{!;~)5bbJr)01t2SZ&B4BED~eDx`kv?N zr*DE6(xxP@`V|U=JK)0iLQY}0>!1m^$?*2}+?=YJ>G%TS(wWN|1Q|}%7lyCkuto@y zwCnQsOe*bXzOT=wy};fz(DSOAnf16E?1{D~lLsc95BjzV++09Cjl*~Ne78+x=UxmF zTJS*THF#YfoJ#fW0OqsAI6c+^yM-yQ3hxb~fD?u;d@PED$)lNw(2B1BGY{vj1$OM( z@*G@3)4SRa5jzm7bj)loUKkn@(j?5(VARrsORllV?Ap>u;ZERX{wHd&ok>;df&H_@7aQ?HOoZyy>~smR zbvB63YR^5X$CNP29FSHK_2A@QALRD)42+cVaQ?V?0 zm1X}*#l0weQW(y*t1=wTuF(43ExY0ab!pj}Z6xdV(kgsW(mB_-T2> z?9LqbJPYZ)neT2fM}VHgVci6v@|&LqQrKBdLIm0$8pf>SW~>FJ4C?auT0}8)gP&F> z?8x+4xl!U_RoBiNou1AE0XGBxetjc_-BQcbl$}<5Ql-Mca`4AdOM%9VdE&U!pB%s? z1_hZ3C}F+@w%Zx8#GqXz9LktW@8|fD^CieQXXZ-9;>H{^COJSK?urB{UUw;EBI#@} zj?-BW%)sdqBLS9cZ&}ga8N5Oj$+mo|icn2b601)=8`qFy-dlOG0@eEjQ4T{Np6>e6 z2F#=soL%|Ar|~GFSb*u97L@h2-36)`O~Y{5N@54Fd`)et_(L$(Wr{M z_hLXzVy$Zu!KFR2OuL`3!V^PYd5wQX6je7ju@v3&1zMdnt1l z0zgv7JvHIA5eZ;;+Vv2T2jCXZ2%b;IX$J3gv2hhilg~Ol5P2i$o_J#sEFFoDPyHJB z?!vR%f+*^kJ(u_MciwJk)sSO)6jx+J!ZaMvfh(i7POd{Fa!(j3nSI2~J*p|YO9a0V zG@MH?9I$%>W`KT^Yac$GT%dt;bF+viJNDlQX-LaO!-cvq^&Udtu7Ge!VZ^8YCSgac z0y!XB6U6fpYbyktW3i`Y{uR6Du1V`dz98B?o;m95tTtJ-7OF^B1Z5Ig6CeU2xp)vu IodVPT1u})^7ytkO literal 0 HcmV?d00001 diff --git a/apidocs/static/images/logo.png b/apidocs/static/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b5fe74cf44453bf34c1e56838c99b3d88e82aaad GIT binary patch literal 3541 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 B4cPzy literal 0 HcmV?d00001 diff --git a/apidocs/static/images/logo_developer.png b/apidocs/static/images/logo_developer.png new file mode 100644 index 0000000000000000000000000000000000000000..ce293d27d701f72fdf4b1daf5789175575e751b6 GIT binary patch literal 12087 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 R-2_y{;OXk;vd$@?2>>OYByj)$ literal 0 HcmV?d00001 diff --git a/apidocs/static/images/rackspace_logo.png b/apidocs/static/images/rackspace_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6a29d6743786ed11ad5b55546091e42ea4a4afc7 GIT binary patch literal 1434 zcmV;L1!ek)P)>lXf0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU%JV``BRCwC7m}_hlRTRh1Y`2wy5~+_i zR)kVMm_m$bG$gzs|eV`2-2F)Pm{=BmkQ6d1I2IUUZ!eB3`04;VCavsuVWu<@u)A0U6 zEl5#HsU*?NT++UTM*EW)3k-oga3Qz=Tn`?W#n;IrCPd5DHTsXibPCLXRZ4~^JrlMG zj*}YcrPM!dYOM1J#Z@DXF6^cxEARj?R=p4014hqQ5q{vE;C5aq6e)wQ2lR9%T~*ti*h9CHUDiel55dS+fEzNkfUXE=sVR53aUb?X6&& z%MUrq56Sl%#m~8Noe#F4wrs4Wp|SZu;!oYab_>w5(9=5N%i~?YyeI8 z;SU3p+EK20xOA=*i+RZAF!qIa}TZyYeZpsX|4mQ!g#_pwIF! zJ!pxGWiFF>_pG$s`w`sBJ_glrNy7ouwLLUIlIkn{?iPk3yeYlpF`0MI)5add8(sqC zA_Xh3CD@#UxGGl>V>esnVO_Hf22811>@oRcqwsLG+K;TmMu(6O=stx@XbbgHhn`fr z+&qP?qb(@0@us!}nUgJfBcHexx{sexL1Rm>c3i+n0E1`YZ=ecRq{e!{btpTD2>wae_fiM1)#*IB1gDD2Bmy!9+SU8fx?Ru^tS4qG#JTb zh*>TLGkhxY85c=bWUsFCBd>j)hmX(}=zK9+R69 zhz&Mq z=C?JR8JcU!6fdigv=qi^t`pp1>EtFU(&}Ut4F1)w5+u!y-`cQDnx!(yo<_OX;B{Uh zIV#wlZ$shCZaQ}gJLxKk4?ax20d4{({T!TFszHslNludL>&=w(;wdP?+s5zUI`9IB z`#r%KhkLG!XH2OZhb>~!j3R|Tp7poH#bSwv!!$+h4QUs%egUrFm7oP5nvI_01SK}% zx(Y0$Okv~dnvgQh|9AW$+xbY=|18)Xur32z`QM*uq%A-(8{43|GIlwKVt2sm0#C7d ovDu|dkpKlqn8-O+ ul { + background: #fafafb; + border: solid #CACACA; + border-width: 1px 1px 0px 1px; + margin: 0px; +} + +div.sidebar-module > p { + background: #fafafb; + border: solid #CACACA; + border-width: 1px; + padding: 8px 10px; + margin: 0px; + display: block; + line-height: 1.4em; +} + +div.sidebar-module li { + list-style-type: none; +} + +div.sidebar-module > ul > li { + border-bottom: 1px solid #CACACA; + text-decoration: none; +} + +div.sidebar-module > ul > li:hover { + text-decoration: none; +} + + +div.sidebar-module > ul h3 { + margin: 0px; + color: #666; + text-shadow: 1px 1px 0px #fff; + border-bottom: 1px solid #CACACA; + font-size: 14px; + background-color: #e1e1e1; + background-image: -moz-linear-gradient(top, #f1f1f1, #e1e1e1); + background-image: -ms-linear-gradient(top, #f1f1f1, #e1e1e1); + background-image: -o-linear-gradient(top, #f1f1f1, #e1e1e1); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f1f1f1), to(#e1e1e1)); + background-image: -webkit-linear-gradient(top, #f1f1f1, #e1e1e1); + background-image: linear-gradient(top, #f1f1f1, #e1e1e1); + filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#f1f1f1', EndColorStr='#e1e1e1'); +} + +div.sidebar-module > ul li h3:hover, +div.sidebar-module > ul h3.disable { + background-color: #e1e1e1; + background-image: -moz-linear-gradient(top, #e1e1e1, #d1d1d1); + background-image: -ms-linear-gradient(top, #e1e1e1, #d1d1d1); + background-image: -o-linear-gradient(top, #e1e1e1, #d1d1d1); + background-image: -webkit-gradient(linear, left top, left bottom, from(#e1e1e1), to(#d1d1d1)); + background-image: -webkit-linear-gradient(top, #e1e1e1, #d1d1d1); + background-image: linear-gradient(top, #e1e1e1, #d1d1d1); + filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#e1e1e1', EndColorStr='#d1d1d1'); +} + + +div.sidebar-module > ul h3 a, +div.sidebar-module > ul h3.disable span { + padding: 8px 0px 8px 10px; + color: #666; + display: block; + text-decoration: none; +} + +div.sidebar-module > ul h3.disable span { + padding-left: 20px; + background-image: url(../images/active-arrow.png); + background-position: left center; + background-repeat: no-repeat; + cursor: default; +} +div.sidebar-module > ul h3:hover a { + text-decoration: none; +} + +div.sidebar-module ul ul, +div.sidebar-module .spacer { + display: block; + padding-bottom: 2px; + background-color: #FAFAFB; +} + +div.sidebar-module ul ul li { + border-top: 1px solid #fff; + border-bottom: 1px solid #e9ecee; + font-weight: bold; + color: #666; +} + +div.sidebar-module ul ul li:hover, +div.sidebar-module li.disable { + border-top: 1px solid #fafafb; + border-bottom: 1px solid #e5e8ea; + background-color: #f0f0f3; +} + +div.sidebar-module li.disable { + background-image: url(../images/active-arrow.png); + background-position: left center; + background-repeat: no-repeat; +} + +div.sidebar-module ul ul li a, +div.sidebar-module ul ul li span { + padding: 6px 0px 6px 10px; + display: block; + text-decoration: none; +} + +div.sidebar-module ul ul li span { + padding-left: 20px; + cursor: default; +} + +/* @end */ + +/*****************************************************************************/ +/* +/* Footer +/* +/*****************************************************************************/ + + + +#footer { + position: relative; + bottom:0; + font-size:13px; + color: #636363; + margin: 45px 0 0 0; +} + +#footer a:hover { + text-decoration: underline; +} + +#footer li { + list-style: none; +} + +.footer_inner { + width:960px; + position: relative; + margin: 0 auto; +} + +#footer .upper_footer { + min-height: 160px; + overflow: hidden; + background: url(../images/bg_footer_top.png) #f8f8f8 repeat-x; +} + +#footer #blacktocat { + height:130px; + width:164px; + float:left; + background: url(../images/blacktocat.png) top left no-repeat; + text-indent: -5000px; + margin: 15px 20px 0 0; +} + +#footer #blacktocat_ie { + height:130px; + width:164px; + float:left; + background: url(../images/blacktocat.png) no-repeat; + text-indent: -5000px; + margin: 15px 20px 0 0; +} + +#footer .upper_footer ul.footer_nav { + position: relative; + float: left; + width: 164px; + margin: 20px 10px; +} + +#footer .upper_footer ul.footer_nav h4 { + margin: 0 0 5px 0; + padding-bottom: 5px; + border-bottom: thin solid #e1e1e1; +} + +#footer .lower_footer { + position: relative; + background:url(../images/bg_footer_bottom.png) #fff repeat-x; + overflow: hidden; + clear:both; +} + +#footer .lower_footer .home { + display: block; + position: absolute; + background: url(../images/footer-logo.png) top left no-repeat; + width: 100px; + height: 50px; + text-indent: -5000px; +} + +#footer .lower_footer .home_ie { + display: block; + position: absolute; + background: url(../images/footer-logo.png) top left no-repeat; + width: 100px; + height: 50px; + text-indent: -5000px; +} + +#footer .lower_footer #legal { + float: left; + width: 500px; + height: 50px; + line-height: 8px; + margin: 25px 0 0 17px; +} + +#footer .lower_footer #legal #legal_links { + margin-left: 177px; +} + +#footer .lower_footer div ul { + float: left; + text-indent: none; + display:inline; + margin-top: 15px; + +} + +#footer .lower_footer div ul li { + display:inline; + float: left; + margin: 0 10px 0 0; +} + +#footer .lower_footer div p { + display:inline; + float:left; + clear: both; + margin: 10px 0 0 177px; +} + +#footer .lower_footer .sponsor { + width: 295px; + float: right; + margin-top: 35px; + padding-bottom: 25px; +} + +#footer .lower_footer .sponsor .logo { + float:left; + margin: 0 10px 0 0; +} + +#footer .lower_footer .sponsor a { + color: #000; +} + +/* end */ + +/*------------------------------------------------------------------------------ + Not Footer +------------------------------------------------------------------------------*/ +#wrapper { + padding: 20px 25px; + overflow:hidden; + height: auto; + width: 920px; + margin: -20px auto 0; + background: url(../images/background-white.png) 0 0 no-repeat; +} + +.content { + width: 560px; + position: relative; + float: left; + color: #393939; + z-index: 2; +} + +.content dl { + margin-left: 10px; +} + +.content dt { + color: #666; +} + +.content ol { + margin-left: 1.5em; +} + +.content ul { + list-style-type: disc; + margin: 1.5em +} + +.content li { + line-height: 1.7em; +} + +.content img { + max-width: 100%; + border: 1px solid #dddddd; + -webkit-box-shadow: 1px 1px 3px #ddd; + -moz-box-shadow: 1px 1px 3px #ddd; + box-shadow: 1px 1px 3px #ddd; +} + + +.content .description { + margin-left: 20px; +} + +.content .verseblock-content { + padding: 3px; +} + +.content .verseblock-content, +.content .sectionbody .dlist dt, +.content p > tt, +.content dl code, +.content ul code, +p code { + font: 12px Monaco,"Courier New","DejaVu Sans Mono","Bitstream Vera Sans Mono",monospace; + color: #52595d; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -moz-background-clip: padding; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + background-color: #f9f9f9; + padding: 0px 3px; + display: inline-block; +} + +.content .sectionbody .dlist dt { + margin-top: 10px; +} + +.content .verseblock-content { + padding: 3px; +} + +.content .intro { + color: #868686; +} + +.change { + padding-bottom: 1em; +} + + .change .meta { + font-size: 16px; + padding-bottom: 1em; + } + + .change .who_when .author { + color: #eee; + } + + .change .who_when .published { + color: #ccc; + } + +/* @end */ + +/*------------------------------------------------------------------------------ + Pre/Code Styles +------------------------------------------------------------------------------*/ + +code {white-space: nowrap;} + +pre { + border: 1px solid #cacaca; + line-height: 1.2em; + font: 12px Monaco,"Courier New","DejaVu Sans Mono","Bitstream Vera Sans Mono",monospace; + padding: 10px; + overflow:auto; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -moz-background-clip: padding; + -webkit-background-clip: padding-box; + background-clip: padding-box; + background-color: #FAFAFB; + color: #393939; + margin: 0px; +} + +ul + pre { + margin-top: 1em; +} + +pre code {white-space: pre;} + +pre span.comment {color: #aaa;} + +pre.headers { + margin-bottom: 0; + border-bottom-width: 0; + -webkit-border-radius: 3px 3px 0 0; + -moz-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; + color: #666; + background-color: #f1f1f1; + background-image: -moz-linear-gradient(top, #f1f1f1, #e1e1e1); + background-image: -ms-linear-gradient(top, #f1f1f1, #e1e1e1); + background-image: -o-linear-gradient(top, #f1f1f1, #e1e1e1); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f1f1f1), to(#e1e1e1)); + background-image: -webkit-linear-gradient(top, #f1f1f1, #e1e1e1); + background-image: linear-gradient(top, #f1f1f1, #e1e1e1); + filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#f1f1f1', EndColorStr='#e1e1e1'); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.7); +} + +pre.no-response { + -webkit-border-radius: 3px 3px; + -moz-border-radius: 3px 3px; + border-radius: 3px 3px; + border-bottom: 1px solid #CACACA; +} + +pre.headers + pre.highlight { + -webkit-border-radius: 0 0 3px 3px; + -moz-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px; +} + +pre.highlight { + -webkit-border-radius:3px; + -moz-border-radius:3px; + border-radius:3px; + background-color: #FAFAFB; +} + +pre.terminal { + background-color: #444; + color: #fff; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -moz-background-clip: padding; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 2px solid #DEDEDE; + position: relative; + padding: 10px; + text-shadow: none; + background-image: none; + filter: none; +} + +pre.terminal em { + color: #f9fe64; +} + +span.codeline { + display: block; + position: relative; +} + +span.codeline:hover { + background-color: #292929; + margin: 0px; + padding-left: 3px; + margin-left: -3px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + color: #666666; +} + +span.codeline span { + display: inline-block; + font-size: 10px; + color: #fff; + padding: 0 0.3em 0.05em; + position: absolute; + right: 0px; + top: 0px; + text-indent: -9999px; + background-image: url(../images/qmark.png); + background-repeat: no-repeat; + background-position: 1px 3px; + max-width: 8px; + min-width: 8px; + -moz-user-select: none; + -khtml-user-select: none; + user-select: none; + cursor: default; +} + +span.codeline span:hover { + display: inline-block; + text-indent: 0px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + background: #000; + border: 1px solid #292929; + max-width: 1000px; +} + +span.codeline:hover em { + color: #666666; +} + +pre.bootcamp { + white-space: normal; + margin-left: -10px; + background-image: none; +} + +span.bash-output { + color: #63e463; + display: block; + position: relative; + -moz-user-select: none; + -khtml-user-select: none; + user-select: none; +} + +/* end */ + +/*------------------------------------------------------------------------------ + More Info Expander +------------------------------------------------------------------------------*/ + +.more-info { + margin: 10px 0; + position: relative; +} +.more-info > h4 { + background-image: url('../images/dropdown_sprites.jpg'); + background-repeat: no-repeat; + padding: .25em 0 .25em 25px; + cursor: pointer; + color: #4183C4; + font-weight: normal; +} +.more-info h4.compressed { + background-position: 0 0; +} +.more-info:hover h4.compressed { + background-position: 0 -23px; +} +.more-info h4.expanded { + background-position: 0 -46px; +} +.more-info:hover h4.expanded { + background-position: 0 -69px; +} + +.more-info .more-content { + display: none; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + background-color: #FFFFFF; + border: 3px solid #DDDDDD; + padding: 1em 2em; + -webkit-box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3); + box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3); + margin: 15px 0 30px; +} + +.more-info .more-content h4 { + margin-top: 1em; +} + +.more-info .more-content pre { + margin-left: 0px; +} + +/****************************/ +/* List Module */ +/****************************/ + +.list-module h2 { + border: solid #cacaca; + border-width: 1px; + border-radius: 3px 3px 0px 0px; + -moz-border-radius: 3px 3px 0px 0px; + -webkit-border-bottom-right-radius: 0px; + -webkit-border-bottom-left-radius: 0px; + -moz-background-clip: padding; + -webkit-background-clip: padding-box; + background-clip: padding-box; + padding: 6px 10px; + background-color: #f1f1f1; + background-image: -moz-linear-gradient(top, #f1f1f1, #e1e1e1); + background-image: -ms-linear-gradient(top, #f1f1f1, #e1e1e1); + background-image: -o-linear-gradient(top, #f1f1f1, #e1e1e1); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f1f1f1), to(#e1e1e1)); + background-image: -webkit-linear-gradient(top, #f1f1f1, #e1e1e1); + background-image: linear-gradient(top, #f1f1f1, #e1e1e1); + filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#f1f1f1', EndColorStr='#e1e1e1'); + color: #666; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.7); + font-size: 16px; + line-height: 22px; + margin: 0px; +} + +.list-module .list-body { + border: solid #cacaca; + border-width: 0px 1px 1px 1px; + border-radius: 0px 0px 3px 3px; + -moz-border-radius: 0px 0px 3px 3px; + -webkit-border-bottom-right-radius: 3px; + -webkit-border-bottom-left-radius: 3px; + -moz-background-clip: padding; + -webkit-background-clip: padding-box; + background-clip: padding-box; + background-color: #fafafb; + color: #666; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.7); +} + +.list-module .list-body .icon { + display: block; + height: 28px; + width: 28px; + position: absolute; + top: 10px; + left: 10px; + background: transparent url(images/popular_guide_sprites.png) 0 0 no-repeat; +} + +.list-module a { + border-top: 1px solid #fff; + border-bottom: 1px solid #e9ecee; + padding: 6px 10px; + position: relative; + display: block; +} + +.list-module a:hover { + border-top: 1px solid #fafafb; + border-bottom: 1px solid #e5e8ea; + background-color: #f0f0f3; + text-decoration: none; +} + +.list-module a h3 { + color: #4183C4; +} + +.list-module a:hover h3 { + text-decoration: underline; +} + +.list-module ul { + list-style-type: none; + margin: 0px; +} + +.list-module h3 { + margin: 0px; + font-size: 13px; +} + +.list-module .list-body a p { + color: #666; + margin: 0px; +} + +/* @end */ + +/****************************/ +/* Expandable List Module */ +/****************************/ + +div.expandable > ul h3 { + display: table; + width: 100%; +} + +div.expandable > ul h3 > a { + display: table-cell; + background-color: #e1e1e1; + background-image: -moz-linear-gradient(top, #f1f1f1, #e1e1e1); + background-image: -ms-linear-gradient(top, #f1f1f1, #e1e1e1); + background-image: -o-linear-gradient(top, #f1f1f1, #e1e1e1); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f1f1f1), to(#e1e1e1)); + background-image: -webkit-linear-gradient(top, #f1f1f1, #e1e1e1); + background-image: linear-gradient(top, #f1f1f1, #e1e1e1); + filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#f1f1f1', EndColorStr='#e1e1e1'); +} + +div.expandable > ul h3 > a:hover { + background-color: #e1e1e1; + background-image: -moz-linear-gradient(top, #e1e1e1, #d1d1d1); + background-image: -ms-linear-gradient(top, #e1e1e1, #d1d1d1); + background-image: -o-linear-gradient(top, #e1e1e1, #d1d1d1); + background-image: -webkit-gradient(linear, left top, left bottom, from(#e1e1e1), to(#d1d1d1)); + background-image: -webkit-linear-gradient(top, #e1e1e1, #d1d1d1); + background-image: linear-gradient(top, #e1e1e1, #d1d1d1); + filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#e1e1e1', EndColorStr='#d1d1d1'); +} + +div.expandable > ul h3 > a.collapsed, +div.expandable > ul h3 > a.expanded { + background-image: url(/shared/images/expand-arrows.png); + background-position: 0px -3px; + background-repeat: no-repeat; + width: 13px; + border-right: 1px solid #cacaca; + padding: 8px 11px; +} + +div.expandable > ul h3 > a.expanded { + background-position: -38px -3px; +} + +div.expandable > ul h3 > a.collapsed:hover { + background-image: url(/shared/images/expand-arrows.png); + background-position: 0px -43px; + background-repeat: no-repeat; + width: 13px; + border-right: 1px solid #cacaca; + padding: 8px 11px; +} + +div.expandable > ul h3 > a.expanded:hover { + background-position: -38px -43px; +} + +/* @end */ diff --git a/apidocs/static/shared/css/pygments.css b/apidocs/static/shared/css/pygments.css new file mode 100644 index 000000000..1e651cf79 --- /dev/null +++ b/apidocs/static/shared/css/pygments.css @@ -0,0 +1,60 @@ +.highlight { background: #ffffff; } +.highlight .c { color: #999988; font-style: italic } /* Comment */ +.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ +.highlight .k { font-weight: bold } /* Keyword */ +.highlight .o { font-weight: bold } /* Operator */ +.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */ +.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ +.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ +.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #aa0000 } /* Generic.Error */ +.highlight .gh { color: #999999 } /* Generic.Heading */ +.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ +.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */ +.highlight .go { color: #888888 } /* Generic.Output */ +.highlight .gp { color: #555555 } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #aaaaaa } /* Generic.Subheading */ +.highlight .gt { color: #aa0000 } /* Generic.Traceback */ +.highlight .kc { font-weight: bold } /* Keyword.Constant */ +.highlight .kd { font-weight: bold } /* Keyword.Declaration */ +.highlight .kp { font-weight: bold } /* Keyword.Pseudo */ +.highlight .kr { font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */ +.highlight .m { color: #009999 } /* Literal.Number */ +.highlight .s { color: #d14 } /* Literal.String */ +.highlight .na { color: #008080 } /* Name.Attribute */ +.highlight .nb { color: #0086B3 } /* Name.Builtin */ +.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */ +.highlight .no { color: #008080 } /* Name.Constant */ +.highlight .ni { color: #800080 } /* Name.Entity */ +.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */ +.highlight .nn { color: #555555 } /* Name.Namespace */ +.highlight .nt { color: #000080 } /* Name.Tag */ +.highlight .nv { color: #008080 } /* Name.Variable */ +.highlight .ow { font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mf { color: #009999 } /* Literal.Number.Float */ +.highlight .mh { color: #009999 } /* Literal.Number.Hex */ +.highlight .mi { color: #009999 } /* Literal.Number.Integer */ +.highlight .mo { color: #009999 } /* Literal.Number.Oct */ +.highlight .sb { color: #d14 } /* Literal.String.Backtick */ +.highlight .sc { color: #d14 } /* Literal.String.Char */ +.highlight .sd { color: #d14 } /* Literal.String.Doc */ +.highlight .s2 { color: #d14 } /* Literal.String.Double */ +.highlight .se { color: #d14 } /* Literal.String.Escape */ +.highlight .sh { color: #d14 } /* Literal.String.Heredoc */ +.highlight .si { color: #d14 } /* Literal.String.Interpol */ +.highlight .sx { color: #d14 } /* Literal.String.Other */ +.highlight .sr { color: #009926 } /* Literal.String.Regex */ +.highlight .s1 { color: #d14 } /* Literal.String.Single */ +.highlight .ss { color: #990073 } /* Literal.String.Symbol */ +.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #008080 } /* Name.Variable.Class */ +.highlight .vg { color: #008080 } /* Name.Variable.Global */ +.highlight .vi { color: #008080 } /* Name.Variable.Instance */ +.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/apidocs/static/shared/images/active-arrow.png b/apidocs/static/shared/images/active-arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..5c1cc36d0757de76d26befacc10c3c7b4e1304f5 GIT binary patch literal 1065 zcmaJ=&rj1(9PbnmNQj;whzYg$gGAOJ+gP`Tfny!AWF=%worwp!_6-_nUv1yq*nvb6 z6A31A!N9@9KfrJ?UNk`>M!>`$iJBOHpckhnm*~NZQD1?92WOM^z3=Pi^ZEXK(}M%2 z8tM<$69mx^>lYJv-G|@(wKe$L?s~O^mu3`Ap&^(-IoSe4ScPdo#&mfEB!H|=Tv!KP z1hJRWk|~su;(`KoT6QpWUN7qEa1kWA+Fal;n!A!<`szrJ$QT zvWC4~CR{KkFPjWUvrbB7pd|ets_Q#w8zsPQy#ExolM^Oj62OL8OTmrHv^lO!Az}d; zK`RO2c)5y$qYy!R6q;mYsFRdrMKc_G6E8_Z%&?JcC?F<=D6Bwhnkt0(i0JF(1AH*p z%W+XQ?DdJge3bY50(>Ci^_96IRI)lSP?@Xla)TAQ&M4?6_ACNRy9m@i3+m)%%7Ruo z7Jo&(ZLV557QP~v!ND+2WB+P&`3O&sv)vh6Z0rm^Fz~cnc&yu}-xctcxDgY>$^4u2 z`P-Q%U$3?H-1Q8*;wS5xCMSQrPaO?c(baLb#$O#@JA|s^U-}N87=BPZFuSL_d+7!K z{qg(fXU95TADLfR`0dI*ee`^NZEbCNWyPMIo4eB-J>Jst7T$b#HCNjBBnPg{%#1a~ z_f#zlm->Ddi^YxFm*=K#&0n6Lu2WaP{V07{RjOJUrsQgDynbeUv8I+K$V_LC^?2j7 Ob9rOY0dcW+cDSr z1<%~X^wgl##FWaylc_d9MVX#1jv*Dd-b^{jdq9DQ`K?ya?*A<}o6@+ zAT*=`5)V-XWC@E>4kaj7z_JAl$b(}fED3>xt-UYw59lxV-MMdO?l<3jbD5qVt|(n& zT?m3uq$5Oc2wE)y`$(O&U=_5a41>>>SeN6mKGC7E2|?5l=x}iKnGjP_R8UxmcSulh z(xuiAdk9*aP9h#Yme@Bw;Ba@F%VzqJbizN_%Dj;pxPf@lXPwT^PnMH(+qPXt_d4$wuxU-0y zia&H{p){)BN=ODV6E$x`6=O=J5^ip8Ccn#bSU9Va%2d1`vU4I>RP>0YtGtb4)j*Sv zv^GyIjZwY@F>ZUxrvf+}&PM`mQT1{|o9&M5Ij+4&mV%+qQYJ68snu$I%67ytE-p^_ zWocn9b=&fM0uz=Ut4722?)a^FDYmw@4KJe>9&`g%8@*8uLQLNrU;L&i=25&4T)&$j zn8PNRZ-F5C`@7!Wz0UYBWfkE&c84m((gN#NizJM55C0A4U7Z8VHgQ zsEX&yyji0AY6x=F(nc*tTZk-LK*-`pp}?1rI6N+~1eO8PQd9OS;DiI7bWfzY2xX8H z$O$oQz@ifZmjB}@-p3zO$JbF_Mh^=8>u5{!;~)5bbJr)01t2SZ&B4BED~eDx`kv?N zr*DE6(xxP@`V|U=JK)0iLQY}0>!1m^$?*2}+?=YJ>G%TS(wWN|1Q|}%7lyCkuto@y zwCnQsOe*bXzOT=wy};fz(DSOAnf16E?1{D~lLsc95BjzV++09Cjl*~Ne78+x=UxmF zTJS*THF#YfoJ#fW0OqsAI6c+^yM-yQ3hxb~fD?u;d@PED$)lNw(2B1BGY{vj1$OM( z@*G@3)4SRa5jzm7bj)loUKkn@(j?5(VARrsORllV?Ap>u;ZERX{wHd&ok>;df&H_@7aQ?HOoZyy>~smR zbvB63YR^5X$CNP29FSHK_2A@QALRD)42+cVaQ?V?0 zm1X}*#l0weQW(y*t1=wTuF(43ExY0ab!pj}Z6xdV(kgsW(mB_-T2> z?9LqbJPYZ)neT2fM}VHgVci6v@|&LqQrKBdLIm0$8pf>SW~>FJ4C?auT0}8)gP&F> z?8x+4xl!U_RoBiNou1AE0XGBxetjc_-BQcbl$}<5Ql-Mca`4AdOM%9VdE&U!pB%s? z1_hZ3C}F+@w%Zx8#GqXz9LktW@8|fD^CieQXXZ-9;>H{^COJSK?urB{UUw;EBI#@} zj?-BW%)sdqBLS9cZ&}ga8N5Oj$+mo|icn2b601)=8`qFy-dlOG0@eEjQ4T{Np6>e6 z2F#=soL%|Ar|~GFSb*u97L@h2-36)`O~Y{5N@54Fd`)et_(L$(Wr{M z_hLXzVy$Zu!KFR2OuL`3!V^PYd5wQX6je7ju@v3&1zMdnt1l z0zgv7JvHIA5eZ;;+Vv2T2jCXZ2%b;IX$J3gv2hhilg~Ol5P2i$o_J#sEFFoDPyHJB z?!vR%f+*^kJ(u_MciwJk)sSO)6jx+J!ZaMvfh(i7POd{Fa!(j3nSI2~J*p|YO9a0V zG@MH?9I$%>W`KT^Yac$GT%dt;bF+viJNDlQX-LaO!-cvq^&Udtu7Ge!VZ^8YCSgac z0y!XB6U6fpYbyktW3i`Y{uR6Du1V`dz98B?o;m95tTtJ-7OF^B1Z5Ig6CeU2xp)vu IodVPT1u})^7ytkO literal 0 HcmV?d00001 diff --git a/apidocs/static/shared/images/bg.png b/apidocs/static/shared/images/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..d1fae0fc07861d6b83f0ea35b02e1274deb8f527 GIT binary patch literal 945 zcmV;i15W&jP)cD00093P)t-sLx#CD zXq!QTwL*lqHf*0iez7-hp*3oqIB=sqdaXKir#^hIK!CG6c&kK*x;u8MIdY{#hq^Oo znl)*hLxs3BXPP^AsyK0^K!36}ZJ;!1oH%cyK7Ft{bEZ9ctU-geL4mY8b*MRUq(X(b zLW8zIfwVburZ#JyJ$tS-Yo0!Pt~YO@I(4W#d8|Blsy}_OKYy|}ZJ;w|nM8=YG&D3d zH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}?K0iM{KtMo2K|w-7LPJACL_|bIMMXwN zMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuyP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7 zSXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?WjVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@ zX=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2Ta&vQYbaZreb#-=jc6WDoczAeud3kzz zdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyDgoK2Jg@uNOhKGlTh=_=ZiHVAeii?Yj zjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z}m6ev3mY0{8n3$NEnVFiJnwy)OoSdAU zot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5(rl+T;sHmu^si~@}s;jH3tgNi9t*x%E zuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#pxVX5vxw*Q!y1To(yu7@dCU$jHda$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD) z(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa z^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg={r&#_{{R2~_yO^x0001MNklC36Bx=+!2R#$uPI!(aqDKf$@!lB9O{Hpamh#<_R5*6U64|@E1Gu3 zfuSaBXzQIl1D*1urw_KY^umpfu6a?jbGkNWN7+W4s1%Qk`3SVHx%b}te|!T(b(SY{ T0%1S^0000+Pg@ks@h6)#7%r{)Jq&3m!{o- z0r3-9`2mb93=B-nY|QMeY{ludJqAi7$9}EndEQUI>vqnL4j&vUigM(hJ3YDIkn85{ z1Nndd>eC~+-50H)=(7tkC!8wvfQ=|{BQmBvN`l3UZ?vi?1sD#7V(2}^K8sY6W7I54 zBwJCcwJah2lnOAS<1n`2ug_l~2m>2Ft9ZyunsgGLFFEZmI|F|?^{oKbo`7nGr9eal z0a3R#Dwv9%^Y&F`gwsC4TtS#4J{w$)g*m8qwZh0>^ zAB8B9o*l}=mo#W|7J+rjINTqLzE^L<4fe-k?B!}Q7%gw?Uya^g$?3_DyRntVZt!U= zr=82OwiXX-@=4rvo%$gAG5Wn))e7IgzP+<5+`6ZLp9de<~}MfM9?1^b2VU!ZjGUBQ|m#=^hP5oMXf+ zj5%8nnx|Qey*XiEOr}9(z#kt!K@j)`d|Y#o6L-igI9n%VxbC^$dhTgHJbeI~na%}5 z!Z66f^C;Cb18#M7e$KBY2(}P5H{fMZBc~5KG$EiSqOynT2-Ia!u2fZ3y$=*5BMB*z ztdwO{uP8b~VD~}pE%7J%!0hgPam#=+#$sKPmdmBMtcWz3O0uSDxrU;YIij4dB8Iba zl$HtwlcZh}#4Ml@$QALJE|>v%q?aj#@m@AccV*%QlQJAjvWW7O3ZUcs9~y>xbjk+g zPrUyWPTf^Zqyb6kBJp_RCZ*g}talQE8BJVD&x*#G`e&Obi#{Fu>_p z9E~@Azbp(#UnWBA^P_>ErfW;Hq`K1r2)-nMCXwn&f*Vi>9wZAAff(e|Nm2m-KnSvx zEzQ=%80$u*$Pj*GWCAJPM{EETwVqx?S@i7!4=Rl=yP(4ii%Qj3<`~sMPX#o7-_U3_8bO_Lc#xf z5J%p8iSAen9lgJN9a*XfPa4e|D=Qli5Fit9PKN61A&XX4R{pJl!AKt=r2T@tXoNs% zFF%pL6?8~`ZoXu18ky<^|E)-HrTWuU5l4~!HwB9KKeAqae;w1&fyo9Eyk*fcsNX65 z4Ky+N|DhDhKWIOi1?hj{{Xd2Mtb)8rvKAyis=u$>QQ_Q0e!KFrMOXJW33xT!7mllgMYNnsiEjQng`+#O}73iB+I1!)pIH( znQHFkUwSrH5XD{`pow1}g&C)$2kZE@(td(u9s8Vm`4nxwR7U~_!uh^sg=&W2u3t8K zG8~v|2gcPE1Q?;bfFLD&`34YBr9O-TDuG1${A{}vL36KB8q8O&sk7yj0?gUlLKPgO zK3)94e=!P(g|C8O>XAH}>#l5jU&xg=H0960;L+2H4oar0$-4|qWyYV{KQgcM4@JB5xW9=8I((wkH)~hBGlX_kNhb)Z7Ynz0$0GIqc;nb%-~EiSDuxmv9X!Na z-wX)ZyjI^lUFm=ZE_&H1giV{y=G$FX!F1V$AMB1j{657A>2Leh8*p0RKazd`uh03_ zEVv^gEXjm=E_CPqeEXoKY;Y|zYIOcYgOc3;Fjq)DjpWI?#0|woDJfl;LTeBA>r8c=^nPPJ`rLX zLI(UFm{>_LEA(}Cg|v5Vr+Um?(FzNg)l_MvT{V91QZTb3c#!^U!{ zxE34?B**@7C66@F$m@BtDzC04sE z9}HnnsWY?Tjitk@qQtI z{U+JlT!?A~2PmrN)45(}u;O*GpI!<G#a>kPymcus*sRl{wx@$Bn&skO}X!%`pM45$_Ky!VC zR0Ppz@J={VzucoouFu7JCbjIs;tnY$J&h;m58{jzQvM91f20oIcRb9)W_T1)^;m~Z0e)Tm8nD<}svDHgTAw)w_K zs$cbt#5UQ~(rR=?L|t7I;qX%uumAkq+O)Vx^XG&7wq7iA#wUH&2XZx?*c3?5v7Cu2*%%&CDmX>^Z z9hlqT2zA||8J0?r6re1=bTCT80$Rlju21HP0$yd&*-1!zzk(#9yx{Nkd^N?;CYc|; zA_U|au>x9QcR5%#QCWjwd>t(_s!$(zF$|2iz8To;GxYXy!J`mN1&P0mxgH*e`T(4- zC$c#G!Q(AzZKD*=54PvXlSDIy-@8%w5bb@?a}f$Qa7=u0tr=^|F0J}lcWG{D9U6_q z@-Eo*n;(9ijNP|9&7W7erK{fs9et2{(i$D@AYP$4e=X26N;A+ntBXx6%pGk5vrl(n zW&PvY-Nb!%ZEn&1e)ID-@Y#X2b)Oc1-gVH->`j*rC|sV!8KnKVE!3@WYiwO+RsZaR zOw*74v9ab~@OCkdN84e?K-?E(4AE4vMEWdW&SzPh64t1(VpU0*eTQim>}zG1Rh0SI#LAZj?j2UwXe7dBg4&7 zi()J!j|l^T5n(F4Ern-izRZ;|%*D*wK8I>+aA;(11bDGSno8Q{&I}t_*jTGB?)T@v zlsr-KO}3O&5=R{xS`KJF{Q9)R-g;UhRV`@KT0CZX=PMApc<+U2G4JT&{i(4Fm-~jl z{;&|uQTmj#w5xc$w)+w~eb2*oBQ0WRY~iH)mZIHv&Nn|!vO%P?Bktw;#xg{1FY9sw zV`8g|X->5gkf7PIw*AagQjDu)$5uQk8^iNop@ z4Yn<0K{M_UpRm6b5PPoE_&&#Stv- z+lBQ%;@JS;GZ z`(txnpZySHxlvjPS-Ips^^E9;HBy*X+11v4Q)V~Eib+f5d)%&(+8+B44LFNV^qx;W z`&=x8gZp`S8+n&U>)^Pk1$eFh)#(DqvW`U=g!H3aATW9?Ft4N`e&HPY_6eGP0W{e4Q1$AC4p5lsI4uIjpeOKV+(5YN65N=GUE+SAtA*V_PK%U8t;}QYoU~M;?3l1@rvQhcudjS7YHkF52+m<=?>qJB5#Xu5 z=g5E+M#7?pUZqvl%1atPET5 zPk|jbDC5PpLkI_NM@LPlkYeHPPOP;QZ+H!)-!zS{o;j9P_Kf zab1^?L?l14Cx$(dj^sau)=gEKIv)f*C3HTgy)@imM%~xM+VRCD!AnnWvZrxsCqs4L zC4O64RxrU`+Zx(%turiN2<;V$Yr87+%bb!Nv49yzue*n2^!7xRQ@0CCao_aih#xD4 z_PN2nk^*rod!kALO47j|(+{FIaLpq+igJ|lsg*aYBO9D4n;Mt&m5l)mkV)2b8JEqQ zY$^nkLGon7(z6S{7_y?S;Y|-1H;jG!q!0rXk$ApxyTPfDC+z4*>dkDHkqE2Zoeh45 z&kM^=AaI~?qpAp|^K z?DDbI&kOP_+nExJqvIR!YqVD_=C4Kr6L}8;?aObV62C|pKFjc7n=y8W2ut01hRvU# zO@4Jz&mh1mb6R9rENToC_L&w6v5QaTC3PQ=oN-_#;UNYRxW_KPaJHnGXa1-%|EEt~doi6M?XjFw;{yBCPF zwoDO-+xDO0&l{Mf8f-Oa@Ctt)PP$keZPWpc@q}wWE#+S?(Ex%{;x5~v9utuuDH$iZ z=A8628~OWR0}_4sve%8U>5~s`5VUf#T4Gr_vy4ks?nefy8+c}FzrOWxbGwTDWP2$9 ziD6b*Eq=cSgk0d>k$?N15DqnMCx1mwDp`T6)YYG}6|-f7ZJ;jPvlMIn10@3pR_bIm zJHHd}Q{Ah~%Cl_&xk1iJ%K8S0pU+&lQ0Bw*t#~K2VdlGN+>fxw0SYxNetsJ zc$DS|$Qcj5jX5u4xn>l-R#(cg8A`g#IffIOoqF_E#}wF$9yW2)8l2=Umst7mBXZnm zuJI;Sync0FKCOWInO_H=bLJG4Zv=dta%Jd zq#b8G6Y4;{w7?UmE_wXfcITdSe(T)*#E>d{2ltj^2x6&Ku z3NL$pGOFxzE$x}PN`8=XP}Yf~@b$f#rdg=0U#;e;QdFIYrr;C!Pc-GpG}IUG;7V3^ z-we5ZBs6#B2_G9|(`Pj%-hSC3!^0y<$0WF5a7X{m%;MMZFxv`~mpB1CO#Ya~m3Sv9 zKRi5=aT;u0XD^*~MR}H?g;o+Oat|ozt&nCIbS~+(ms$pEzKjiSe|M)RfcU7$Z6Kal znQlewN3Svhg4F5TFj$3HA<@d@(`BA`SE75T6)uW^JbWh=+VTrx7evqcRabX|lV~Ua z*P4F;VwwP9Oa)m-GccO@$E9IIOYho*3y$SMz=mhd{V(0MOpY#z(a(PZWXCqQ3x=e~ zg&G7tuuHW$cPDz!TE5dbMI)&*>g}BWV??)$v&){Ld~G+PoOW0@Zx_>^_*P?4l(rDV z#u^+x`&yyH+!O!oc3w?2$b-RF6ev-Orqn38orl=BWJX14w!e=-;!hm}2K(w^hLN|E z(i@|XGoMKqs(69+;917;Ia^;xiQV99sI;cAA)VpjM8c4H6L$0 z+)wGv>)vto!~+1~LQQ4x<{)K?qn*s@*xajk)hw1qA#cnFI4ZuN@u|6uoFIldZa`e# z%(hp#BVSDC=R4&fRjmZZ$e04PCU4b%Pw!OvYLF(Dk8^SY((~;8NH>kqIK3_L?s_#@ ztFZ3Sb^++0Pf#xnw5cqa5t=_yE{THY4X=%_`uA;(9*4f6b6E|?<`iTXcS3TUqLa#v z_8QFG!LhM<&YeNFj|52Ws-9zG2=AqyuQBv5nFe4Xd@b%^0 z6$VDWuTP*m{!_YNw)x$rSdEs4?7L3W~2|Jtnh$aNQ0LTZKmFT18;>CF`pKP zxjP5jXU8p`*pd9n8-VunBFoQkc}X5|8pWDIGc zAJnMqYr{KrF&^UAQtWh0H5k@=b*UiTbZN-QKHrqVu&3X(u`btt zi=*PJsiNA+j$;R_{*3P`>;|*iSN0CVfnY%KJI*Q$>-O(ERe*u6sm@C+{EhzrIvu6v literal 0 HcmV?d00001 diff --git a/apidocs/static/shared/images/blacktocat.svg b/apidocs/static/shared/images/blacktocat.svg new file mode 100644 index 000000000..dd8d71845 --- /dev/null +++ b/apidocs/static/shared/images/blacktocat.svg @@ -0,0 +1,269 @@ + + + + + + + + + proof:pdf + xmp.did:F87F11740720681180838E4FEC0BBEE0 + xmp.iid:F87F11740720681180838E4FEC0BBEE0 + uuid:a82416aa-8f86-e849-8a8d-10757c227e64 + + xmp.iid:F77F11740720681180838E4FEC0BBEE0 + xmp.did:F77F11740720681180838E4FEC0BBEE0 + uuid:a82416aa-8f86-e849-8a8d-10757c227e64 + proof:pdf + + + + + saved + xmp.iid:F77F11740720681180838E4FEC0BBEE0 + 2011-07-15T18:59:45-07:00 + Adobe Illustrator CS5 + / + + + saved + xmp.iid:F87F11740720681180838E4FEC0BBEE0 + 2011-07-15T19:12:41-07:00 + Adobe Illustrator CS5 + / + + + + + + 2011-07-15T19:12:41-07:00 + Adobe Illustrator CS5 + 2011-07-15T19:12:41-07:00 + 2011-07-15T19:12:41-07:00 + + + + 256 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FVOa4ghFZXCex6/diqDk1qHpDG0h8fsjFUM+p37/Z4Rj2FT+NcVUWmvHNWuH37KeP6sKqZi B+0zN8zirvQj8MVd6EfhirhFT7LMvyOKqqzXiGq3D/7I8v14qqpqd+n2gkg+4/hTAqJj1mA7TI0R 8ftD8P6YqjYriGYVicOPY7/diq/FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqh7m/t rfZ2q/ZF3OKpdNqN5Nsv7lPbdvvxVDCNa8m+Jj1LbnCq7FXYq7FXYq7FXYq7FXYq7FXYqt9Na8lq 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 + + + + + + Adobe PDF library 9.90 + + + image/svg+xml + + + 1 + False + False + + 130.000000 + 130.000000 + Pixels + + + + Cyan + Magenta + Yellow + + + + + + Default Swatch Group + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apidocs/static/shared/images/crud-sprite.png b/apidocs/static/shared/images/crud-sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..5334e2007d7580b020ba35208c27fb5e6a5dc73a GIT binary patch literal 1200 zcmeAS@N?(olHy`uVBq!ia0vp^LO{&J!2~296jZ$iQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{&CLn2Bde0{8v^Ko2Tt~skz|cV7z)0WFNY~KZ%Gk)tz(4^Clz_GsrKDK}xwt{?0`hE?GD=Dctn~HE z%ggo3jrH=2()A53EiFN27#ZmTRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdpzyaD(%Tp#cR9GX09g0)0b01O41wkiWpHi%Wu15zfG>x;Uh=AXPso zwK%`DC>aHCFybnZQU%%yG$2F3nBNEAe!(RRYTBrDUd9xtW{0 z85)|K7?>Lwm{}MaS~we;Sem)Ix|+I~nHd`!!_2^@*Vx3xz|GOr%+k`x+|ba~z|qyr z+|t?6)!EY7#MIfy9H!SZuec;JFF6%vZzj-Qs9saNdaay`QWHz^i$e1Ab6_bTAS1sd zzc?emK*2fKRKYhfIWrH$2SpFWw=StgnPsUdZbkXI3gGay%EV&7nnKn^_fq~-y0Oc5|^l%5vP0A{NPo-U3d6}M_G?d5ZE5Mg~V zH5yO1rsOi6?N-H4z0d4*?t5HO+x^tU*VLE$ z@C5VjMK`|NdI~vlrmxf_=U@hJ~umEM_d9)VeKKwb;nBEB`@OT^y%M*qL%s h7RG0aQepCpYzzXDlf7&ve~t&0A)c;&F6*2Ung9gCkTC!N literal 0 HcmV?d00001 diff --git a/apidocs/static/shared/images/dropdown_sprites.jpg b/apidocs/static/shared/images/dropdown_sprites.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3e3cc6f84895b3ed92343c4fadcaef31eee68e88 GIT binary patch literal 1873 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 XrhljT{>7vy`yWUwlnTzSi%t6n&K%AI literal 0 HcmV?d00001 diff --git a/apidocs/static/shared/images/footer-logo.png b/apidocs/static/shared/images/footer-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..408206b8f511bc5e8d7e5976fdc744a843435aac GIT binary patch literal 2654 zcmaJ@d0bNI8b(r7)S@hNNrx~CGuc8B)KO%a)NsL#az!{Q85{%@G%Xb)D@z-fQSaom zOr|Yn8Du(bwvU=-Q(C!X-ORNtD=o7wHr3oeZuk6t=X~G${hsG}-|u~&KhE|5zn@It zmT(9JV&c7q&epDc?YqhVru`NUS%+vB3mJnW3j*V0a;^k`Q2Agifb4y8v=3jP>8v_L_mg&1>yxFchrl<3n-+3?~V#{ zV&Pa~8jv7ZlO_Rz()@yXX^A{CALa2Q(oI3p3J3ui7pV|#6iF!xchqNHigrJHj71?o zLu85WsK1NiumX@YPy!&GFgQmZ&KZYv#$)iSi6jzf6_S9%GRK^DWsrP>hOM_Fz0G16%!DIWBB_ik;sM@tca&BEBM|T@Oght#>3~F#0`Qp

B3|Ws2bYwK#uQ z?+cgz{aQ%hz&gC?)L_Mf z(eM|^4_%CZc|*t)Wp|yMwgIv^rdKME9lDwoVq(@_!()Dkc&LME@XTg;;EG%dHGh1j zowkn6j+|+}o9^$g@eV{npdOjyHw5)F?>hS`8XWH?D}Sr_I5pFw$x1yuoPv{G-SBbK z;b)bD(;d3P#g6UFwG&q-t5I)#=9`h9h2HO0srl80%J8c9aq%hgRS0h7+E$Oc#!Xp@ z_>#H4NPoMGcV#_2M#}=jxKr*ye(vPDMqbgO(kS#Z>#F?32N=rjDH47e~f!FII<**0vsjvelrbOF3v-4H@fbF%mzq)!dQ{FYe&IS6T z!FBWN0zD3uK+SeI#d?s*?zn-D&5 zR=&*8i2L|qmzrMOKkw1-#(hwWm63;bjIM8KXTrDs;jufOMeUkEgeBq^DZ!jmHpWqX zG@M!~J$)6;m{;|5OHV{sT?Qi;One!B_lgd&E$&nmV?|f@@7vRk+Ju8Uaz=9v_nOtz zo}scPf{=*3^~*H=hx_zaX^QE9s5Oh+VyUMpERi$Al6INY^bPrB8B8y%Pd}=Epfr)E z9DbF#@^qIv#1~pymbW#JZ#bsjL%E(6CW;|uYzfYow=W4^{)cJth_c*4$MT$g{{(*g ze3h86ZfE1AIKtqE$9k460|y&G0zDma&%Fe5|xwPoYn6=cbgO=l${myHE9{DfTsmi3^ z#)H}mG(|gZZh+g~euAj!s=E9ueze~RuD6*y?a!thHQd??hiit?A;@ZF|#N=9;vL5c|@)hNZpd zBIay8`2((v?snl4=8$W#W^^=eTFR1M`4r84chLc*&tUV6?xHILg`t2>X zqSJU}$w3eO)=iyItoM^J7g1~Kbav*&$6@tjIk?@okHp-YYutQk9FbM1&s{=~DBzBA z@{M9b(`hMG(xwKSb4-gloG$B*IX`D$WxHH=^#K^G!*i15oly>sC}X8F;n_Qtx2wkt zNXNxjl3x*Ze(hgk6a^2)2Tt}~l=Uw9Ag?!Gzh&1mBVQu;KH{lWDNItSGpIl`R`glt z%C`~BXnnd(#=cEi?UMF0W)=koL9f_xo&o!k@)#JOZ0fBG3!7H; zaM&gbFw7?6aVm~>&0m$?L0WzSX36{1^g5}gdgb(JSwev!>vE$<=NiBFC2l=Se9o@+ zoLqbCr+d23G`119F1W?AE4nnUy}qiZZn6E``RQAq`zkH^uL4ciO4P2@C&k`Mho8%S z(QvMh`}a5hOh?~&7ZLlGcg%x0W$v$Axqab{wgKsaA?b~>`9UwO5}OKZj|Q3S!qXHj zs_lnPN}8WcmLZ_ix+hfjJtLaE3!w(NWest5R1<2I`$$5%|;EMk1B zbNKjD<^$0b>xXb!jF;y(Pg?Yfwvy9BCc|{Lgbl{?-|Wac5oK=yw=>`WC!WwH@tf#Q zO!@8l^O%)UF{-DH(d}pEC$>15*3F3wG$}YZQF4c|wD%Ld;pMLx!`_^8u3Q(ln!qU@7Ww1F~v#mncM zO`9?I&|C7=r?=@sPBMR(E-d0v#?u@Idr*I&KhBSV%tP@96Wnr + + + +]> + + + + + + proof:pdf + xmp.did:01801174072068118C14F029FF4E69A3 + xmp.iid:01801174072068118C14F029FF4E69A3 + uuid:9d2fdc90-b8de-c94c-86b5-364e47b8e5b6 + + uuid:76c5eca8-e841-3b48-99db-8cd076c5142a + uuid:9d2fdc90-b8de-c94c-86b5-364e47b8e5b6 + uuid:9d2fdc90-b8de-c94c-86b5-364e47b8e5b6 + proof:pdf + + + + + saved + xmp.iid:01801174072068118C14F029FF4E69A3 + 2011-08-01T16:12:07-07:00 + Adobe Illustrator CS5 + / + + + + + + 2011-08-01T16:12:06-07:00 + Adobe Illustrator CS5 + 2011-08-01T16:12:07-07:00 + 2011-08-01T16:12:07-07:00 + + + + 256 + 116 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAdAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FUr1X UZIn9CE8WpV27ivYYqliXt2jchK1fckj7jhQn1hdi6gDkUcGjj3wJROKuxV2KuxVCaqSLCUjY/D/ AMSGKseLMepJwoTbQP8Ad/8AsP8AjbAlNsVdirsVdirsVdirsVdirsVdirHNT/3vm+Y/UMKELirL cCXYq7FXYq7FXYq7FXYq7FXYqxzVEZb6Sv7VCD7EYUIXFU50FGEUrn7LEAfR1/XgSmmKuxV2KuxV Cat/xz5f9j/xIYqx3ChN9A/3f/sP+NsCU2xV2KuxV2KuxV2KuxV2KuxV2Ksc1P8A3vm+Y/UMKELi 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 + + + + + + Adobe PDF library 9.90 + + + image/svg+xml + + + + 100.000000 + 44.000000 + Pixels + + 1 + False + False + + + Cyan + Magenta + Yellow + + + + + + Default Swatch Group + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apidocs/static/shared/images/footer_logo.png b/apidocs/static/shared/images/footer_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8ad67d3ba746f51a11a742e9ce580415dc5126e5 GIT binary patch literal 4430 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 literal 0 HcmV?d00001 diff --git a/apidocs/static/shared/images/nav-rule.png b/apidocs/static/shared/images/nav-rule.png new file mode 100644 index 0000000000000000000000000000000000000000..909c5a85f1fccd7ddd831748d83535270a440d94 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-T!3HEf_T+>BDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MN*zFjv*DdlB~+!M4bQs|9|xii3JU1JPi!Y409sb8cvt( R-2_y{;OXk;vd$@?2>>OYByj)$ literal 0 HcmV?d00001 diff --git a/apidocs/static/shared/images/next_step_arrow.gif b/apidocs/static/shared/images/next_step_arrow.gif new file mode 100644 index 0000000000000000000000000000000000000000..8f93ee9f49aa4532193cf09543e7f8c362d8db73 GIT binary patch literal 1166 zcmZ?wbhEHbC&Z(7cahj`}WnVR}UUMIDh{9y?gim{rmUl&!7AE@1Hqy z=Kufy3`junKX-(0fPzb6Ng|N8v9BmdOwLX%QAkQn&&;z`dcS+Wl0s&Rtx~wDuYqrY zb81GWM^#a3aFt(3a#eP+Wr~u$oq|n;RYh(=ZfZ%QLPc&)Ua?h$tx{r2ep0FxkPQ;n zS5g2gDap1~as){zfb4Y6FG^J~)icmdHZU_#Ff-IMG&V6eH`h@xGB7mIH!#vSG}1LR zw=y=eGB8kp0wthrMJZ`kK`w4kyMR1frHqo20xNy}^73-Ma$~*xqI7*jOG`_T8Ae9B zKoz>hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83mzLNn0bL65LT&-v*t}vruy^#5 z^Kf+_U%#ji9s7p}UvBq$Z(UaSTehg24%>IbD3=a&{GrvjBLgRCmB zaxO|uEXgkl$0+w{ zG(j&jGsVi()z!$&&C$)s$=JZq(AB`v#nsK(&D7P{$<58k(##B|*Cju>G&eP`1g19y zuGh%`r(RG}$SnZc?2=lPS(cjOR+OKs0QRy~CKk6?I6Im-S(+OeIT@K^cMC*s3Qo5; zy5e+;KF~4xpom3^XqXT%^?;c0WDDfL6MkwQFtrx}lQrZ2e}Dh{{`K?6_itaneE#(D z!~1t{-@JbH^2PIKPoF$~^zgy`dw1{LzIF4)^=ntJT)uSi!ufM&&zwGW^2G6DM~@sn zbnw9beS7!p-nDbb_HA3YY~HkS!}@h=*Q{Q(a>epxOP4HOv~a=vd2{E?o;7pE^l4M4 zOrA7xLVsUxPj^>mM|)dqOLJ3WLw#LsO?6deMR{3iNpVqOL4ICtPIgviMtWLmN^(+S zLVR3oOmtLaM0i+eNN`YKfWM!wkGGenhr64ri?frXgT0-tjkT4fg}IrjiLntdOX=zA zXlrR|sH>@}C@U!{$jiyfNJ~jdh>MAe2nz`c@bmHVaC32Tu(PqUFf%bSFev_H0g~Jd wI-v3bRK75<$QPVcUFND4*}0j;OCzf_Lujd_TH`8-<5vz|m(D-D*M-3v05z(r2LJ#7 literal 0 HcmV?d00001 diff --git a/apidocs/static/shared/images/qmark.png b/apidocs/static/shared/images/qmark.png new file mode 100644 index 0000000000000000000000000000000000000000..caa30f5568e633bb8bf30b0bbb8c54e15500c6f1 GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3CupbF@n8SZ$xdWH>h8dqYQn*4CIZ})mIb%(< z|1%Y;3YaT(&NMVkXyQ}wb1-LE^1*19(}eYNFC6hRbo6y#Q{dn0COn%XXoqM=_5>Ek zM9r2X`K*sjeLQ5M74ESdv2pmrm({?0MxcR#nW3jow!L9RHpr6zopr05ULC AuK)l5 literal 0 HcmV?d00001 diff --git a/apidocs/static/shared/images/rackspace_logo.png b/apidocs/static/shared/images/rackspace_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6a29d6743786ed11ad5b55546091e42ea4a4afc7 GIT binary patch literal 1434 zcmV;L1!ek)P)>lXf0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU%JV``BRCwC7m}_hlRTRh1Y`2wy5~+_i zR)kVMm_m$bG$gzs|eV`2-2F)Pm{=BmkQ6d1I2IUUZ!eB3`04;VCavsuVWu<@u)A0U6 zEl5#HsU*?NT++UTM*EW)3k-oga3Qz=Tn`?W#n;IrCPd5DHTsXibPCLXRZ4~^JrlMG zj*}YcrPM!dYOM1J#Z@DXF6^cxEARj?R=p4014hqQ5q{vE;C5aq6e)wQ2lR9%T~*ti*h9CHUDiel55dS+fEzNkfUXE=sVR53aUb?X6&& z%MUrq56Sl%#m~8Noe#F4wrs4Wp|SZu;!oYab_>w5(9=5N%i~?YyeI8 z;SU3p+EK20xOA=*i+RZAF!qIa}TZyYeZpsX|4mQ!g#_pwIF! zJ!pxGWiFF>_pG$s`w`sBJ_glrNy7ouwLLUIlIkn{?iPk3yeYlpF`0MI)5add8(sqC zA_Xh3CD@#UxGGl>V>esnVO_Hf22811>@oRcqwsLG+K;TmMu(6O=stx@XbbgHhn`fr z+&qP?qb(@0@us!}nUgJfBcHexx{sexL1Rm>c3i+n0E1`YZ=ecRq{e!{btpTD2>wae_fiM1)#*IB1gDD2Bmy!9+SU8fx?Ru^tS4qG#JTb zh*>TLGkhxY85c=bWUsFCBd>j)hmX(}=zK9+R69 zhz&Mq z=C?JR8JcU!6fdigv=qi^t`pp1>EtFU(&}Ut4F1)w5+u!y-`cQDnx!(yo<_OX;B{Uh zIV#wlZ$shCZaQ}gJLxKk4?ax20d4{({T!TFszHslNludL>&=w(;wdP?+s5zUI`9IB z`#r%KhkLG!XH2OZhb>~!j3R|Tp7poH#bSwv!!$+h4QUs%egUrFm7oP5nvI_01SK}% zx(Y0$Okv~dnvgQh|9AW$+xbY=|18)Xur32z`QM*uq%A-(8{43|GIlwKVt2sm0#C7d ovDu|dkpKlqn8-O+= 0 && url.length == docUrl[1].length){ + $(this).parent('li').addClass('disable') + var parentTopic = $(this).parentsUntil('div.sidebar-module > ul').last() + parentTopic.addClass('js-current') + parentTopic.find('.js-expand-btn').toggleClass('collapsed expanded') + } + }) + } + } + + $('#js-sidebar .js-topic').each(function(){ + if(($(this).find('.disable').length == 0 || firstOccurance == false) && + $(this).hasClass('js-current') != true){ + $(this).find('.js-guides').children().hide() + } else { + activeItem = $(this).index() + firstOccurance = false + } + }) + + // Toggle style list. Expanded items stay + // expanded when new items are clicked. + $('#js-sidebar .js-toggle-list .js-expand-btn').click(function(){ + var clickedTopic = $(this).parents('.js-topic'), + topicGuides = clickedTopic.find('.js-guides li') + $(this).toggleClass('collapsed expanded') + topicGuides.toggle(100) + return false + }) + + // Accordion style list. Expanded items + // collapse when new items are clicked. + $('#js-sidebar .js-accordion-list .js-topic h3 a').click(function(){ + var clickedTopic = $(this).parents('.js-topic'), + topicGuides = clickedTopic.find('.js-guides li') + + if(activeItem != clickedTopic.index()){ + if(helpList.eq(activeItem)){ + helpList.eq(activeItem).find('.js-guides li').toggle(100) + } + activeItem = clickedTopic.index() + topicGuides.toggle(100) + } else { + activeItem = undefined + topicGuides.toggle(100) + } + + return false + }) + + $('.help-search .search-box').focus(function(){ + $(this).css('background-position','0px -25px') + }) + + $('.help-search .search-box').focusout(function(){ + if($(this).val() == ''){ + $(this).css('background-position','0px 0px') + } + }) + + // Dynamic year for footer copyright + var currentYear = (new Date).getFullYear(); + $("#year").text( (new Date).getFullYear() ); + +}); \ No newline at end of file diff --git a/apidocs/static/shared/js/jquery.js b/apidocs/static/shared/js/jquery.js new file mode 100644 index 000000000..7c2430802 --- /dev/null +++ b/apidocs/static/shared/js/jquery.js @@ -0,0 +1,154 @@ +/*! + * jQuery JavaScript Library v1.4.2 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Sat Feb 13 22:33:48 2010 -0500 + */ +(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, +Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& +(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, +a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== +"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, +function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b
a"; +var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, +parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= +false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= +s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, +applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; +else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, +a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== +w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, +cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= +c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); +a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, +function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); +k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), +C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B=0){a.type= +e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& +f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; +if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", +e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, +"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, +d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, +e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); +t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| +g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, +CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, +g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, +text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, +setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return hl[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= +h[3];l=0;for(m=h.length;l=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== +"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, +h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& +q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML=""; +if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="

";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); +(function(){var g=s.createElement("div");g.innerHTML="
";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: +function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f0)for(var j=d;j0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= +{},i;if(f&&a.length){e=0;for(var o=a.length;e-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== +"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", +d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? +a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== +1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/"},F={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div
","
"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, +""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); +return this}else{e=0;for(var j=d.length;e0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", +""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]===""&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= +c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? +c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= +function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= +Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, +"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= +a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= +a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=//gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== +"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("
").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, +serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), +function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, +global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& +e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? +"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== +false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= +false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", +c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| +d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); +g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== +1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== +"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; +if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== +"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| +c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; +this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= +this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, +e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b
"; +a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); +c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, +d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- +f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": +"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in +e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);