ropenstack 1.2.1 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
|