ropenstack 1.2.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -0
- data/README.md +2 -1
- data/doc/Ropenstack.html +151 -0
- data/doc/Ropenstack/Cinder.html +197 -0
- data/doc/Ropenstack/Glance.html +292 -0
- data/doc/Ropenstack/Keystone.html +737 -0
- data/doc/Ropenstack/MalformedRequestError.html +142 -0
- data/doc/Ropenstack/NotFoundError.html +142 -0
- data/doc/Ropenstack/Nova.html +562 -0
- data/doc/Ropenstack/OpenstackService.html +199 -0
- data/doc/Ropenstack/Quantum.html +830 -0
- data/doc/Ropenstack/Rest.html +483 -0
- data/doc/Ropenstack/RopenstackError.html +143 -0
- data/doc/Ropenstack/TimeoutError.html +142 -0
- data/doc/Ropenstack/UnauthorisedError.html +142 -0
- data/doc/created.rid +10 -0
- data/doc/images/add.png +0 -0
- data/doc/images/brick.png +0 -0
- data/doc/images/brick_link.png +0 -0
- data/doc/images/bug.png +0 -0
- data/doc/images/bullet_black.png +0 -0
- data/doc/images/bullet_toggle_minus.png +0 -0
- data/doc/images/bullet_toggle_plus.png +0 -0
- data/doc/images/date.png +0 -0
- data/doc/images/delete.png +0 -0
- data/doc/images/find.png +0 -0
- data/doc/images/loadingAnimation.gif +0 -0
- data/doc/images/macFFBgHack.png +0 -0
- data/doc/images/package.png +0 -0
- data/doc/images/page_green.png +0 -0
- data/doc/images/page_white_text.png +0 -0
- data/doc/images/page_white_width.png +0 -0
- data/doc/images/plugin.png +0 -0
- data/doc/images/ruby.png +0 -0
- data/doc/images/tag_blue.png +0 -0
- data/doc/images/tag_green.png +0 -0
- data/doc/images/transparent.png +0 -0
- data/doc/images/wrench.png +0 -0
- data/doc/images/wrench_orange.png +0 -0
- data/doc/images/zoom.png +0 -0
- data/doc/index.html +93 -0
- data/doc/js/darkfish.js +153 -0
- data/doc/js/jquery.js +18 -0
- data/doc/js/navigation.js +142 -0
- data/doc/js/search.js +94 -0
- data/doc/js/search_index.js +1 -0
- data/doc/js/searcher.js +228 -0
- data/doc/rdoc.css +543 -0
- data/doc/table_of_contents.html +200 -0
- data/lib/ropenstack.rb +18 -0
- data/lib/ropenstack/blockStorage.rb +25 -0
- data/lib/ropenstack/blockStorage/v1.rb +67 -0
- data/lib/ropenstack/blockStorage/v2.rb +11 -0
- data/lib/ropenstack/common/error.rb +12 -0
- data/lib/ropenstack/common/openstackservice.rb +28 -0
- data/lib/ropenstack/common/rest.rb +138 -0
- data/lib/ropenstack/compute.rb +164 -0
- data/lib/ropenstack/compute/v2.rb +11 -0
- data/lib/ropenstack/compute/v2/extensions.rb +14 -0
- data/lib/ropenstack/compute/v2/extensions/admin.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/agents.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/aggregates.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/certificates.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/cloudpipe.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/console.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/coverage.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/defaultsecuritygroup.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/diagnostics.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/extraspecs.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/fixedips.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/flavors.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/hosts.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/hypervisors.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/images.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/instanceactions.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/interfaces.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/keypairs.rb +20 -0
- data/lib/ropenstack/compute/v2/extensions/limits.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/migrations.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/networks.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/quotasets.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/securitygroups.rb +40 -0
- data/lib/ropenstack/compute/v2/extensions/servergroups.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/serverpassword.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/services.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/shelvedservers.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/usage.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/virtualinterfaces.rb +0 -0
- data/lib/ropenstack/compute/v2/extensions/volumes.rb +20 -0
- data/lib/ropenstack/compute/v3.rb +5 -0
- data/lib/ropenstack/database.rb +24 -0
- data/lib/ropenstack/database/v1.rb +113 -0
- data/lib/ropenstack/identity.rb +28 -0
- data/lib/ropenstack/identity/v2.rb +178 -0
- data/lib/ropenstack/identity/v3.rb +13 -0
- data/lib/ropenstack/image.rb +25 -0
- data/lib/ropenstack/image/v1.rb +107 -0
- data/lib/ropenstack/image/v2.rb +134 -0
- data/lib/ropenstack/networking.rb +160 -0
- data/lib/ropenstack/networking/v2.rb +5 -0
- data/lib/ropenstack/networking/v2/extensions.rb +9 -0
- data/lib/ropenstack/networking/v2/extensions/l3.rb +111 -0
- data/lib/ropenstack/networking/v2/extensions/lbaas.rb +5 -0
- data/lib/ropenstack/networking/v2/extensions/metering.rb +5 -0
- data/lib/ropenstack/networking/v2/extensions/quotas.rb +5 -0
- data/lib/ropenstack/networking/v2/extensions/securitygroups.rb +5 -0
- data/lib/ropenstack/objectStorage.rb +60 -0
- data/lib/ropenstack/orchestration.rb +23 -0
- data/lib/ropenstack/orchestration/v1.rb +162 -0
- data/lib/ropenstack/telemetry.rb +23 -0
- data/lib/ropenstack/telemetry/v2.rb +68 -0
- data/ropenstack.gemspec +13 -0
- metadata +112 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var search_data = {"index":{"searchIndex":["ropenstack","cinder","glance","keystone","malformedrequesterror","notfounderror","nova","openstackservice","quantum","rest","ropenstackerror","timeouterror","unauthorisederror","action()","addendpoint()","addtoservices()","add_router_gateway()","add_router_interface()","admin()","attach_volume()","authenticate()","build_headers()","build_http()","create_network()","create_port()","create_router()","create_server()","create_subnet()","delete_image()","delete_network()","delete_port()","delete_request()","delete_router()","delete_router_gateway()","delete_router_interface()","delete_server()","delete_subnet()","detach_volume()","device_ports()","do_request()","error_manager()","flavors()","getendpoints()","getservices()","get_request()","images()","images()","move_port_to_subnets()","networks()","new()","new()","ports()","post_request()","put_octect()","put_request()","quotas()","raw()","routers()","scope_token()","servers()","servers_detailed()","services()","subnets()","tenant_id()","tenant_list()","tenant_name()","token()","token_metadata()","update_port()","upload_image_from_file()","user()","volumes()"],"longSearchIndex":["ropenstack","ropenstack::cinder","ropenstack::glance","ropenstack::keystone","ropenstack::malformedrequesterror","ropenstack::notfounderror","ropenstack::nova","ropenstack::openstackservice","ropenstack::quantum","ropenstack::rest","ropenstack::ropenstackerror","ropenstack::timeouterror","ropenstack::unauthorisederror","ropenstack::nova#action()","ropenstack::keystone#addendpoint()","ropenstack::keystone#addtoservices()","ropenstack::quantum#add_router_gateway()","ropenstack::quantum#add_router_interface()","ropenstack::keystone#admin()","ropenstack::nova#attach_volume()","ropenstack::keystone#authenticate()","ropenstack::rest#build_headers()","ropenstack::rest#build_http()","ropenstack::quantum#create_network()","ropenstack::quantum#create_port()","ropenstack::quantum#create_router()","ropenstack::nova#create_server()","ropenstack::quantum#create_subnet()","ropenstack::nova#delete_image()","ropenstack::quantum#delete_network()","ropenstack::quantum#delete_port()","ropenstack::rest#delete_request()","ropenstack::quantum#delete_router()","ropenstack::quantum#delete_router_gateway()","ropenstack::quantum#delete_router_interface()","ropenstack::nova#delete_server()","ropenstack::quantum#delete_subnet()","ropenstack::nova#detach_volume()","ropenstack::quantum#device_ports()","ropenstack::rest#do_request()","ropenstack::rest#error_manager()","ropenstack::nova#flavors()","ropenstack::keystone#getendpoints()","ropenstack::keystone#getservices()","ropenstack::rest#get_request()","ropenstack::glance#images()","ropenstack::nova#images()","ropenstack::quantum#move_port_to_subnets()","ropenstack::quantum#networks()","ropenstack::keystone::new()","ropenstack::openstackservice::new()","ropenstack::quantum#ports()","ropenstack::rest#post_request()","ropenstack::glance#put_octect()","ropenstack::rest#put_request()","ropenstack::nova#quotas()","ropenstack::keystone#raw()","ropenstack::quantum#routers()","ropenstack::keystone#scope_token()","ropenstack::nova#servers()","ropenstack::nova#servers_detailed()","ropenstack::keystone#services()","ropenstack::quantum#subnets()","ropenstack::keystone#tenant_id()","ropenstack::keystone#tenant_list()","ropenstack::keystone#tenant_name()","ropenstack::keystone#token()","ropenstack::keystone#token_metadata()","ropenstack::quantum#update_port()","ropenstack::glance#upload_image_from_file()","ropenstack::keystone#user()","ropenstack::cinder#volumes()"],"info":[["Ropenstack","","Ropenstack.html","","<p>Name: Ropenstack\n<p>Description: Module used to wrap all Openstack service classes.\n<p>Author: Sam ‘Tehsmash’ …\n"],["Ropenstack::Cinder","","Ropenstack/Cinder.html","","<p>Name: Cinder\n<p>Description: Implementation of the Cinder API Client in Ruby.\n<p>Author: Sam ‘Tehsmash’ Betts …\n"],["Ropenstack::Glance","","Ropenstack/Glance.html","","<p>Name: Glance\n<p>Description: Implementation of the Glance V2.0 API Client in Ruby\n<p>Author: Sam ‘Tehsmash’ …\n"],["Ropenstack::Keystone","","Ropenstack/Keystone.html","","<p>Name: Keystone\n<p>Description: An implementation of the Keystone API Client in Ruby\n<p>Author: Sam ‘Tehsmash’ …\n"],["Ropenstack::MalformedRequestError","","Ropenstack/MalformedRequestError.html","","<p>Error fired if openstack returns a Bad Request error\n"],["Ropenstack::NotFoundError","","Ropenstack/NotFoundError.html","","<p>Error fired if a 404 error comes back from openstack\n"],["Ropenstack::Nova","","Ropenstack/Nova.html","","<p>Name: Nova\n<p>Description: Implementation of the Nova API Client in Ruby\n<p>Author: Sam ‘Tehsmash’ Betts\n"],["Ropenstack::OpenstackService","","Ropenstack/OpenstackService.html","","<p>Name: OpenstackService\n<p>Description: A parent class for all the openstack service classes, with\nfunctions …\n"],["Ropenstack::Quantum","","Ropenstack/Quantum.html","","<p>Name: Quantum\n<p>Description: An implementation of the Quantum V2.0 API Client in Ruby\n<p>Author: Sam ‘Tehsmash’ …\n"],["Ropenstack::Rest","","Ropenstack/Rest.html","","<p>Name: Rest\n<p>Description: A generic wrapper for basic rest functions with JSON data\nwhich return ruby hashes. …\n"],["Ropenstack::RopenstackError","","Ropenstack/RopenstackError.html","","<p>A wrapper class for Standard Error for Ropenstack Errors\n"],["Ropenstack::TimeoutError","","Ropenstack/TimeoutError.html","","<p>Error fired if the connection to openstack fails\n"],["Ropenstack::UnauthorisedError","","Ropenstack/UnauthorisedError.html","","<p>Error fired if 403 Error returns from openstack\n"],["action","Ropenstack::Nova","Ropenstack/Nova.html#method-i-action","(id, act, *args)","<p>Perform an action on a server on Openstack, by passing an id, and an\naction, some actions require more …\n"],["addEndpoint","Ropenstack::Keystone","Ropenstack/Keystone.html#method-i-addEndpoint","(region, service_id, publicurl, adminurl, internalurl)","<p>Add an endpoint list\n"],["addToServices","Ropenstack::Keystone","Ropenstack/Keystone.html#method-i-addToServices","(name, type, description)","<p>Add a service to the keystone services directory\n"],["add_router_gateway","Ropenstack::Quantum","Ropenstack/Quantum.html#method-i-add_router_gateway","(router, external_gateway_info)","<p>Enable external connectivity through this router by connecting it to an\n“external network” …\n"],["add_router_interface","Ropenstack::Quantum","Ropenstack/Quantum.html#method-i-add_router_interface","(router, subnet)","<p>Connect a router to a subnet, given router id and subnet id.\n"],["admin","Ropenstack::Keystone","Ropenstack/Keystone.html#method-i-admin","()","<p>Returns true if a user is admin.\n"],["attach_volume","Ropenstack::Nova","Ropenstack/Nova.html#method-i-attach_volume","(id, volume)","<p>Attach a cinder volume to a server, by passing the server id and the volume\nid.\n"],["authenticate","Ropenstack::Keystone","Ropenstack/Keystone.html#method-i-authenticate","(username, password, token = nil, tenant = nil)","<p>Authenticate via keystone, unless a token and tenant are defined then a\nunscoped token is returned with …\n"],["build_headers","Ropenstack::Rest","Ropenstack/Rest.html#method-i-build_headers","(token)","<p>Builds headers for requests which send JSON data, if a keystone token is\nsupplied\n<p>it adds the X-Auth- …\n"],["build_http","Ropenstack::Rest","Ropenstack/Rest.html#method-i-build_http","(uri, timeout)","<p>Build a HTTP object having been given a timeout and a URI object Returns\nNet::HTTP object.\n"],["create_network","Ropenstack::Quantum","Ropenstack/Quantum.html#method-i-create_network","(name, tenant, admin_state_up = true)","<p>Create a new network on Openstack given a name and tenant id.\n"],["create_port","Ropenstack::Quantum","Ropenstack/Quantum.html#method-i-create_port","(network, device, subnet = nil)","<p>Create a new port given network and device ids, optional parameter subnet\nid allows for scoping the …\n"],["create_router","Ropenstack::Quantum","Ropenstack/Quantum.html#method-i-create_router","(name, admin_state_up = true)","<p>Create a new router with a given name.\n"],["create_server","Ropenstack::Nova","Ropenstack/Nova.html#method-i-create_server","(name, image, flavor, network = nil, metadata = nil)","<p>Creates a server on OpenStack.\n"],["create_subnet","Ropenstack::Quantum","Ropenstack/Quantum.html#method-i-create_subnet","(network, cidr)","<p>Create a new ipv4 subnet in a network, given a network id, and a IP range\nin CIDR format.\n"],["delete_image","Ropenstack::Nova","Ropenstack/Nova.html#method-i-delete_image","(id)","<p>Delete an image stored on Openstack through the nova endpoint\n"],["delete_network","Ropenstack::Quantum","Ropenstack/Quantum.html#method-i-delete_network","(network)","<p>Delete a network given a network id.\n"],["delete_port","Ropenstack::Quantum","Ropenstack/Quantum.html#method-i-delete_port","(port)","<p>Delete a port given a port id.\n"],["delete_request","Ropenstack::Rest","Ropenstack/Rest.html#method-i-delete_request","(uri, token = nil, manage_errors = true)","<p>Wrapper function for delete requests, just provide a uri and it will return\nyou a hash with the result …\n"],["delete_router","Ropenstack::Quantum","Ropenstack/Quantum.html#method-i-delete_router","(router)","<p>Delete a router given a routers id.\n"],["delete_router_gateway","Ropenstack::Quantum","Ropenstack/Quantum.html#method-i-delete_router_gateway","(router)","<p>Clear a routers external gateway information given a router id.\n"],["delete_router_interface","Ropenstack::Quantum","Ropenstack/Quantum.html#method-i-delete_router_interface","(router, id, type)","<p>Delete a connection between a subnet and router given either port or subnet\nids.\n"],["delete_server","Ropenstack::Nova","Ropenstack/Nova.html#method-i-delete_server","(id)","<p>Deletes a server from Openstack based on an id\n"],["delete_subnet","Ropenstack::Quantum","Ropenstack/Quantum.html#method-i-delete_subnet","(subnet)","<p>Delete a subnet given a subnet id\n"],["detach_volume","Ropenstack::Nova","Ropenstack/Nova.html#method-i-detach_volume","(id, attachment)","<p>Remove a cinder volume from a server, by passing the server id and the\nattachment id.\n"],["device_ports","Ropenstack::Quantum","Ropenstack/Quantum.html#method-i-device_ports","(device_id)","<p>Get a list of ports specific to a device_id\n"],["do_request","Ropenstack::Rest","Ropenstack/Rest.html#method-i-do_request","(uri, request, manage_errors = true, timeout = 10)","<p>The function which you call to perform a http request using the request\nobject given in the parameters. …\n"],["error_manager","Ropenstack::Rest","Ropenstack/Rest.html#method-i-error_manager","(uri, response)","<p>All responses from openstack where any errors need to be caught are passed\nthrough this function. Unless …\n"],["flavors","Ropenstack::Nova","Ropenstack/Nova.html#method-i-flavors","()","<p>Get a list of flavors that Servers can be\n"],["getEndpoints","Ropenstack::Keystone","Ropenstack/Keystone.html#method-i-getEndpoints","()","<p>Get the endpoint list\n"],["getServices","Ropenstack::Keystone","Ropenstack/Keystone.html#method-i-getServices","()","<p>Get list of services\n"],["get_request","Ropenstack::Rest","Ropenstack/Rest.html#method-i-get_request","(uri, token = nil, manage_errors = true)","<p>Wrapper function for a get request, just provide a uri and it will return\nyou a hash with the result …\n"],["images","Ropenstack::Glance","Ropenstack/Glance.html#method-i-images","()","<p>Returns a list of images with all associated meta-data in hash format.\n"],["images","Ropenstack::Nova","Ropenstack/Nova.html#method-i-images","()","<p>Retrieve a list of images from Openstack through the nova endpoint\n"],["move_port_to_subnets","Ropenstack::Quantum","Ropenstack/Quantum.html#method-i-move_port_to_subnets","(port_id, subnet_ids)","<p>Weird function for adding a port to multiple subnets if nessessary.\n"],["networks","Ropenstack::Quantum","Ropenstack/Quantum.html#method-i-networks","()","<p>Get a list of a tenants networks\n"],["new","Ropenstack::Keystone","Ropenstack/Keystone.html#method-c-new","(address, port, token = nil)","<p>Overide of the initialize function to allow users to provide keystone\naddress and port outside of a …\n"],["new","Ropenstack::OpenstackService","Ropenstack/OpenstackService.html#method-c-new","(location, token)",""],["ports","Ropenstack::Quantum","Ropenstack/Quantum.html#method-i-ports","()","<p>Get a list of ports\n"],["post_request","Ropenstack::Rest","Ropenstack/Rest.html#method-i-post_request","(uri, body, token = nil, manage_errors = true)","<p>Wrapper function for a put request, just provide a uri and a hash of the\ndata to send, then it will return …\n"],["put_octect","Ropenstack::Glance","Ropenstack/Glance.html#method-i-put_octect","(uri, data, manage_errors)","<p>Special rest call for sending a file stream using an octet-stream main\nchange is just custom headers. …\n"],["put_request","Ropenstack::Rest","Ropenstack/Rest.html#method-i-put_request","(uri, body, token = nil, manage_errors = true)","<p>Wrapper function for a put request, just provide a uri and a hash of the\ndata to send, then it will return …\n"],["quotas","Ropenstack::Nova","Ropenstack/Nova.html#method-i-quotas","()","<p>Get a tenants compute quotas\n"],["raw","Ropenstack::Keystone","Ropenstack/Keystone.html#method-i-raw","()","<p>Return the raw @data hash with all the data from authentication.\n"],["routers","Ropenstack::Quantum","Ropenstack/Quantum.html#method-i-routers","()","<p>Retrieve routers owned by the tenant making the request\n"],["scope_token","Ropenstack::Keystone","Ropenstack/Keystone.html#method-i-scope_token","(para1, para2 = nil, para3 = nil)","<p>Scope token provides two ways to call it:\n\n<pre class=\"ruby\"><span class=\"ruby-identifier\">scope_token</span>(<span class=\"ruby-identifier\">tenantName</span>) =<span class=\"ruby-operator\">></span> <span class=\"ruby-constant\">Just</span> <span class=\"ruby-identifier\">using</span> <span class=\"ruby-identifier\">the</span> <span class=\"ruby-identifier\">current</span> <span class=\"ruby-identifier\">token</span> <span class=\"ruby-keyword\">and</span> <span class=\"ruby-operator\">...</span>\n</pre>\n"],["servers","Ropenstack::Nova","Ropenstack/Nova.html#method-i-servers","(id)","<p>Gets a list of servers from OpenStack\n"],["servers_detailed","Ropenstack::Nova","Ropenstack/Nova.html#method-i-servers_detailed","()","<p>Gets a more detailed list of servers from openstack.\n"],["services","Ropenstack::Keystone","Ropenstack/Keystone.html#method-i-services","()","<p>Get the service catalog returned by Keystone on authentication.\n"],["subnets","Ropenstack::Quantum","Ropenstack/Quantum.html#method-i-subnets","()","<p>Get a list of subnets\n"],["tenant_id","Ropenstack::Keystone","Ropenstack/Keystone.html#method-i-tenant_id","()","<p>Get the tenant id from the @data\n"],["tenant_list","Ropenstack::Keystone","Ropenstack/Keystone.html#method-i-tenant_list","()","<p>Separate Keystone Calls\n"],["tenant_name","Ropenstack::Keystone","Ropenstack/Keystone.html#method-i-tenant_name","()",""],["token","Ropenstack::Keystone","Ropenstack/Keystone.html#method-i-token","()","<p>Gets the authentication token from the hash and returns it as a string.\n"],["token_metadata","Ropenstack::Keystone","Ropenstack/Keystone.html#method-i-token_metadata","()","<p>This returns the token and all metadata associated with the token, \nincluding the tenant information. …\n"],["update_port","Ropenstack::Quantum","Ropenstack/Quantum.html#method-i-update_port","(port, fixed_ips)","<p>Update a specific ports fixed_ips, including subnet and ip data.\n"],["upload_image_from_file","Ropenstack::Glance","Ropenstack/Glance.html#method-i-upload_image_from_file","(name, disk_format, container_format, minDisk, minRam, is_public, file)","<p>Upload an image to glance from a file, takes in a ruby file object. More\nconvoluted than it should be …\n"],["user","Ropenstack::Keystone","Ropenstack/Keystone.html#method-i-user","()","<p>Return the user hash from the authentication data\n"],["volumes","Ropenstack::Cinder","Ropenstack/Cinder.html#method-i-volumes","()","<p>Gets the volumes from cinder, and provides them in a ruby hash with all\ninformation about them.\n"]]}}
|
data/doc/js/searcher.js
ADDED
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
Searcher = function(data) {
|
|
2
|
+
this.data = data;
|
|
3
|
+
this.handlers = [];
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
Searcher.prototype = new function() {
|
|
7
|
+
// search is performed in chunks of 1000 for non-blocking user input
|
|
8
|
+
var CHUNK_SIZE = 1000;
|
|
9
|
+
// do not try to find more than 100 results
|
|
10
|
+
var MAX_RESULTS = 100;
|
|
11
|
+
var huid = 1;
|
|
12
|
+
var suid = 1;
|
|
13
|
+
var runs = 0;
|
|
14
|
+
|
|
15
|
+
this.find = function(query) {
|
|
16
|
+
var queries = splitQuery(query);
|
|
17
|
+
var regexps = buildRegexps(queries);
|
|
18
|
+
var highlighters = buildHilighters(queries);
|
|
19
|
+
var state = { from: 0, pass: 0, limit: MAX_RESULTS, n: suid++};
|
|
20
|
+
var _this = this;
|
|
21
|
+
|
|
22
|
+
this.currentSuid = state.n;
|
|
23
|
+
|
|
24
|
+
if (!query) return;
|
|
25
|
+
|
|
26
|
+
var run = function() {
|
|
27
|
+
// stop current search thread if new search started
|
|
28
|
+
if (state.n != _this.currentSuid) return;
|
|
29
|
+
|
|
30
|
+
var results =
|
|
31
|
+
performSearch(_this.data, regexps, queries, highlighters, state);
|
|
32
|
+
var hasMore = (state.limit > 0 && state.pass < 4);
|
|
33
|
+
|
|
34
|
+
triggerResults.call(_this, results, !hasMore);
|
|
35
|
+
if (hasMore) {
|
|
36
|
+
setTimeout(run, 2);
|
|
37
|
+
}
|
|
38
|
+
runs++;
|
|
39
|
+
};
|
|
40
|
+
runs = 0;
|
|
41
|
+
|
|
42
|
+
// start search thread
|
|
43
|
+
run();
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* ----- Events ------ */
|
|
47
|
+
this.ready = function(fn) {
|
|
48
|
+
fn.huid = huid;
|
|
49
|
+
this.handlers.push(fn);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* ----- Utilities ------ */
|
|
53
|
+
function splitQuery(query) {
|
|
54
|
+
return jQuery.grep(query.split(/(\s+|::?|\(\)?)/), function(string) {
|
|
55
|
+
return string.match(/\S/)
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function buildRegexps(queries) {
|
|
60
|
+
return jQuery.map(queries, function(query) {
|
|
61
|
+
return new RegExp(query.replace(/(.)/g, '([$1])([^$1]*?)'), 'i')
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function buildHilighters(queries) {
|
|
66
|
+
return jQuery.map(queries, function(query) {
|
|
67
|
+
return jQuery.map(query.split(''), function(l, i) {
|
|
68
|
+
return '\u0001$' + (i*2+1) + '\u0002$' + (i*2+2);
|
|
69
|
+
}).join('');
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// function longMatchRegexp(index, longIndex, regexps) {
|
|
74
|
+
// for (var i = regexps.length - 1; i >= 0; i--){
|
|
75
|
+
// if (!index.match(regexps[i]) && !longIndex.match(regexps[i])) return false;
|
|
76
|
+
// };
|
|
77
|
+
// return true;
|
|
78
|
+
// }
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
/* ----- Mathchers ------ */
|
|
82
|
+
|
|
83
|
+
/*
|
|
84
|
+
* This record matches if the index starts with queries[0] and the record
|
|
85
|
+
* matches all of the regexps
|
|
86
|
+
*/
|
|
87
|
+
function matchPassBeginning(index, longIndex, queries, regexps) {
|
|
88
|
+
if (index.indexOf(queries[0]) != 0) return false;
|
|
89
|
+
for (var i=1, l = regexps.length; i < l; i++) {
|
|
90
|
+
if (!index.match(regexps[i]) && !longIndex.match(regexps[i]))
|
|
91
|
+
return false;
|
|
92
|
+
};
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/*
|
|
97
|
+
* This record matches if the longIndex starts with queries[0] and the
|
|
98
|
+
* longIndex matches all of the regexps
|
|
99
|
+
*/
|
|
100
|
+
function matchPassLongIndex(index, longIndex, queries, regexps) {
|
|
101
|
+
if (longIndex.indexOf(queries[0]) != 0) return false;
|
|
102
|
+
for (var i=1, l = regexps.length; i < l; i++) {
|
|
103
|
+
if (!longIndex.match(regexps[i]))
|
|
104
|
+
return false;
|
|
105
|
+
};
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/*
|
|
110
|
+
* This record matches if the index contains queries[0] and the record
|
|
111
|
+
* matches all of the regexps
|
|
112
|
+
*/
|
|
113
|
+
function matchPassContains(index, longIndex, queries, regexps) {
|
|
114
|
+
if (index.indexOf(queries[0]) == -1) return false;
|
|
115
|
+
for (var i=1, l = regexps.length; i < l; i++) {
|
|
116
|
+
if (!index.match(regexps[i]) && !longIndex.match(regexps[i]))
|
|
117
|
+
return false;
|
|
118
|
+
};
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/*
|
|
123
|
+
* This record matches if regexps[0] matches the index and the record
|
|
124
|
+
* matches all of the regexps
|
|
125
|
+
*/
|
|
126
|
+
function matchPassRegexp(index, longIndex, queries, regexps) {
|
|
127
|
+
if (!index.match(regexps[0])) return false;
|
|
128
|
+
for (var i=1, l = regexps.length; i < l; i++) {
|
|
129
|
+
if (!index.match(regexps[i]) && !longIndex.match(regexps[i]))
|
|
130
|
+
return false;
|
|
131
|
+
};
|
|
132
|
+
return true;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
/* ----- Highlighters ------ */
|
|
137
|
+
function highlightRegexp(info, queries, regexps, highlighters) {
|
|
138
|
+
var result = createResult(info);
|
|
139
|
+
for (var i=0, l = regexps.length; i < l; i++) {
|
|
140
|
+
result.title = result.title.replace(regexps[i], highlighters[i]);
|
|
141
|
+
result.namespace = result.namespace.replace(regexps[i], highlighters[i]);
|
|
142
|
+
};
|
|
143
|
+
return result;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
function hltSubstring(string, pos, length) {
|
|
147
|
+
return string.substring(0, pos) + '\u0001' + string.substring(pos, pos + length) + '\u0002' + string.substring(pos + length);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
function highlightQuery(info, queries, regexps, highlighters) {
|
|
151
|
+
var result = createResult(info);
|
|
152
|
+
var pos = 0;
|
|
153
|
+
var lcTitle = result.title.toLowerCase();
|
|
154
|
+
|
|
155
|
+
pos = lcTitle.indexOf(queries[0]);
|
|
156
|
+
if (pos != -1) {
|
|
157
|
+
result.title = hltSubstring(result.title, pos, queries[0].length);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
result.namespace = result.namespace.replace(regexps[0], highlighters[0]);
|
|
161
|
+
for (var i=1, l = regexps.length; i < l; i++) {
|
|
162
|
+
result.title = result.title.replace(regexps[i], highlighters[i]);
|
|
163
|
+
result.namespace = result.namespace.replace(regexps[i], highlighters[i]);
|
|
164
|
+
};
|
|
165
|
+
return result;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
function createResult(info) {
|
|
169
|
+
var result = {};
|
|
170
|
+
result.title = info[0];
|
|
171
|
+
result.namespace = info[1];
|
|
172
|
+
result.path = info[2];
|
|
173
|
+
result.params = info[3];
|
|
174
|
+
result.snippet = info[4];
|
|
175
|
+
return result;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/* ----- Searching ------ */
|
|
179
|
+
function performSearch(data, regexps, queries, highlighters, state) {
|
|
180
|
+
var searchIndex = data.searchIndex;
|
|
181
|
+
var longSearchIndex = data.longSearchIndex;
|
|
182
|
+
var info = data.info;
|
|
183
|
+
var result = [];
|
|
184
|
+
var i = state.from;
|
|
185
|
+
var l = searchIndex.length;
|
|
186
|
+
var togo = CHUNK_SIZE;
|
|
187
|
+
var matchFunc, hltFunc;
|
|
188
|
+
|
|
189
|
+
while (state.pass < 4 && state.limit > 0 && togo > 0) {
|
|
190
|
+
if (state.pass == 0) {
|
|
191
|
+
matchFunc = matchPassBeginning;
|
|
192
|
+
hltFunc = highlightQuery;
|
|
193
|
+
} else if (state.pass == 1) {
|
|
194
|
+
matchFunc = matchPassLongIndex;
|
|
195
|
+
hltFunc = highlightQuery;
|
|
196
|
+
} else if (state.pass == 2) {
|
|
197
|
+
matchFunc = matchPassContains;
|
|
198
|
+
hltFunc = highlightQuery;
|
|
199
|
+
} else if (state.pass == 3) {
|
|
200
|
+
matchFunc = matchPassRegexp;
|
|
201
|
+
hltFunc = highlightRegexp;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
for (; togo > 0 && i < l && state.limit > 0; i++, togo--) {
|
|
205
|
+
if (info[i].n == state.n) continue;
|
|
206
|
+
if (matchFunc(searchIndex[i], longSearchIndex[i], queries, regexps)) {
|
|
207
|
+
info[i].n = state.n;
|
|
208
|
+
result.push(hltFunc(info[i], queries, regexps, highlighters));
|
|
209
|
+
state.limit--;
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
if (searchIndex.length <= i) {
|
|
213
|
+
state.pass++;
|
|
214
|
+
i = state.from = 0;
|
|
215
|
+
} else {
|
|
216
|
+
state.from = i;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return result;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
function triggerResults(results, isLast) {
|
|
223
|
+
jQuery.each(this.handlers, function(i, fn) {
|
|
224
|
+
fn.call(this, results, isLast)
|
|
225
|
+
})
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
data/doc/rdoc.css
ADDED
|
@@ -0,0 +1,543 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* "Darkfish" Rdoc CSS
|
|
3
|
+
* $Id: rdoc.css 54 2009-01-27 01:09:48Z deveiant $
|
|
4
|
+
*
|
|
5
|
+
* Author: Michael Granger <ged@FaerieMUD.org>
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/* Base Green is: #6C8C22 */
|
|
10
|
+
|
|
11
|
+
* { padding: 0; margin: 0; }
|
|
12
|
+
|
|
13
|
+
body {
|
|
14
|
+
background: #efefef;
|
|
15
|
+
font: 14px "Helvetica Neue", Helvetica, Tahoma, sans-serif;
|
|
16
|
+
margin-left: 40px;
|
|
17
|
+
}
|
|
18
|
+
body.file-popup {
|
|
19
|
+
font-size: 90%;
|
|
20
|
+
margin-left: 0;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
h1 {
|
|
24
|
+
font-size: 300%;
|
|
25
|
+
text-shadow: rgba(135,145,135,0.65) 2px 2px 3px;
|
|
26
|
+
color: #6C8C22;
|
|
27
|
+
}
|
|
28
|
+
h2,h3,h4 { margin-top: 1.5em; }
|
|
29
|
+
|
|
30
|
+
:link,
|
|
31
|
+
:visited {
|
|
32
|
+
color: #6C8C22;
|
|
33
|
+
text-decoration: none;
|
|
34
|
+
}
|
|
35
|
+
:link:hover,
|
|
36
|
+
:visited:hover {
|
|
37
|
+
border-bottom: 1px dotted #6C8C22;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
pre {
|
|
41
|
+
background: #ddd;
|
|
42
|
+
padding: 0.5em 0;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/* @group Generic Classes */
|
|
46
|
+
|
|
47
|
+
.initially-hidden {
|
|
48
|
+
display: none;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
#search-field {
|
|
52
|
+
width: 98%;
|
|
53
|
+
background: #eee;
|
|
54
|
+
border: none;
|
|
55
|
+
height: 1.5em;
|
|
56
|
+
-webkit-border-radius: 4px;
|
|
57
|
+
}
|
|
58
|
+
#search-field:focus {
|
|
59
|
+
background: #f1edba;
|
|
60
|
+
}
|
|
61
|
+
#search-field:-moz-placeholder,
|
|
62
|
+
#search-field::-webkit-input-placeholder {
|
|
63
|
+
font-weight: bold;
|
|
64
|
+
color: #666;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.missing-docs {
|
|
68
|
+
font-size: 120%;
|
|
69
|
+
background: white url(images/wrench_orange.png) no-repeat 4px center;
|
|
70
|
+
color: #ccc;
|
|
71
|
+
line-height: 2em;
|
|
72
|
+
border: 1px solid #d00;
|
|
73
|
+
opacity: 1;
|
|
74
|
+
padding-left: 20px;
|
|
75
|
+
text-indent: 24px;
|
|
76
|
+
letter-spacing: 3px;
|
|
77
|
+
font-weight: bold;
|
|
78
|
+
-webkit-border-radius: 5px;
|
|
79
|
+
-moz-border-radius: 5px;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.target-section {
|
|
83
|
+
border: 2px solid #dcce90;
|
|
84
|
+
border-left-width: 8px;
|
|
85
|
+
padding: 0 1em;
|
|
86
|
+
background: #fff3c2;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/* @end */
|
|
90
|
+
|
|
91
|
+
/* @group Index Page, Standalone file pages */
|
|
92
|
+
.indexpage ul {
|
|
93
|
+
line-height: 160%;
|
|
94
|
+
list-style: none;
|
|
95
|
+
}
|
|
96
|
+
.indexpage ul :link,
|
|
97
|
+
.indexpage ul :visited {
|
|
98
|
+
font-size: 16px;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.indexpage li {
|
|
102
|
+
padding-left: 20px;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.indexpage ul > li {
|
|
106
|
+
background: url(images/bullet_black.png) no-repeat left 4px;
|
|
107
|
+
}
|
|
108
|
+
.indexpage li.method {
|
|
109
|
+
background: url(images/plugin.png) no-repeat left 4px;
|
|
110
|
+
}
|
|
111
|
+
.indexpage li.module {
|
|
112
|
+
background: url(images/package.png) no-repeat left 4px;
|
|
113
|
+
}
|
|
114
|
+
.indexpage li.class {
|
|
115
|
+
background: url(images/ruby.png) no-repeat left 4px;
|
|
116
|
+
}
|
|
117
|
+
.indexpage li.file {
|
|
118
|
+
background: url(images/page_white_text.png) no-repeat left 4px;
|
|
119
|
+
}
|
|
120
|
+
.indexpage li li {
|
|
121
|
+
background: url(images/tag_blue.png) no-repeat left 4px;
|
|
122
|
+
}
|
|
123
|
+
.indexpage li .toc-toggle {
|
|
124
|
+
width: 16px;
|
|
125
|
+
height: 16px;
|
|
126
|
+
background: url(images/add.png) no-repeat;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.indexpage li .toc-toggle.open {
|
|
130
|
+
background: url(images/delete.png) no-repeat;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/* @end */
|
|
134
|
+
|
|
135
|
+
/* @group Top-Level Structure */
|
|
136
|
+
|
|
137
|
+
#metadata {
|
|
138
|
+
float: left;
|
|
139
|
+
width: 260px;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
#documentation {
|
|
143
|
+
margin: 2em 1em 5em 300px;
|
|
144
|
+
min-width: 340px;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
#validator-badges {
|
|
148
|
+
clear: both;
|
|
149
|
+
margin: 1em 1em 2em;
|
|
150
|
+
font-size: smaller;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/* @end */
|
|
154
|
+
|
|
155
|
+
/* @group Metadata Section */
|
|
156
|
+
#metadata .section {
|
|
157
|
+
background-color: #dedede;
|
|
158
|
+
-moz-border-radius: 5px;
|
|
159
|
+
-webkit-border-radius: 5px;
|
|
160
|
+
border: 1px solid #aaa;
|
|
161
|
+
margin: 0 8px 8px;
|
|
162
|
+
font-size: 90%;
|
|
163
|
+
overflow: hidden;
|
|
164
|
+
}
|
|
165
|
+
#metadata h3.section-header {
|
|
166
|
+
margin: 0;
|
|
167
|
+
padding: 2px 8px;
|
|
168
|
+
background: #ccc;
|
|
169
|
+
color: #666;
|
|
170
|
+
-moz-border-radius-topleft: 4px;
|
|
171
|
+
-moz-border-radius-topright: 4px;
|
|
172
|
+
-webkit-border-top-left-radius: 4px;
|
|
173
|
+
-webkit-border-top-right-radius: 4px;
|
|
174
|
+
border-bottom: 1px solid #aaa;
|
|
175
|
+
}
|
|
176
|
+
#metadata #home-section h3.section-header {
|
|
177
|
+
border-bottom: 0;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
#metadata ul,
|
|
181
|
+
#metadata dl,
|
|
182
|
+
#metadata p {
|
|
183
|
+
padding: 8px;
|
|
184
|
+
list-style: none;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
#file-metadata {
|
|
188
|
+
margin-top: 2em;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
#file-metadata ul {
|
|
192
|
+
padding-left: 28px;
|
|
193
|
+
list-style-image: url(images/page_green.png);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
dl.svninfo {
|
|
197
|
+
color: #666;
|
|
198
|
+
margin: 0;
|
|
199
|
+
}
|
|
200
|
+
dl.svninfo dt {
|
|
201
|
+
font-weight: bold;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
ul.link-list li {
|
|
205
|
+
white-space: nowrap;
|
|
206
|
+
}
|
|
207
|
+
ul.link-list .type {
|
|
208
|
+
font-size: 8px;
|
|
209
|
+
text-transform: uppercase;
|
|
210
|
+
color: white;
|
|
211
|
+
background: #969696;
|
|
212
|
+
padding: 2px 4px;
|
|
213
|
+
-webkit-border-radius: 5px;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/* @end */
|
|
217
|
+
|
|
218
|
+
/* @group Class Metadata Section */
|
|
219
|
+
#class-metadata {
|
|
220
|
+
margin-top: 2em;
|
|
221
|
+
}
|
|
222
|
+
/* @end */
|
|
223
|
+
|
|
224
|
+
/* @group Project Metadata Section */
|
|
225
|
+
#project-metadata {
|
|
226
|
+
margin-top: 2em;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
#project-metadata .section {
|
|
230
|
+
border: 1px solid #aaa;
|
|
231
|
+
}
|
|
232
|
+
#project-metadata h3.section-header {
|
|
233
|
+
border-bottom: 1px solid #aaa;
|
|
234
|
+
position: relative;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
#project-metadata form {
|
|
238
|
+
color: #777;
|
|
239
|
+
background: #ccc;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/* @end */
|
|
243
|
+
|
|
244
|
+
/* @group Documentation Section */
|
|
245
|
+
.description {
|
|
246
|
+
font-size: 100%;
|
|
247
|
+
color: #333;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
.description p {
|
|
251
|
+
margin: 1em 0.4em;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
.description li p {
|
|
255
|
+
margin: 0;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
.description ol,
|
|
259
|
+
.description ul {
|
|
260
|
+
margin-left: 1.5em;
|
|
261
|
+
}
|
|
262
|
+
.description ol li,
|
|
263
|
+
.description ul li {
|
|
264
|
+
line-height: 1.4em;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
.note-list {
|
|
268
|
+
margin: 8px 0;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
.label-list {
|
|
272
|
+
margin: 8px 1.5em;
|
|
273
|
+
border: 1px solid #ccc;
|
|
274
|
+
}
|
|
275
|
+
.description .label-list {
|
|
276
|
+
font-size: 14px;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
.note-list dt {
|
|
280
|
+
font-weight: bold;
|
|
281
|
+
}
|
|
282
|
+
.note-list dd {
|
|
283
|
+
padding: 0 12px;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
.label-list dt {
|
|
287
|
+
padding: 2px 4px;
|
|
288
|
+
font-weight: bold;
|
|
289
|
+
background: #ddd;
|
|
290
|
+
}
|
|
291
|
+
.label-list dd {
|
|
292
|
+
padding: 2px 12px;
|
|
293
|
+
}
|
|
294
|
+
.label-list dd + dt,
|
|
295
|
+
.note-list dd + dt {
|
|
296
|
+
margin-top: 0.7em;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
#documentation .section {
|
|
300
|
+
font-size: 90%;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
#documentation h2.section-header {
|
|
304
|
+
margin-top: 1em;
|
|
305
|
+
padding: 0.25em 0.5em;
|
|
306
|
+
background: #ccc;
|
|
307
|
+
color: #333;
|
|
308
|
+
font-size: 175%;
|
|
309
|
+
border: 1px solid #bbb;
|
|
310
|
+
-moz-border-radius: 3px;
|
|
311
|
+
-webkit-border-radius: 3px;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
.documentation-section-title {
|
|
315
|
+
position: relative;
|
|
316
|
+
}
|
|
317
|
+
.documentation-section-title .section-click-top {
|
|
318
|
+
position: absolute;
|
|
319
|
+
top: 6px;
|
|
320
|
+
right: 12px;
|
|
321
|
+
font-size: 10px;
|
|
322
|
+
color: #9b9877;
|
|
323
|
+
visibility: hidden;
|
|
324
|
+
padding-right: 0.5px;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
.documentation-section-title:hover .section-click-top {
|
|
328
|
+
visibility: visible;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
#documentation h3.section-header {
|
|
332
|
+
margin-top: 1em;
|
|
333
|
+
padding: 0.25em 0.5em;
|
|
334
|
+
background-color: #dedede;
|
|
335
|
+
color: #333;
|
|
336
|
+
font-size: 150%;
|
|
337
|
+
border: 1px solid #bbb;
|
|
338
|
+
-moz-border-radius: 3px;
|
|
339
|
+
-webkit-border-radius: 3px;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
#constants-list > dl,
|
|
343
|
+
#attributes-list > dl {
|
|
344
|
+
margin: 1em 0 2em;
|
|
345
|
+
border: 0;
|
|
346
|
+
}
|
|
347
|
+
#constants-list > dl dt,
|
|
348
|
+
#attributes-list > dl dt {
|
|
349
|
+
padding-left: 0;
|
|
350
|
+
font-weight: bold;
|
|
351
|
+
font-family: Monaco, "Andale Mono";
|
|
352
|
+
background: inherit;
|
|
353
|
+
}
|
|
354
|
+
#constants-list > dl dt a,
|
|
355
|
+
#attributes-list > dl dt a {
|
|
356
|
+
color: inherit;
|
|
357
|
+
}
|
|
358
|
+
#constants-list > dl dd,
|
|
359
|
+
#attributes-list > dl dd {
|
|
360
|
+
margin: 0 0 1em 0;
|
|
361
|
+
padding: 0;
|
|
362
|
+
color: #666;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
.documentation-section h2 {
|
|
366
|
+
position: relative;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
.documentation-section h2 a {
|
|
370
|
+
position: absolute;
|
|
371
|
+
top: 8px;
|
|
372
|
+
right: 10px;
|
|
373
|
+
font-size: 12px;
|
|
374
|
+
color: #9b9877;
|
|
375
|
+
visibility: hidden;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
.documentation-section h2:hover a {
|
|
379
|
+
visibility: visible;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
/* @group Method Details */
|
|
383
|
+
|
|
384
|
+
#documentation .method-source-code {
|
|
385
|
+
display: none;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
#documentation .method-detail {
|
|
389
|
+
margin: 0.5em 0;
|
|
390
|
+
padding: 0.5em 0;
|
|
391
|
+
cursor: pointer;
|
|
392
|
+
}
|
|
393
|
+
#documentation .method-detail:hover {
|
|
394
|
+
background-color: #f1edba;
|
|
395
|
+
}
|
|
396
|
+
#documentation .method-heading {
|
|
397
|
+
position: relative;
|
|
398
|
+
padding: 2px 4px 0 20px;
|
|
399
|
+
font-size: 125%;
|
|
400
|
+
font-weight: bold;
|
|
401
|
+
color: #333;
|
|
402
|
+
background: url(images/brick.png) no-repeat left bottom;
|
|
403
|
+
}
|
|
404
|
+
#documentation .method-heading :link,
|
|
405
|
+
#documentation .method-heading :visited {
|
|
406
|
+
color: inherit;
|
|
407
|
+
}
|
|
408
|
+
#documentation .method-click-advice {
|
|
409
|
+
position: absolute;
|
|
410
|
+
top: 2px;
|
|
411
|
+
right: 5px;
|
|
412
|
+
font-size: 10px;
|
|
413
|
+
color: #9b9877;
|
|
414
|
+
visibility: hidden;
|
|
415
|
+
padding-right: 20px;
|
|
416
|
+
line-height: 20px;
|
|
417
|
+
background: url(images/zoom.png) no-repeat right top;
|
|
418
|
+
}
|
|
419
|
+
#documentation .method-heading:hover .method-click-advice {
|
|
420
|
+
visibility: visible;
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
#documentation .method-alias .method-heading {
|
|
424
|
+
color: #666;
|
|
425
|
+
background: url(images/brick_link.png) no-repeat left bottom;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
#documentation .method-description,
|
|
429
|
+
#documentation .aliases {
|
|
430
|
+
margin: 0 20px;
|
|
431
|
+
color: #666;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
#documentation .method-description p,
|
|
435
|
+
#documentation .aliases p {
|
|
436
|
+
line-height: 1.2em;
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
#documentation .aliases {
|
|
440
|
+
padding-top: 4px;
|
|
441
|
+
font-style: italic;
|
|
442
|
+
cursor: default;
|
|
443
|
+
}
|
|
444
|
+
#documentation .method-description p {
|
|
445
|
+
margin-bottom: 0.5em;
|
|
446
|
+
}
|
|
447
|
+
#documentation .method-description ul {
|
|
448
|
+
margin-left: 1.5em;
|
|
449
|
+
}
|
|
450
|
+
pre {
|
|
451
|
+
margin: 0.5em 0;
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
#documentation .attribute-method-heading {
|
|
455
|
+
background: url(images/tag_green.png) no-repeat left bottom;
|
|
456
|
+
}
|
|
457
|
+
#documentation #attribute-method-details .method-detail:hover {
|
|
458
|
+
background-color: transparent;
|
|
459
|
+
cursor: default;
|
|
460
|
+
}
|
|
461
|
+
#documentation .attribute-access-type {
|
|
462
|
+
font-size: 60%;
|
|
463
|
+
text-transform: uppercase;
|
|
464
|
+
vertical-align: super;
|
|
465
|
+
padding: 0 2px;
|
|
466
|
+
}
|
|
467
|
+
/* @end */
|
|
468
|
+
|
|
469
|
+
/* @end */
|
|
470
|
+
|
|
471
|
+
/* @group Source Code */
|
|
472
|
+
|
|
473
|
+
pre {
|
|
474
|
+
overflow: auto;
|
|
475
|
+
background: #262626;
|
|
476
|
+
color: white;
|
|
477
|
+
border: 1px dashed #999;
|
|
478
|
+
padding: 0.5em;
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
.description pre {
|
|
482
|
+
margin: 0 0.4em;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
.ruby-constant { color: #7fffd4; background: transparent; }
|
|
486
|
+
.ruby-keyword { color: #00ffff; background: transparent; }
|
|
487
|
+
.ruby-ivar { color: #eedd82; background: transparent; }
|
|
488
|
+
.ruby-operator { color: #00ffee; background: transparent; }
|
|
489
|
+
.ruby-identifier { color: #ffdead; background: transparent; }
|
|
490
|
+
.ruby-node { color: #ffa07a; background: transparent; }
|
|
491
|
+
.ruby-comment { color: #dc0000; font-weight: bold; background: transparent; }
|
|
492
|
+
.ruby-regexp { color: #ffa07a; background: transparent; }
|
|
493
|
+
.ruby-value { color: #7fffd4; background: transparent; }
|
|
494
|
+
|
|
495
|
+
/* @end */
|
|
496
|
+
|
|
497
|
+
|
|
498
|
+
/* @group search results */
|
|
499
|
+
#search-results h1 {
|
|
500
|
+
font-size: 1em;
|
|
501
|
+
font-weight: normal;
|
|
502
|
+
text-shadow: none;
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
#search-results .current {
|
|
506
|
+
background: #ccc;
|
|
507
|
+
border-bottom: 1px solid transparent;
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
#search-results li {
|
|
511
|
+
list-style: none;
|
|
512
|
+
border-bottom: 1px solid #aaa;
|
|
513
|
+
-moz-border-radius: 4px;
|
|
514
|
+
-webkit-border-radius: 4px;
|
|
515
|
+
border-radius: 4px;
|
|
516
|
+
margin-bottom: 0.5em;
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
#search-results li:last-child {
|
|
520
|
+
border-bottom: none;
|
|
521
|
+
margin-bottom: 0;
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
#search-results li p {
|
|
525
|
+
padding: 0;
|
|
526
|
+
margin: 0.5em;
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
#search-results .search-namespace {
|
|
530
|
+
font-weight: bold;
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
#search-results li em {
|
|
534
|
+
background: yellow;
|
|
535
|
+
font-style: normal;
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
#search-results pre {
|
|
539
|
+
margin: 0.5em;
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
/* @end */
|
|
543
|
+
|