rack 1.4.1 → 1.4.2
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.
Potentially problematic release.
This version of rack might be problematic. Click here for more details.
- data/COPYING +1 -1
 - data/KNOWN-ISSUES +9 -0
 - data/README.rdoc +72 -7
 - data/Rakefile +18 -11
 - data/SPEC +3 -1
 - data/contrib/rack.png +0 -0
 - data/contrib/rack.svg +150 -0
 - data/contrib/rdoc.css +412 -0
 - data/lib/rack/auth/basic.rb +1 -1
 - data/lib/rack/auth/digest/nonce.rb +1 -1
 - data/lib/rack/backports/uri/common_18.rb +14 -28
 - data/lib/rack/backports/uri/common_192.rb +14 -17
 - data/lib/rack/backports/uri/common_193.rb +29 -0
 - data/lib/rack/body_proxy.rb +10 -0
 - data/lib/rack/builder.rb +1 -1
 - data/lib/rack/cascade.rb +11 -0
 - data/lib/rack/commonlogger.rb +18 -5
 - data/lib/rack/deflater.rb +5 -1
 - data/lib/rack/directory.rb +1 -1
 - data/lib/rack/etag.rb +6 -3
 - data/lib/rack/file.rb +13 -4
 - data/lib/rack/head.rb +1 -0
 - data/lib/rack/lint.rb +3 -1
 - data/lib/rack/lock.rb +3 -4
 - data/lib/rack/mime.rb +1 -1
 - data/lib/rack/mock.rb +3 -2
 - data/lib/rack/multipart.rb +2 -2
 - data/lib/rack/multipart/parser.rb +6 -4
 - data/lib/rack/reloader.rb +1 -1
 - data/lib/rack/request.rb +2 -4
 - data/lib/rack/response.rb +2 -1
 - data/lib/rack/server.rb +28 -2
 - data/lib/rack/session/abstract/id.rb +5 -0
 - data/lib/rack/session/cookie.rb +9 -0
 - data/lib/rack/static.rb +90 -8
 - data/lib/rack/utils.rb +17 -10
 - data/rack.gemspec +3 -3
 - data/test/builder/line.ru +1 -0
 - data/test/cgi/assets/folder/test.js +1 -0
 - data/test/cgi/assets/fonts/font.eot +1 -0
 - data/test/cgi/assets/images/image.png +1 -0
 - data/test/cgi/assets/index.html +1 -0
 - data/test/cgi/assets/javascripts/app.js +1 -0
 - data/test/cgi/assets/stylesheets/app.css +1 -0
 - data/test/spec_auth_basic.rb +8 -0
 - data/test/spec_auth_digest.rb +14 -0
 - data/test/spec_body_proxy.rb +4 -0
 - data/test/spec_builder.rb +7 -1
 - data/test/spec_cascade.rb +8 -0
 - data/test/spec_chunked.rb +6 -6
 - data/test/spec_config.rb +0 -1
 - data/test/spec_content_length.rb +26 -13
 - data/test/spec_content_type.rb +15 -5
 - data/test/spec_deflater.rb +35 -17
 - data/test/spec_directory.rb +20 -1
 - data/test/spec_etag.rb +29 -13
 - data/test/spec_file.rb +42 -25
 - data/test/spec_head.rb +25 -7
 - data/test/spec_lobster.rb +20 -5
 - data/test/spec_lock.rb +46 -21
 - data/test/spec_logger.rb +2 -7
 - data/test/spec_methodoverride.rb +21 -22
 - data/test/spec_mock.rb +12 -7
 - data/test/spec_multipart.rb +29 -0
 - data/test/spec_nulllogger.rb +13 -2
 - data/test/spec_recursive.rb +12 -9
 - data/test/spec_request.rb +2 -2
 - data/test/spec_response.rb +30 -0
 - data/test/spec_runtime.rb +15 -5
 - data/test/spec_sendfile.rb +11 -8
 - data/test/spec_server.rb +47 -0
 - data/test/spec_session_cookie.rb +68 -1
 - data/test/spec_session_memcache.rb +10 -8
 - data/test/spec_session_pool.rb +13 -10
 - data/test/spec_showexceptions.rb +9 -4
 - data/test/spec_showstatus.rb +10 -5
 - data/test/spec_static.rb +85 -9
 - data/test/spec_urlmap.rb +10 -10
 - data/test/spec_utils.rb +14 -1
 - data/test/static/another/index.html +1 -0
 - metadata +21 -8
 
    
        data/COPYING
    CHANGED
    
    | 
         @@ -1,4 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            Copyright (c) 2007, 2008, 2009, 2010 Christian Neukirchen <purl.org/net/chneukirchen>
         
     | 
| 
      
 1 
     | 
    
         
            +
            Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012 Christian Neukirchen <purl.org/net/chneukirchen>
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            Permission is hereby granted, free of charge, to any person obtaining a copy
         
     | 
| 
       4 
4 
     | 
    
         
             
            of this software and associated documentation files (the "Software"), to
         
     | 
    
        data/KNOWN-ISSUES
    CHANGED
    
    | 
         @@ -1,3 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            = Known issues with Rack and ECMA-262
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            * Many users expect the escape() function defined in ECMA-262 to be compatible
         
     | 
| 
      
 4 
     | 
    
         
            +
              with URI. Confusion is especially strong because the documentation for the
         
     | 
| 
      
 5 
     | 
    
         
            +
              escape function includes a reference to the URI specifications. ECMA-262
         
     | 
| 
      
 6 
     | 
    
         
            +
              escape is not however a URI escape function, it is a javascript escape
         
     | 
| 
      
 7 
     | 
    
         
            +
              function, and is not fully compatible. Most notably, for characters outside of
         
     | 
| 
      
 8 
     | 
    
         
            +
              the BMP. Users should use the more correct encodeURI functions.
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
       1 
10 
     | 
    
         
             
            = Known issues with Rack and Web servers
         
     | 
| 
       2 
11 
     | 
    
         | 
| 
       3 
12 
     | 
    
         
             
            * Lighttpd sets wrong SCRIPT_NAME and PATH_INFO if you mount your
         
     | 
    
        data/README.rdoc
    CHANGED
    
    | 
         @@ -27,8 +27,11 @@ These web servers include Rack handlers in their distributions: 
     | 
|
| 
       27 
27 
     | 
    
         
             
            * Fuzed
         
     | 
| 
       28 
28 
     | 
    
         
             
            * Glassfish v3
         
     | 
| 
       29 
29 
     | 
    
         
             
            * Phusion Passenger (which is mod_rack for Apache and for nginx)
         
     | 
| 
      
 30 
     | 
    
         
            +
            * Puma
         
     | 
| 
       30 
31 
     | 
    
         
             
            * Rainbows!
         
     | 
| 
       31 
32 
     | 
    
         
             
            * Unicorn
         
     | 
| 
      
 33 
     | 
    
         
            +
            * unixrack
         
     | 
| 
      
 34 
     | 
    
         
            +
            * uWSGI
         
     | 
| 
       32 
35 
     | 
    
         
             
            * Zbatery
         
     | 
| 
       33 
36 
     | 
    
         | 
| 
       34 
37 
     | 
    
         
             
            Any valid Rack app will run the same on all these handlers, without
         
     | 
| 
         @@ -132,7 +135,11 @@ at my site: 
     | 
|
| 
       132 
135 
     | 
    
         | 
| 
       133 
136 
     | 
    
         
             
            Testing Rack requires the bacon testing framework:
         
     | 
| 
       134 
137 
     | 
    
         | 
| 
       135 
     | 
    
         
            -
                 
     | 
| 
      
 138 
     | 
    
         
            +
                bundle install --without extra # to be able to run the fast tests
         
     | 
| 
      
 139 
     | 
    
         
            +
             
     | 
| 
      
 140 
     | 
    
         
            +
            Or:
         
     | 
| 
      
 141 
     | 
    
         
            +
             
     | 
| 
      
 142 
     | 
    
         
            +
                bundle install # this assumes that you have installed native extensions!
         
     | 
| 
       136 
143 
     | 
    
         | 
| 
       137 
144 
     | 
    
         
             
            There are two rake-based test tasks:
         
     | 
| 
       138 
145 
     | 
    
         | 
| 
         @@ -355,7 +362,7 @@ run on port 11211) and memcache-client installed. 
     | 
|
| 
       355 
362 
     | 
    
         
             
            * July 16, 2011: Sixteenth public release 1.3.2
         
     | 
| 
       356 
363 
     | 
    
         
             
              * Fix for Rails and rack-test, Rack::Utils#escape calls to_s
         
     | 
| 
       357 
364 
     | 
    
         | 
| 
       358 
     | 
    
         
            -
            *  
     | 
| 
      
 365 
     | 
    
         
            +
            * September 16, 2011: Seventeenth public release 1.3.3
         
     | 
| 
       359 
366 
     | 
    
         
             
              * Fix bug with broken query parameters in Rack::ShowExceptions
         
     | 
| 
       360 
367 
     | 
    
         
             
              * Rack::Request#cookies no longer swallows exceptions on broken input
         
     | 
| 
       361 
368 
     | 
    
         
             
              * Prevents XSS attacks enabled by bug in Ruby 1.8's regexp engine
         
     | 
| 
         @@ -373,6 +380,10 @@ run on port 11211) and memcache-client installed. 
     | 
|
| 
       373 
380 
     | 
    
         
             
            * October 17, 2011: Twentieth public release 1.3.5
         
     | 
| 
       374 
381 
     | 
    
         
             
              * Fix annoying warnings caused by the backport in 1.3.4
         
     | 
| 
       375 
382 
     | 
    
         | 
| 
      
 383 
     | 
    
         
            +
            * December 28th, 2011: Twenty first public release: 1.1.3.
         
     | 
| 
      
 384 
     | 
    
         
            +
              * Security fix. http://www.ocert.org/advisories/ocert-2011-003.html
         
     | 
| 
      
 385 
     | 
    
         
            +
                Further information here: http://jruby.org/2011/12/27/jruby-1-6-5-1
         
     | 
| 
      
 386 
     | 
    
         
            +
             
     | 
| 
       376 
387 
     | 
    
         
             
            * December 28th, 2011: Twenty fourth public release 1.4.0
         
     | 
| 
       377 
388 
     | 
    
         
             
              * Ruby 1.8.6 support has officially been dropped. Not all tests pass.
         
     | 
| 
       378 
389 
     | 
    
         
             
              * Raise sane error messages for broken config.ru
         
     | 
| 
         @@ -394,20 +405,74 @@ run on port 11211) and memcache-client installed. 
     | 
|
| 
       394 
405 
     | 
    
         | 
| 
       395 
406 
     | 
    
         
             
            * January 22nd, 2012: Twenty fifth public release 1.4.1
         
     | 
| 
       396 
407 
     | 
    
         
             
              * Alter the keyspace limit calculations to reduce issues with nested params
         
     | 
| 
       397 
     | 
    
         
            -
              * Add a workaround for multipart parsing where files  
     | 
| 
      
 408 
     | 
    
         
            +
              * Add a workaround for multipart parsing where files contain unescaped "%"
         
     | 
| 
       398 
409 
     | 
    
         
             
              * Added Rack::Response::Helpers#method_not_allowed? (code 405)
         
     | 
| 
       399 
     | 
    
         
            -
              * Rack::File now returns 404 
     | 
| 
       400 
     | 
    
         
            -
              * Rack::File now returns 405 
     | 
| 
      
 410 
     | 
    
         
            +
              * Rack::File now returns 404 for illegal directory traversals
         
     | 
| 
      
 411 
     | 
    
         
            +
              * Rack::File now returns 405 for illegal methods (non HEAD/GET)
         
     | 
| 
       401 
412 
     | 
    
         
             
              * Rack::Cascade now catches 405 by default, as well as 404
         
     | 
| 
       402 
413 
     | 
    
         
             
              * Cookies missing '--' no longer cause an exception to be raised
         
     | 
| 
       403 
414 
     | 
    
         
             
              * Various style changes and documentation spelling errors
         
     | 
| 
       404 
     | 
    
         
            -
              * Rack::BodyProxy always ensures to execute  
     | 
| 
      
 415 
     | 
    
         
            +
              * Rack::BodyProxy always ensures to execute its block
         
     | 
| 
       405 
416 
     | 
    
         
             
              * Additional test coverage around cookies and secrets
         
     | 
| 
       406 
417 
     | 
    
         
             
              * Rack::Session::Cookie can now be supplied either secret or old_secret
         
     | 
| 
       407 
418 
     | 
    
         
             
              * Tests are no longer dependent on set order
         
     | 
| 
       408 
419 
     | 
    
         
             
              * Rack::Static no longer defaults to serving index files
         
     | 
| 
       409 
420 
     | 
    
         
             
              * Rack.release was fixed
         
     | 
| 
       410 
421 
     | 
    
         | 
| 
      
 422 
     | 
    
         
            +
            * January 6th, 2013: Twenty sixth public release 1.1.4
         
     | 
| 
      
 423 
     | 
    
         
            +
              * Add warnings when users do not provide a session secret
         
     | 
| 
      
 424 
     | 
    
         
            +
             
     | 
| 
      
 425 
     | 
    
         
            +
            * January 6th, 2013: Twenty seventh public release 1.2.6
         
     | 
| 
      
 426 
     | 
    
         
            +
              * Add warnings when users do not provide a session secret
         
     | 
| 
      
 427 
     | 
    
         
            +
              * Fix parsing performance for unquoted filenames
         
     | 
| 
      
 428 
     | 
    
         
            +
             
     | 
| 
      
 429 
     | 
    
         
            +
            * January 6th, 2013: Twenty eighth public release 1.3.7
         
     | 
| 
      
 430 
     | 
    
         
            +
              * Add warnings when users do not provide a session secret
         
     | 
| 
      
 431 
     | 
    
         
            +
              * Fix parsing performance for unquoted filenames
         
     | 
| 
      
 432 
     | 
    
         
            +
              * Updated URI backports
         
     | 
| 
      
 433 
     | 
    
         
            +
              * Fix URI backport version matching, and silence constant warnings
         
     | 
| 
      
 434 
     | 
    
         
            +
              * Correct parameter parsing with empty values
         
     | 
| 
      
 435 
     | 
    
         
            +
              * Correct rackup '-I' flag, to allow multiple uses
         
     | 
| 
      
 436 
     | 
    
         
            +
              * Correct rackup pidfile handling
         
     | 
| 
      
 437 
     | 
    
         
            +
              * Report rackup line numbers correctly
         
     | 
| 
      
 438 
     | 
    
         
            +
              * Fix request loops caused by non-stale nonces with time limits
         
     | 
| 
      
 439 
     | 
    
         
            +
              * Fix reloader on Windows
         
     | 
| 
      
 440 
     | 
    
         
            +
              * Prevent infinite recursions from Response#to_ary
         
     | 
| 
      
 441 
     | 
    
         
            +
              * Various middleware better conforms to the body close specification
         
     | 
| 
      
 442 
     | 
    
         
            +
              * Updated language for the body close specification
         
     | 
| 
      
 443 
     | 
    
         
            +
              * Additional notes regarding ECMA escape compatibility issues
         
     | 
| 
      
 444 
     | 
    
         
            +
              * Fix the parsing of multiple ranges in range headers
         
     | 
| 
      
 445 
     | 
    
         
            +
             
     | 
| 
      
 446 
     | 
    
         
            +
            * January 6th, 2013: Twenty ninth public release 1.4.2
         
     | 
| 
      
 447 
     | 
    
         
            +
              * Add warnings when users do not provide a session secret
         
     | 
| 
      
 448 
     | 
    
         
            +
              * Fix parsing performance for unquoted filenames
         
     | 
| 
      
 449 
     | 
    
         
            +
              * Updated URI backports
         
     | 
| 
      
 450 
     | 
    
         
            +
              * Fix URI backport version matching, and silence constant warnings
         
     | 
| 
      
 451 
     | 
    
         
            +
              * Correct parameter parsing with empty values
         
     | 
| 
      
 452 
     | 
    
         
            +
              * Correct rackup '-I' flag, to allow multiple uses
         
     | 
| 
      
 453 
     | 
    
         
            +
              * Correct rackup pidfile handling
         
     | 
| 
      
 454 
     | 
    
         
            +
              * Report rackup line numbers correctly
         
     | 
| 
      
 455 
     | 
    
         
            +
              * Fix request loops caused by non-stale nonces with time limits
         
     | 
| 
      
 456 
     | 
    
         
            +
              * Fix reloader on Windows
         
     | 
| 
      
 457 
     | 
    
         
            +
              * Prevent infinite recursions from Response#to_ary
         
     | 
| 
      
 458 
     | 
    
         
            +
              * Various middleware better conforms to the body close specification
         
     | 
| 
      
 459 
     | 
    
         
            +
              * Updated language for the body close specification
         
     | 
| 
      
 460 
     | 
    
         
            +
              * Additional notes regarding ECMA escape compatibility issues
         
     | 
| 
      
 461 
     | 
    
         
            +
              * Fix the parsing of multiple ranges in range headers
         
     | 
| 
      
 462 
     | 
    
         
            +
              * Prevent errors from empty parameter keys
         
     | 
| 
      
 463 
     | 
    
         
            +
              * Added PATCH verb to Rack::Request
         
     | 
| 
      
 464 
     | 
    
         
            +
              * Various documentation updates
         
     | 
| 
      
 465 
     | 
    
         
            +
              * Fix session merge semantics (fixes rack-test)
         
     | 
| 
      
 466 
     | 
    
         
            +
              * Rack::Static :index can now handle multiple directories
         
     | 
| 
      
 467 
     | 
    
         
            +
              * All tests now utilize Rack::Lint (special thanks to Lars Gierth)
         
     | 
| 
      
 468 
     | 
    
         
            +
              * Rack::File cache_control parameter is now deprecated, and removed by 1.5
         
     | 
| 
      
 469 
     | 
    
         
            +
              * Correct Rack::Directory script name escaping
         
     | 
| 
      
 470 
     | 
    
         
            +
              * Rack::Static supports header rules for sophisticated configurations
         
     | 
| 
      
 471 
     | 
    
         
            +
              * Multipart parsing now works without a Content-Length header
         
     | 
| 
      
 472 
     | 
    
         
            +
              * New logos courtesy of Zachary Scott!
         
     | 
| 
      
 473 
     | 
    
         
            +
              * Rack::BodyProxy now explicitly defines #each, useful for C extensions
         
     | 
| 
      
 474 
     | 
    
         
            +
              * Cookies that are not URI escaped no longer cause exceptions
         
     | 
| 
      
 475 
     | 
    
         
            +
             
     | 
| 
       411 
476 
     | 
    
         
             
            == Contact
         
     | 
| 
       412 
477 
     | 
    
         | 
| 
       413 
478 
     | 
    
         
             
            Please post bugs, suggestions and patches to
         
     | 
| 
         @@ -488,7 +553,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
     | 
|
| 
       488 
553 
     | 
    
         | 
| 
       489 
554 
     | 
    
         
             
            == Links
         
     | 
| 
       490 
555 
     | 
    
         | 
| 
       491 
     | 
    
         
            -
            Rack:: <http://rack. 
     | 
| 
      
 556 
     | 
    
         
            +
            Rack:: <http://rack.github.com/>
         
     | 
| 
       492 
557 
     | 
    
         
             
            Official Rack repositories:: <http://github.com/rack>
         
     | 
| 
       493 
558 
     | 
    
         
             
            Rack Bug Tracking:: <http://github.com/rack/rack/issues>
         
     | 
| 
       494 
559 
     | 
    
         
             
            rack-devel mailing list:: <http://groups.google.com/group/rack-devel>
         
     | 
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -11,12 +11,12 @@ task :deps do 
     | 
|
| 
       11 
11 
     | 
    
         
             
                reqs = dep.requirements_list
         
     | 
| 
       12 
12 
     | 
    
         
             
                reqs = (["-v"] * reqs.size).zip(reqs).flatten
         
     | 
| 
       13 
13 
     | 
    
         
             
                # Use system over sh, because we want to ignore errors!
         
     | 
| 
       14 
     | 
    
         
            -
                system "gem", "install", '--conservative', dep.name, *reqs
         
     | 
| 
      
 14 
     | 
    
         
            +
                system Gem.ruby, "-S", "gem", "install", '--conservative', dep.name, *reqs
         
     | 
| 
       15 
15 
     | 
    
         
             
              end
         
     | 
| 
       16 
16 
     | 
    
         
             
            end
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
18 
     | 
    
         
             
            desc "Make an archive as .tar.gz"
         
     | 
| 
       19 
     | 
    
         
            -
            task :dist => [ 
     | 
| 
      
 19 
     | 
    
         
            +
            task :dist => %w[chmod ChangeLog SPEC rdoc] do
         
     | 
| 
       20 
20 
     | 
    
         
             
              sh "git archive --format=tar --prefix=#{release}/ HEAD^{tree} >#{release}.tar"
         
     | 
| 
       21 
21 
     | 
    
         
             
              sh "pax -waf #{release}.tar -s ':^:#{release}/:' SPEC ChangeLog doc rack.gemspec"
         
     | 
| 
       22 
22 
     | 
    
         
             
              sh "gzip -f -9 #{release}.tar"
         
     | 
| 
         @@ -31,7 +31,7 @@ task :officialrelease do 
     | 
|
| 
       31 
31 
     | 
    
         
             
              sh "mv stage/#{release}.tar.gz stage/#{release}.gem ."
         
     | 
| 
       32 
32 
     | 
    
         
             
            end
         
     | 
| 
       33 
33 
     | 
    
         | 
| 
       34 
     | 
    
         
            -
            task :officialrelease_really => [ 
     | 
| 
      
 34 
     | 
    
         
            +
            task :officialrelease_really => %w[SPEC dist gem] do
         
     | 
| 
       35 
35 
     | 
    
         
             
              sh "sha1sum #{release}.tar.gz #{release}.gem"
         
     | 
| 
       36 
36 
     | 
    
         
             
            end
         
     | 
| 
       37 
37 
     | 
    
         | 
| 
         @@ -46,7 +46,10 @@ task :chmod do 
     | 
|
| 
       46 
46 
     | 
    
         
             
            end
         
     | 
| 
       47 
47 
     | 
    
         | 
| 
       48 
48 
     | 
    
         
             
            desc "Generate a ChangeLog"
         
     | 
| 
       49 
     | 
    
         
            -
            task :changelog  
     | 
| 
      
 49 
     | 
    
         
            +
            task :changelog => %w[ChangeLog]
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
            file '.git/index'
         
     | 
| 
      
 52 
     | 
    
         
            +
            file "ChangeLog" => '.git/index' do
         
     | 
| 
       50 
53 
     | 
    
         
             
              File.open("ChangeLog", "w") { |out|
         
     | 
| 
       51 
54 
     | 
    
         
             
                `git log -z`.split("\0").map { |chunk|
         
     | 
| 
       52 
55 
     | 
    
         
             
                  author = chunk[/Author: (.*)/, 1].strip
         
     | 
| 
         @@ -63,7 +66,6 @@ task :changelog do 
     | 
|
| 
       63 
66 
     | 
    
         
             
              }
         
     | 
| 
       64 
67 
     | 
    
         
             
            end
         
     | 
| 
       65 
68 
     | 
    
         | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
       67 
69 
     | 
    
         
             
            file 'lib/rack/lint.rb'
         
     | 
| 
       68 
70 
     | 
    
         
             
            desc "Generate Rack Specification"
         
     | 
| 
       69 
71 
     | 
    
         
             
            file "SPEC" => 'lib/rack/lint.rb' do
         
     | 
| 
         @@ -99,17 +101,22 @@ task :gem => ["SPEC"] do 
     | 
|
| 
       99 
101 
     | 
    
         
             
              sh "gem build rack.gemspec"
         
     | 
| 
       100 
102 
     | 
    
         
             
            end
         
     | 
| 
       101 
103 
     | 
    
         | 
| 
      
 104 
     | 
    
         
            +
            task :doc => :rdoc
         
     | 
| 
       102 
105 
     | 
    
         
             
            desc "Generate RDoc documentation"
         
     | 
| 
       103 
     | 
    
         
            -
            task :rdoc => [ 
     | 
| 
      
 106 
     | 
    
         
            +
            task :rdoc => %w[ChangeLog SPEC] do
         
     | 
| 
       104 
107 
     | 
    
         
             
              sh(*%w{rdoc --line-numbers --main README.rdoc
         
     | 
| 
       105 
108 
     | 
    
         
             
                          --title 'Rack\ Documentation' --charset utf-8 -U -o doc} +
         
     | 
| 
       106 
     | 
    
         
            -
                          %w{README.rdoc KNOWN-ISSUES SPEC} +
         
     | 
| 
       107 
     | 
    
         
            -
                           
     | 
| 
      
 109 
     | 
    
         
            +
                          %w{README.rdoc KNOWN-ISSUES SPEC ChangeLog} +
         
     | 
| 
      
 110 
     | 
    
         
            +
                          `git ls-files lib/\*\*/\*.rb`.strip.split)
         
     | 
| 
      
 111 
     | 
    
         
            +
              cp "contrib/rdoc.css", "doc/rdoc.css"
         
     | 
| 
      
 112 
     | 
    
         
            +
            end
         
     | 
| 
      
 113 
     | 
    
         
            +
             
     | 
| 
      
 114 
     | 
    
         
            +
            task :pushdoc => %w[rdoc] do
         
     | 
| 
      
 115 
     | 
    
         
            +
              sh "rsync -avz doc/ rack.rubyforge.org:/var/www/gforge-projects/rack/doc/"
         
     | 
| 
       108 
116 
     | 
    
         
             
            end
         
     | 
| 
       109 
117 
     | 
    
         | 
| 
       110 
     | 
    
         
            -
            task :pushsite => [ 
     | 
| 
      
 118 
     | 
    
         
            +
            task :pushsite => %w[pushdoc] do
         
     | 
| 
       111 
119 
     | 
    
         
             
              sh "cd site && git gc"
         
     | 
| 
       112 
     | 
    
         
            -
              sh "rsync -avz  
     | 
| 
       113 
     | 
    
         
            -
              sh "rsync -avz site/ chneukirchen@rack.rubyforge.org:/var/www/gforge-projects/rack/"
         
     | 
| 
      
 120 
     | 
    
         
            +
              sh "rsync -avz site/ rack.rubyforge.org:/var/www/gforge-projects/rack/"
         
     | 
| 
       114 
121 
     | 
    
         
             
              sh "cd site && git push"
         
     | 
| 
       115 
122 
     | 
    
         
             
            end
         
     | 
    
        data/SPEC
    CHANGED
    
    | 
         @@ -156,7 +156,9 @@ The Body must respond to +each+ 
     | 
|
| 
       156 
156 
     | 
    
         
             
            and must only yield String values.
         
     | 
| 
       157 
157 
     | 
    
         
             
            The Body itself should not be an instance of String, as this will
         
     | 
| 
       158 
158 
     | 
    
         
             
            break in Ruby 1.9.
         
     | 
| 
       159 
     | 
    
         
            -
            If the Body responds to +close+, it will be called after iteration.
         
     | 
| 
      
 159 
     | 
    
         
            +
            If the Body responds to +close+, it will be called after iteration. If
         
     | 
| 
      
 160 
     | 
    
         
            +
            the body is replaced by a middleware after action, the original body
         
     | 
| 
      
 161 
     | 
    
         
            +
            must be closed first, if it repsonds to close.
         
     | 
| 
       160 
162 
     | 
    
         
             
            If the Body responds to +to_path+, it must return a String
         
     | 
| 
       161 
163 
     | 
    
         
             
            identifying the location of a file whose contents are identical
         
     | 
| 
       162 
164 
     | 
    
         
             
            to that produced by calling +each+; this may be used by the
         
     | 
    
        data/contrib/rack.png
    ADDED
    
    | 
         Binary file 
     | 
    
        data/contrib/rack.svg
    ADDED
    
    | 
         @@ -0,0 +1,150 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <?xml version="1.0" encoding="UTF-8" standalone="no"?>
         
     | 
| 
      
 2 
     | 
    
         
            +
            <!-- Created with Inkscape (http://www.inkscape.org/) -->
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            <svg
         
     | 
| 
      
 5 
     | 
    
         
            +
               xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
         
     | 
| 
      
 6 
     | 
    
         
            +
               xmlns:dc="http://purl.org/dc/elements/1.1/"
         
     | 
| 
      
 7 
     | 
    
         
            +
               xmlns:cc="http://creativecommons.org/ns#"
         
     | 
| 
      
 8 
     | 
    
         
            +
               xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         
     | 
| 
      
 9 
     | 
    
         
            +
               xmlns:svg="http://www.w3.org/2000/svg"
         
     | 
| 
      
 10 
     | 
    
         
            +
               xmlns="http://www.w3.org/2000/svg"
         
     | 
| 
      
 11 
     | 
    
         
            +
               xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
         
     | 
| 
      
 12 
     | 
    
         
            +
               xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
         
     | 
| 
      
 13 
     | 
    
         
            +
               width="744.09448819"
         
     | 
| 
      
 14 
     | 
    
         
            +
               height="1052.3622047"
         
     | 
| 
      
 15 
     | 
    
         
            +
               id="svg2"
         
     | 
| 
      
 16 
     | 
    
         
            +
               version="1.1"
         
     | 
| 
      
 17 
     | 
    
         
            +
               inkscape:version="0.48.3.1 r9886"
         
     | 
| 
      
 18 
     | 
    
         
            +
               sodipodi:docname="rack.svg">
         
     | 
| 
      
 19 
     | 
    
         
            +
              <defs
         
     | 
| 
      
 20 
     | 
    
         
            +
                 id="defs4">
         
     | 
| 
      
 21 
     | 
    
         
            +
                <linearGradient
         
     | 
| 
      
 22 
     | 
    
         
            +
                   id="linearGradient3837"
         
     | 
| 
      
 23 
     | 
    
         
            +
                   osb:paint="solid">
         
     | 
| 
      
 24 
     | 
    
         
            +
                  <stop
         
     | 
| 
      
 25 
     | 
    
         
            +
                     style="stop-color:#000000;stop-opacity:1;"
         
     | 
| 
      
 26 
     | 
    
         
            +
                     offset="0"
         
     | 
| 
      
 27 
     | 
    
         
            +
                     id="stop3839" />
         
     | 
| 
      
 28 
     | 
    
         
            +
                </linearGradient>
         
     | 
| 
      
 29 
     | 
    
         
            +
              </defs>
         
     | 
| 
      
 30 
     | 
    
         
            +
              <sodipodi:namedview
         
     | 
| 
      
 31 
     | 
    
         
            +
                 id="base"
         
     | 
| 
      
 32 
     | 
    
         
            +
                 pagecolor="#ffffff"
         
     | 
| 
      
 33 
     | 
    
         
            +
                 bordercolor="#666666"
         
     | 
| 
      
 34 
     | 
    
         
            +
                 borderopacity="1.0"
         
     | 
| 
      
 35 
     | 
    
         
            +
                 inkscape:pageopacity="0.0"
         
     | 
| 
      
 36 
     | 
    
         
            +
                 inkscape:pageshadow="2"
         
     | 
| 
      
 37 
     | 
    
         
            +
                 inkscape:zoom="0.98994949"
         
     | 
| 
      
 38 
     | 
    
         
            +
                 inkscape:cx="230.49849"
         
     | 
| 
      
 39 
     | 
    
         
            +
                 inkscape:cy="656.46253"
         
     | 
| 
      
 40 
     | 
    
         
            +
                 inkscape:document-units="px"
         
     | 
| 
      
 41 
     | 
    
         
            +
                 inkscape:current-layer="layer1"
         
     | 
| 
      
 42 
     | 
    
         
            +
                 showgrid="false"
         
     | 
| 
      
 43 
     | 
    
         
            +
                 showguides="false"
         
     | 
| 
      
 44 
     | 
    
         
            +
                 inkscape:guide-bbox="true"
         
     | 
| 
      
 45 
     | 
    
         
            +
                 inkscape:window-width="1920"
         
     | 
| 
      
 46 
     | 
    
         
            +
                 inkscape:window-height="1056"
         
     | 
| 
      
 47 
     | 
    
         
            +
                 inkscape:window-x="1920"
         
     | 
| 
      
 48 
     | 
    
         
            +
                 inkscape:window-y="24"
         
     | 
| 
      
 49 
     | 
    
         
            +
                 inkscape:window-maximized="1">
         
     | 
| 
      
 50 
     | 
    
         
            +
                <sodipodi:guide
         
     | 
| 
      
 51 
     | 
    
         
            +
                   orientation="1,0"
         
     | 
| 
      
 52 
     | 
    
         
            +
                   position="645.99255,757.10933"
         
     | 
| 
      
 53 
     | 
    
         
            +
                   id="guide2995" />
         
     | 
| 
      
 54 
     | 
    
         
            +
                <sodipodi:guide
         
     | 
| 
      
 55 
     | 
    
         
            +
                   orientation="1,0"
         
     | 
| 
      
 56 
     | 
    
         
            +
                   position="488.40876,686.90373"
         
     | 
| 
      
 57 
     | 
    
         
            +
                   id="guide2997" />
         
     | 
| 
      
 58 
     | 
    
         
            +
                <sodipodi:guide
         
     | 
| 
      
 59 
     | 
    
         
            +
                   orientation="1,0"
         
     | 
| 
      
 60 
     | 
    
         
            +
                   position="176.7767,748.52304"
         
     | 
| 
      
 61 
     | 
    
         
            +
                   id="guide2999" />
         
     | 
| 
      
 62 
     | 
    
         
            +
                <sodipodi:guide
         
     | 
| 
      
 63 
     | 
    
         
            +
                   orientation="1,0"
         
     | 
| 
      
 64 
     | 
    
         
            +
                   position="355.71429,782.85714"
         
     | 
| 
      
 65 
     | 
    
         
            +
                   id="guide3005" />
         
     | 
| 
      
 66 
     | 
    
         
            +
                <sodipodi:guide
         
     | 
| 
      
 67 
     | 
    
         
            +
                   orientation="0,1"
         
     | 
| 
      
 68 
     | 
    
         
            +
                   position="527.14286,642.85714"
         
     | 
| 
      
 69 
     | 
    
         
            +
                   id="guide3007" />
         
     | 
| 
      
 70 
     | 
    
         
            +
                <sodipodi:guide
         
     | 
| 
      
 71 
     | 
    
         
            +
                   orientation="0,1"
         
     | 
| 
      
 72 
     | 
    
         
            +
                   position="431.42857,507.85714"
         
     | 
| 
      
 73 
     | 
    
         
            +
                   id="guide3009" />
         
     | 
| 
      
 74 
     | 
    
         
            +
                <sodipodi:guide
         
     | 
| 
      
 75 
     | 
    
         
            +
                   orientation="0,1"
         
     | 
| 
      
 76 
     | 
    
         
            +
                   position="488.40876,783.57143"
         
     | 
| 
      
 77 
     | 
    
         
            +
                   id="guide3011" />
         
     | 
| 
      
 78 
     | 
    
         
            +
                <sodipodi:guide
         
     | 
| 
      
 79 
     | 
    
         
            +
                   orientation="0,1"
         
     | 
| 
      
 80 
     | 
    
         
            +
                   position="505,372.85714"
         
     | 
| 
      
 81 
     | 
    
         
            +
                   id="guide3013" />
         
     | 
| 
      
 82 
     | 
    
         
            +
              </sodipodi:namedview>
         
     | 
| 
      
 83 
     | 
    
         
            +
              <metadata
         
     | 
| 
      
 84 
     | 
    
         
            +
                 id="metadata7">
         
     | 
| 
      
 85 
     | 
    
         
            +
                <rdf:RDF>
         
     | 
| 
      
 86 
     | 
    
         
            +
                  <cc:Work
         
     | 
| 
      
 87 
     | 
    
         
            +
                     rdf:about="">
         
     | 
| 
      
 88 
     | 
    
         
            +
                    <dc:format>image/svg+xml</dc:format>
         
     | 
| 
      
 89 
     | 
    
         
            +
                    <dc:type
         
     | 
| 
      
 90 
     | 
    
         
            +
                       rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
         
     | 
| 
      
 91 
     | 
    
         
            +
                    <dc:title></dc:title>
         
     | 
| 
      
 92 
     | 
    
         
            +
                  </cc:Work>
         
     | 
| 
      
 93 
     | 
    
         
            +
                </rdf:RDF>
         
     | 
| 
      
 94 
     | 
    
         
            +
              </metadata>
         
     | 
| 
      
 95 
     | 
    
         
            +
              <g
         
     | 
| 
      
 96 
     | 
    
         
            +
                 inkscape:label="Layer 1"
         
     | 
| 
      
 97 
     | 
    
         
            +
                 inkscape:groupmode="layer"
         
     | 
| 
      
 98 
     | 
    
         
            +
                 id="layer1">
         
     | 
| 
      
 99 
     | 
    
         
            +
                <path
         
     | 
| 
      
 100 
     | 
    
         
            +
                   style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
         
     | 
| 
      
 101 
     | 
    
         
            +
                   d="m 176.28125,201.03125 0,0.625 0,395.125 0,0.375 0.34375,0.0937 312.34375,91.6875 0.625,0.1875 0,-0.65625 0.125,-419.09375 0,-0.40625 -0.40625,-0.0937 -312.4375,-67.71875 -0.59375,-0.125 z m 1,1.21875 311.4375,67.5 -0.125,418.0625 -311.3125,-91.375 0,-394.1875 z"
         
     | 
| 
      
 102 
     | 
    
         
            +
                   id="path2985"
         
     | 
| 
      
 103 
     | 
    
         
            +
                   inkscape:connector-curvature="0" />
         
     | 
| 
      
 104 
     | 
    
         
            +
                <path
         
     | 
| 
      
 105 
     | 
    
         
            +
                   style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
         
     | 
| 
      
 106 
     | 
    
         
            +
                   d="m 647.21875,206.59375 -0.6875,0.28125 -157.59375,62.21875 -0.3125,0.125 0,0.34375 0.1875,419.125 0,0.75 0.6875,-0.28125 156.0625,-63.1875 0.3125,-0.125 0,-0.34375 1.34375,-418.15625 0,-0.75 z m -1,1.4375 -1.34375,417.125 -155.0625,62.78125 -0.1875,-418.03125 156.59375,-61.875 z"
         
     | 
| 
      
 107 
     | 
    
         
            +
                   id="path2993"
         
     | 
| 
      
 108 
     | 
    
         
            +
                   inkscape:connector-curvature="0" />
         
     | 
| 
      
 109 
     | 
    
         
            +
                <path
         
     | 
| 
      
 110 
     | 
    
         
            +
                   style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
         
     | 
| 
      
 111 
     | 
    
         
            +
                   d="m 355.6875,137.40625 -0.15625,0.0625 L 176.96875,201.0625 177.3125,202 355.75,138.4375 646.78125,207.53125 647,206.5625 l -291.15625,-69.125 -0.15625,-0.0312 z"
         
     | 
| 
      
 112 
     | 
    
         
            +
                   id="path3003"
         
     | 
| 
      
 113 
     | 
    
         
            +
                   inkscape:connector-curvature="0" />
         
     | 
| 
      
 114 
     | 
    
         
            +
                <path
         
     | 
| 
      
 115 
     | 
    
         
            +
                   style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
         
     | 
| 
      
 116 
     | 
    
         
            +
                   d="m 355.71875,277.53125 -0.125,0.0312 -178.9375,47.96875 -1.8125,0.46875 1.8125,0.5 311.625,83.5 0.15625,0.0312 0.125,-0.0625 157.59375,-53.65625 1.5625,-0.53125 -1.59375,-0.4375 -290.28125,-77.78125 -0.125,-0.0312 z m 0,1.03125 L 644.3125,355.90625 488.375,409 178.71875,326 l 177,-47.4375 z"
         
     | 
| 
      
 117 
     | 
    
         
            +
                   id="path3015"
         
     | 
| 
      
 118 
     | 
    
         
            +
                   inkscape:connector-curvature="0" />
         
     | 
| 
      
 119 
     | 
    
         
            +
                <path
         
     | 
| 
      
 120 
     | 
    
         
            +
                   style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
         
     | 
| 
      
 121 
     | 
    
         
            +
                   d="m 355.21875,240.9375 0,37.125 1,0 0,-37.125 -1,0 z"
         
     | 
| 
      
 122 
     | 
    
         
            +
                   id="path3017"
         
     | 
| 
      
 123 
     | 
    
         
            +
                   inkscape:connector-curvature="0" />
         
     | 
| 
      
 124 
     | 
    
         
            +
                <path
         
     | 
| 
      
 125 
     | 
    
         
            +
                   style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
         
     | 
| 
      
 126 
     | 
    
         
            +
                   d="m 176.28125,202.65625 0,393.28125 1,0 0,-393.28125 -1,0 z"
         
     | 
| 
      
 127 
     | 
    
         
            +
                   id="path3019"
         
     | 
| 
      
 128 
     | 
    
         
            +
                   inkscape:connector-curvature="0" />
         
     | 
| 
      
 129 
     | 
    
         
            +
                <path
         
     | 
| 
      
 130 
     | 
    
         
            +
                   style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
         
     | 
| 
      
 131 
     | 
    
         
            +
                   d="m 355.71875,409 -0.125,0.0312 L 177,455.8125 l -1.78125,0.46875 1.78125,0.5 L 488.28125,545 l 0.15625,0.0312 0.125,-0.0625 156.71875,-56.25 1.46875,-0.53125 -1.53125,-0.40625 -289.375,-78.75 -0.125,-0.0312 z m 0,1.03125 287.6875,78.28125 L 488.375,544 179.03125,456.3125 355.71875,410.03125 z"
         
     | 
| 
      
 132 
     | 
    
         
            +
                   id="path3021"
         
     | 
| 
      
 133 
     | 
    
         
            +
                   inkscape:connector-curvature="0" />
         
     | 
| 
      
 134 
     | 
    
         
            +
                <path
         
     | 
| 
      
 135 
     | 
    
         
            +
                   style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
         
     | 
| 
      
 136 
     | 
    
         
            +
                   d="m 355.71875,544 -0.15625,0.0312 -178.5625,52.3125 0.28125,0.96875 178.4375,-52.28125 289.59375,80.25 0.28125,-0.96875 -289.75,-80.28125 -0.125,-0.0312 z"
         
     | 
| 
      
 137 
     | 
    
         
            +
                   id="path3023"
         
     | 
| 
      
 138 
     | 
    
         
            +
                   inkscape:connector-curvature="0" />
         
     | 
| 
      
 139 
     | 
    
         
            +
                <path
         
     | 
| 
      
 140 
     | 
    
         
            +
                   style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
         
     | 
| 
      
 141 
     | 
    
         
            +
                   d="m 355.21875,374.34375 0,35.15625 1,0 0,-35.15625 -1,0 z"
         
     | 
| 
      
 142 
     | 
    
         
            +
                   id="path3025"
         
     | 
| 
      
 143 
     | 
    
         
            +
                   inkscape:connector-curvature="0" />
         
     | 
| 
      
 144 
     | 
    
         
            +
                <path
         
     | 
| 
      
 145 
     | 
    
         
            +
                   style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:10;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;stroke-opacity:1;stroke-miterlimit:30;stroke-dasharray:none;stroke-linecap:round;stroke-linejoin:round"
         
     | 
| 
      
 146 
     | 
    
         
            +
                   d="m 355.1875,507.03125 0,37.4375 1.03125,0 0,-37.4375 -1.03125,0 z"
         
     | 
| 
      
 147 
     | 
    
         
            +
                   id="path3027"
         
     | 
| 
      
 148 
     | 
    
         
            +
                   inkscape:connector-curvature="0" />
         
     | 
| 
      
 149 
     | 
    
         
            +
              </g>
         
     | 
| 
      
 150 
     | 
    
         
            +
            </svg>
         
     | 
    
        data/contrib/rdoc.css
    ADDED
    
    | 
         @@ -0,0 +1,412 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            /* Forked from the Darkfish templates rdoc.css file, much hacked, probably
         
     | 
| 
      
 2 
     | 
    
         
            +
             * imperfect */
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            html { max-width: 960px; margin: 0 auto; }
         
     | 
| 
      
 5 
     | 
    
         
            +
            body {
         
     | 
| 
      
 6 
     | 
    
         
            +
              font: 14px "Helvetica Neue", Helvetica, Tahoma, sans-serif;
         
     | 
| 
      
 7 
     | 
    
         
            +
            }
         
     | 
| 
      
 8 
     | 
    
         
            +
            body.file-popup {
         
     | 
| 
      
 9 
     | 
    
         
            +
              font-size: 90%;
         
     | 
| 
      
 10 
     | 
    
         
            +
              margin-left: 0;
         
     | 
| 
      
 11 
     | 
    
         
            +
            }
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            h1 {
         
     | 
| 
      
 14 
     | 
    
         
            +
              color: #4183C4;
         
     | 
| 
      
 15 
     | 
    
         
            +
            }
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            :link,
         
     | 
| 
      
 18 
     | 
    
         
            +
            :visited {
         
     | 
| 
      
 19 
     | 
    
         
            +
              color: #4183C4;
         
     | 
| 
      
 20 
     | 
    
         
            +
              text-decoration: none;
         
     | 
| 
      
 21 
     | 
    
         
            +
            }
         
     | 
| 
      
 22 
     | 
    
         
            +
            :link:hover,
         
     | 
| 
      
 23 
     | 
    
         
            +
            :visited:hover {
         
     | 
| 
      
 24 
     | 
    
         
            +
              border-bottom: 1px dotted #4183C4;
         
     | 
| 
      
 25 
     | 
    
         
            +
            }
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            pre, pre.description {
         
     | 
| 
      
 28 
     | 
    
         
            +
              font: 12px Monaco,"Courier New","DejaVu Sans Mono","Bitstream Vera Sans Mono",monospace;
         
     | 
| 
      
 29 
     | 
    
         
            +
              padding: 1em;
         
     | 
| 
      
 30 
     | 
    
         
            +
              overflow: auto;
         
     | 
| 
      
 31 
     | 
    
         
            +
              line-height: 1.4;
         
     | 
| 
      
 32 
     | 
    
         
            +
            }
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
            /* @group Generic Classes */
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
            .initially-hidden {
         
     | 
| 
      
 37 
     | 
    
         
            +
              display: none;
         
     | 
| 
      
 38 
     | 
    
         
            +
            }
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
            #search-field {
         
     | 
| 
      
 41 
     | 
    
         
            +
              width: 98%;
         
     | 
| 
      
 42 
     | 
    
         
            +
            }
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
            .missing-docs {
         
     | 
| 
      
 45 
     | 
    
         
            +
              font-size: 120%;
         
     | 
| 
      
 46 
     | 
    
         
            +
              background: white url(images/wrench_orange.png) no-repeat 4px center;
         
     | 
| 
      
 47 
     | 
    
         
            +
              color: #ccc;
         
     | 
| 
      
 48 
     | 
    
         
            +
              line-height: 2em;
         
     | 
| 
      
 49 
     | 
    
         
            +
              border: 1px solid #d00;
         
     | 
| 
      
 50 
     | 
    
         
            +
              opacity: 1;
         
     | 
| 
      
 51 
     | 
    
         
            +
              text-indent: 24px;
         
     | 
| 
      
 52 
     | 
    
         
            +
              letter-spacing: 3px;
         
     | 
| 
      
 53 
     | 
    
         
            +
              font-weight: bold;
         
     | 
| 
      
 54 
     | 
    
         
            +
              -webkit-border-radius: 5px;
         
     | 
| 
      
 55 
     | 
    
         
            +
              -moz-border-radius: 5px;
         
     | 
| 
      
 56 
     | 
    
         
            +
            }
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
            .target-section {
         
     | 
| 
      
 59 
     | 
    
         
            +
              border: 2px solid #dcce90;
         
     | 
| 
      
 60 
     | 
    
         
            +
              border-left-width: 8px;
         
     | 
| 
      
 61 
     | 
    
         
            +
              background: #fff3c2;
         
     | 
| 
      
 62 
     | 
    
         
            +
            }
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
            /* @end */
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
            /* @group Index Page, Standalone file pages */
         
     | 
| 
      
 67 
     | 
    
         
            +
            .indexpage ul {
         
     | 
| 
      
 68 
     | 
    
         
            +
              line-height: 160%;
         
     | 
| 
      
 69 
     | 
    
         
            +
              list-style: none;
         
     | 
| 
      
 70 
     | 
    
         
            +
            }
         
     | 
| 
      
 71 
     | 
    
         
            +
            .indexpage ul :link,
         
     | 
| 
      
 72 
     | 
    
         
            +
            .indexpage ul :visited {
         
     | 
| 
      
 73 
     | 
    
         
            +
              font-size: 16px;
         
     | 
| 
      
 74 
     | 
    
         
            +
            }
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
            .indexpage li {
         
     | 
| 
      
 77 
     | 
    
         
            +
              padding-left: 20px;
         
     | 
| 
      
 78 
     | 
    
         
            +
            }
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
            .indexpage ul > li {
         
     | 
| 
      
 81 
     | 
    
         
            +
              background: url(images/bullet_black.png) no-repeat left 4px;
         
     | 
| 
      
 82 
     | 
    
         
            +
            }
         
     | 
| 
      
 83 
     | 
    
         
            +
            .indexpage li.method {
         
     | 
| 
      
 84 
     | 
    
         
            +
              background: url(images/plugin.png) no-repeat left 4px;
         
     | 
| 
      
 85 
     | 
    
         
            +
            }
         
     | 
| 
      
 86 
     | 
    
         
            +
            .indexpage li.module {
         
     | 
| 
      
 87 
     | 
    
         
            +
              background: url(images/package.png) no-repeat left 4px;
         
     | 
| 
      
 88 
     | 
    
         
            +
            }
         
     | 
| 
      
 89 
     | 
    
         
            +
            .indexpage li.class {
         
     | 
| 
      
 90 
     | 
    
         
            +
              background: url(images/ruby.png) no-repeat left 4px;
         
     | 
| 
      
 91 
     | 
    
         
            +
            }
         
     | 
| 
      
 92 
     | 
    
         
            +
            .indexpage li.file {
         
     | 
| 
      
 93 
     | 
    
         
            +
              background: url(images/page_white_text.png) no-repeat left 4px;
         
     | 
| 
      
 94 
     | 
    
         
            +
            }
         
     | 
| 
      
 95 
     | 
    
         
            +
            .indexpage li li {
         
     | 
| 
      
 96 
     | 
    
         
            +
              background: url(images/tag_blue.png) no-repeat left 4px;
         
     | 
| 
      
 97 
     | 
    
         
            +
            }
         
     | 
| 
      
 98 
     | 
    
         
            +
            .indexpage li .toc-toggle {
         
     | 
| 
      
 99 
     | 
    
         
            +
              width: 16px;
         
     | 
| 
      
 100 
     | 
    
         
            +
              height: 16px;
         
     | 
| 
      
 101 
     | 
    
         
            +
              background: url(images/add.png) no-repeat;
         
     | 
| 
      
 102 
     | 
    
         
            +
            }
         
     | 
| 
      
 103 
     | 
    
         
            +
             
     | 
| 
      
 104 
     | 
    
         
            +
            .indexpage li .toc-toggle.open {
         
     | 
| 
      
 105 
     | 
    
         
            +
              background: url(images/delete.png) no-repeat;
         
     | 
| 
      
 106 
     | 
    
         
            +
            }
         
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
      
 108 
     | 
    
         
            +
            /* @end */
         
     | 
| 
      
 109 
     | 
    
         
            +
             
     | 
| 
      
 110 
     | 
    
         
            +
            /* @group Top-Level Structure */
         
     | 
| 
      
 111 
     | 
    
         
            +
             
     | 
| 
      
 112 
     | 
    
         
            +
            .project-section, #file-metadata, #class-metadata {
         
     | 
| 
      
 113 
     | 
    
         
            +
              display: block;
         
     | 
| 
      
 114 
     | 
    
         
            +
              background: #f5f5f5;
         
     | 
| 
      
 115 
     | 
    
         
            +
              margin-bottom: 1em;
         
     | 
| 
      
 116 
     | 
    
         
            +
              padding: 0.5em;
         
     | 
| 
      
 117 
     | 
    
         
            +
            }
         
     | 
| 
      
 118 
     | 
    
         
            +
            .project-section h3, #file-metadata h3, #class-metadata h3 {
         
     | 
| 
      
 119 
     | 
    
         
            +
              margin: 0;
         
     | 
| 
      
 120 
     | 
    
         
            +
            }
         
     | 
| 
      
 121 
     | 
    
         
            +
             
     | 
| 
      
 122 
     | 
    
         
            +
            #metadata {
         
     | 
| 
      
 123 
     | 
    
         
            +
              float: left;
         
     | 
| 
      
 124 
     | 
    
         
            +
              width: 280px;
         
     | 
| 
      
 125 
     | 
    
         
            +
            }
         
     | 
| 
      
 126 
     | 
    
         
            +
             
     | 
| 
      
 127 
     | 
    
         
            +
            #documentation {
         
     | 
| 
      
 128 
     | 
    
         
            +
              margin: 2em 1em 2em 300px;
         
     | 
| 
      
 129 
     | 
    
         
            +
            }
         
     | 
| 
      
 130 
     | 
    
         
            +
             
     | 
| 
      
 131 
     | 
    
         
            +
            #validator-badges {
         
     | 
| 
      
 132 
     | 
    
         
            +
              clear: both;
         
     | 
| 
      
 133 
     | 
    
         
            +
              margin: 1em 1em 2em;
         
     | 
| 
      
 134 
     | 
    
         
            +
              font-size: smaller;
         
     | 
| 
      
 135 
     | 
    
         
            +
            }
         
     | 
| 
      
 136 
     | 
    
         
            +
             
     | 
| 
      
 137 
     | 
    
         
            +
            /* @end */
         
     | 
| 
      
 138 
     | 
    
         
            +
             
     | 
| 
      
 139 
     | 
    
         
            +
            /* @group Metadata Section */
         
     | 
| 
      
 140 
     | 
    
         
            +
             
     | 
| 
      
 141 
     | 
    
         
            +
            #metadata ul,
         
     | 
| 
      
 142 
     | 
    
         
            +
            #metadata dl,
         
     | 
| 
      
 143 
     | 
    
         
            +
            #metadata p {
         
     | 
| 
      
 144 
     | 
    
         
            +
              padding: 0px;
         
     | 
| 
      
 145 
     | 
    
         
            +
              list-style: none;
         
     | 
| 
      
 146 
     | 
    
         
            +
            }
         
     | 
| 
      
 147 
     | 
    
         
            +
             
     | 
| 
      
 148 
     | 
    
         
            +
            dl.svninfo {
         
     | 
| 
      
 149 
     | 
    
         
            +
              color: #666;
         
     | 
| 
      
 150 
     | 
    
         
            +
              margin: 0;
         
     | 
| 
      
 151 
     | 
    
         
            +
            }
         
     | 
| 
      
 152 
     | 
    
         
            +
            dl.svninfo dt {
         
     | 
| 
      
 153 
     | 
    
         
            +
              font-weight: bold;
         
     | 
| 
      
 154 
     | 
    
         
            +
            }
         
     | 
| 
      
 155 
     | 
    
         
            +
             
     | 
| 
      
 156 
     | 
    
         
            +
            ul.link-list li {
         
     | 
| 
      
 157 
     | 
    
         
            +
              white-space: nowrap;
         
     | 
| 
      
 158 
     | 
    
         
            +
            }
         
     | 
| 
      
 159 
     | 
    
         
            +
            ul.link-list .type {
         
     | 
| 
      
 160 
     | 
    
         
            +
              font-size: 8px;
         
     | 
| 
      
 161 
     | 
    
         
            +
              text-transform: uppercase;
         
     | 
| 
      
 162 
     | 
    
         
            +
              color: white;
         
     | 
| 
      
 163 
     | 
    
         
            +
              background: #969696;
         
     | 
| 
      
 164 
     | 
    
         
            +
            }
         
     | 
| 
      
 165 
     | 
    
         
            +
             
     | 
| 
      
 166 
     | 
    
         
            +
            /* @end */
         
     | 
| 
      
 167 
     | 
    
         
            +
             
     | 
| 
      
 168 
     | 
    
         
            +
            /* @group Documentation Section */
         
     | 
| 
      
 169 
     | 
    
         
            +
             
     | 
| 
      
 170 
     | 
    
         
            +
            .note-list {
         
     | 
| 
      
 171 
     | 
    
         
            +
              margin: 8px 0;
         
     | 
| 
      
 172 
     | 
    
         
            +
            }
         
     | 
| 
      
 173 
     | 
    
         
            +
             
     | 
| 
      
 174 
     | 
    
         
            +
            .label-list {
         
     | 
| 
      
 175 
     | 
    
         
            +
              margin: 8px 1.5em;
         
     | 
| 
      
 176 
     | 
    
         
            +
              border: 1px solid #ccc;
         
     | 
| 
      
 177 
     | 
    
         
            +
            }
         
     | 
| 
      
 178 
     | 
    
         
            +
            .description .label-list {
         
     | 
| 
      
 179 
     | 
    
         
            +
              font-size: 14px;
         
     | 
| 
      
 180 
     | 
    
         
            +
            }
         
     | 
| 
      
 181 
     | 
    
         
            +
             
     | 
| 
      
 182 
     | 
    
         
            +
            .note-list dt {
         
     | 
| 
      
 183 
     | 
    
         
            +
              font-weight: bold;
         
     | 
| 
      
 184 
     | 
    
         
            +
            }
         
     | 
| 
      
 185 
     | 
    
         
            +
            .note-list dd {
         
     | 
| 
      
 186 
     | 
    
         
            +
            }
         
     | 
| 
      
 187 
     | 
    
         
            +
             
     | 
| 
      
 188 
     | 
    
         
            +
            .label-list dt {
         
     | 
| 
      
 189 
     | 
    
         
            +
              font-weight: bold;
         
     | 
| 
      
 190 
     | 
    
         
            +
              background: #ddd;
         
     | 
| 
      
 191 
     | 
    
         
            +
            }
         
     | 
| 
      
 192 
     | 
    
         
            +
            .label-list dd {
         
     | 
| 
      
 193 
     | 
    
         
            +
            }
         
     | 
| 
      
 194 
     | 
    
         
            +
            .label-list dd + dt,
         
     | 
| 
      
 195 
     | 
    
         
            +
            .note-list dd + dt {
         
     | 
| 
      
 196 
     | 
    
         
            +
              margin-top: 0.7em;
         
     | 
| 
      
 197 
     | 
    
         
            +
            }
         
     | 
| 
      
 198 
     | 
    
         
            +
             
     | 
| 
      
 199 
     | 
    
         
            +
            #documentation .section {
         
     | 
| 
      
 200 
     | 
    
         
            +
              font-size: 90%;
         
     | 
| 
      
 201 
     | 
    
         
            +
            }
         
     | 
| 
      
 202 
     | 
    
         
            +
             
     | 
| 
      
 203 
     | 
    
         
            +
            #documentation h2.section-header {
         
     | 
| 
      
 204 
     | 
    
         
            +
              color: #333;
         
     | 
| 
      
 205 
     | 
    
         
            +
              font-size: 175%;
         
     | 
| 
      
 206 
     | 
    
         
            +
            }
         
     | 
| 
      
 207 
     | 
    
         
            +
             
     | 
| 
      
 208 
     | 
    
         
            +
            .documentation-section-title {
         
     | 
| 
      
 209 
     | 
    
         
            +
              position: relative;
         
     | 
| 
      
 210 
     | 
    
         
            +
            }
         
     | 
| 
      
 211 
     | 
    
         
            +
            .documentation-section-title .section-click-top {
         
     | 
| 
      
 212 
     | 
    
         
            +
              position: absolute;
         
     | 
| 
      
 213 
     | 
    
         
            +
              top: 6px;
         
     | 
| 
      
 214 
     | 
    
         
            +
              right: 12px;
         
     | 
| 
      
 215 
     | 
    
         
            +
              font-size: 10px;
         
     | 
| 
      
 216 
     | 
    
         
            +
              visibility: hidden;
         
     | 
| 
      
 217 
     | 
    
         
            +
            }
         
     | 
| 
      
 218 
     | 
    
         
            +
             
     | 
| 
      
 219 
     | 
    
         
            +
            .documentation-section-title:hover .section-click-top {
         
     | 
| 
      
 220 
     | 
    
         
            +
              visibility: visible;
         
     | 
| 
      
 221 
     | 
    
         
            +
            }
         
     | 
| 
      
 222 
     | 
    
         
            +
             
     | 
| 
      
 223 
     | 
    
         
            +
            #documentation h3.section-header {
         
     | 
| 
      
 224 
     | 
    
         
            +
              color: #333;
         
     | 
| 
      
 225 
     | 
    
         
            +
              font-size: 150%;
         
     | 
| 
      
 226 
     | 
    
         
            +
            }
         
     | 
| 
      
 227 
     | 
    
         
            +
             
     | 
| 
      
 228 
     | 
    
         
            +
            #constants-list > dl,
         
     | 
| 
      
 229 
     | 
    
         
            +
            #attributes-list > dl {
         
     | 
| 
      
 230 
     | 
    
         
            +
              margin: 1em 0 2em;
         
     | 
| 
      
 231 
     | 
    
         
            +
              border: 0;
         
     | 
| 
      
 232 
     | 
    
         
            +
            }
         
     | 
| 
      
 233 
     | 
    
         
            +
            #constants-list > dl dt,
         
     | 
| 
      
 234 
     | 
    
         
            +
            #attributes-list > dl dt {
         
     | 
| 
      
 235 
     | 
    
         
            +
              font-weight: bold;
         
     | 
| 
      
 236 
     | 
    
         
            +
              font-family: Monaco, "Andale Mono";
         
     | 
| 
      
 237 
     | 
    
         
            +
              background: inherit;
         
     | 
| 
      
 238 
     | 
    
         
            +
            }
         
     | 
| 
      
 239 
     | 
    
         
            +
            #constants-list > dl dt a,
         
     | 
| 
      
 240 
     | 
    
         
            +
            #attributes-list > dl dt a {
         
     | 
| 
      
 241 
     | 
    
         
            +
              color: inherit;
         
     | 
| 
      
 242 
     | 
    
         
            +
            }
         
     | 
| 
      
 243 
     | 
    
         
            +
            #constants-list > dl dd,
         
     | 
| 
      
 244 
     | 
    
         
            +
            #attributes-list > dl dd {
         
     | 
| 
      
 245 
     | 
    
         
            +
              margin: 0 0 1em 0;
         
     | 
| 
      
 246 
     | 
    
         
            +
              color: #666;
         
     | 
| 
      
 247 
     | 
    
         
            +
            }
         
     | 
| 
      
 248 
     | 
    
         
            +
             
     | 
| 
      
 249 
     | 
    
         
            +
            .documentation-section h2 {
         
     | 
| 
      
 250 
     | 
    
         
            +
              position: relative;
         
     | 
| 
      
 251 
     | 
    
         
            +
            }
         
     | 
| 
      
 252 
     | 
    
         
            +
             
     | 
| 
      
 253 
     | 
    
         
            +
            .documentation-section h2 a {
         
     | 
| 
      
 254 
     | 
    
         
            +
              position: absolute;
         
     | 
| 
      
 255 
     | 
    
         
            +
              top: 8px;
         
     | 
| 
      
 256 
     | 
    
         
            +
              right: 10px;
         
     | 
| 
      
 257 
     | 
    
         
            +
              font-size: 12px;
         
     | 
| 
      
 258 
     | 
    
         
            +
              color: #9b9877;
         
     | 
| 
      
 259 
     | 
    
         
            +
              visibility: hidden;
         
     | 
| 
      
 260 
     | 
    
         
            +
            }
         
     | 
| 
      
 261 
     | 
    
         
            +
             
     | 
| 
      
 262 
     | 
    
         
            +
            .documentation-section h2:hover a {
         
     | 
| 
      
 263 
     | 
    
         
            +
              visibility: visible;
         
     | 
| 
      
 264 
     | 
    
         
            +
            }
         
     | 
| 
      
 265 
     | 
    
         
            +
             
     | 
| 
      
 266 
     | 
    
         
            +
            /* @group Method Details */
         
     | 
| 
      
 267 
     | 
    
         
            +
             
     | 
| 
      
 268 
     | 
    
         
            +
            #documentation .method-source-code {
         
     | 
| 
      
 269 
     | 
    
         
            +
              display: none;
         
     | 
| 
      
 270 
     | 
    
         
            +
            }
         
     | 
| 
      
 271 
     | 
    
         
            +
             
     | 
| 
      
 272 
     | 
    
         
            +
            #documentation .method-detail {
         
     | 
| 
      
 273 
     | 
    
         
            +
              margin: 0.2em 0.2em;
         
     | 
| 
      
 274 
     | 
    
         
            +
              padding: 0.5em;
         
     | 
| 
      
 275 
     | 
    
         
            +
            }
         
     | 
| 
      
 276 
     | 
    
         
            +
            #documentation .method-detail:hover {
         
     | 
| 
      
 277 
     | 
    
         
            +
              background-color: #f5f5f5;
         
     | 
| 
      
 278 
     | 
    
         
            +
            }
         
     | 
| 
      
 279 
     | 
    
         
            +
            #documentation .method-heading {
         
     | 
| 
      
 280 
     | 
    
         
            +
              cursor: pointer;
         
     | 
| 
      
 281 
     | 
    
         
            +
              position: relative;
         
     | 
| 
      
 282 
     | 
    
         
            +
              font-size: 125%;
         
     | 
| 
      
 283 
     | 
    
         
            +
              line-height: 125%;
         
     | 
| 
      
 284 
     | 
    
         
            +
              font-weight: bold;
         
     | 
| 
      
 285 
     | 
    
         
            +
              color: #333;
         
     | 
| 
      
 286 
     | 
    
         
            +
              background: url(images/brick.png) no-repeat left bottom;
         
     | 
| 
      
 287 
     | 
    
         
            +
              padding-left: 20px;
         
     | 
| 
      
 288 
     | 
    
         
            +
            }
         
     | 
| 
      
 289 
     | 
    
         
            +
            #documentation .method-heading :link,
         
     | 
| 
      
 290 
     | 
    
         
            +
            #documentation .method-heading :visited {
         
     | 
| 
      
 291 
     | 
    
         
            +
              color: inherit;
         
     | 
| 
      
 292 
     | 
    
         
            +
            }
         
     | 
| 
      
 293 
     | 
    
         
            +
            #documentation .method-click-advice {
         
     | 
| 
      
 294 
     | 
    
         
            +
              position: absolute;
         
     | 
| 
      
 295 
     | 
    
         
            +
              right: 5px;
         
     | 
| 
      
 296 
     | 
    
         
            +
              font-size: 10px;
         
     | 
| 
      
 297 
     | 
    
         
            +
              color: #aaa;
         
     | 
| 
      
 298 
     | 
    
         
            +
              visibility: hidden;
         
     | 
| 
      
 299 
     | 
    
         
            +
              background: url(images/zoom.png) no-repeat right 5px;
         
     | 
| 
      
 300 
     | 
    
         
            +
              padding-right: 20px;
         
     | 
| 
      
 301 
     | 
    
         
            +
              overflow: show;
         
     | 
| 
      
 302 
     | 
    
         
            +
            }
         
     | 
| 
      
 303 
     | 
    
         
            +
            #documentation .method-heading:hover .method-click-advice {
         
     | 
| 
      
 304 
     | 
    
         
            +
              visibility: visible;
         
     | 
| 
      
 305 
     | 
    
         
            +
            }
         
     | 
| 
      
 306 
     | 
    
         
            +
             
     | 
| 
      
 307 
     | 
    
         
            +
            #documentation .method-alias .method-heading {
         
     | 
| 
      
 308 
     | 
    
         
            +
              color: #666;
         
     | 
| 
      
 309 
     | 
    
         
            +
              background: url(images/brick_link.png) no-repeat left bottom;
         
     | 
| 
      
 310 
     | 
    
         
            +
            }
         
     | 
| 
      
 311 
     | 
    
         
            +
             
     | 
| 
      
 312 
     | 
    
         
            +
            #documentation .method-description,
         
     | 
| 
      
 313 
     | 
    
         
            +
            #documentation .aliases {
         
     | 
| 
      
 314 
     | 
    
         
            +
              margin: 0 20px;
         
     | 
| 
      
 315 
     | 
    
         
            +
              color: #666;
         
     | 
| 
      
 316 
     | 
    
         
            +
            }
         
     | 
| 
      
 317 
     | 
    
         
            +
             
     | 
| 
      
 318 
     | 
    
         
            +
            #documentation .method-description p,
         
     | 
| 
      
 319 
     | 
    
         
            +
            #documentation .aliases p {
         
     | 
| 
      
 320 
     | 
    
         
            +
              line-height: 1.2em;
         
     | 
| 
      
 321 
     | 
    
         
            +
            }
         
     | 
| 
      
 322 
     | 
    
         
            +
             
     | 
| 
      
 323 
     | 
    
         
            +
            #documentation .aliases {
         
     | 
| 
      
 324 
     | 
    
         
            +
              font-style: italic;
         
     | 
| 
      
 325 
     | 
    
         
            +
              cursor: default;
         
     | 
| 
      
 326 
     | 
    
         
            +
            }
         
     | 
| 
      
 327 
     | 
    
         
            +
            #documentation .method-description p {
         
     | 
| 
      
 328 
     | 
    
         
            +
              margin-bottom: 0.5em;
         
     | 
| 
      
 329 
     | 
    
         
            +
            }
         
     | 
| 
      
 330 
     | 
    
         
            +
            #documentation .method-description ul {
         
     | 
| 
      
 331 
     | 
    
         
            +
              margin-left: 1.5em;
         
     | 
| 
      
 332 
     | 
    
         
            +
            }
         
     | 
| 
      
 333 
     | 
    
         
            +
             
     | 
| 
      
 334 
     | 
    
         
            +
            #documentation .attribute-method-heading {
         
     | 
| 
      
 335 
     | 
    
         
            +
              background: url(images/tag_green.png) no-repeat left bottom;
         
     | 
| 
      
 336 
     | 
    
         
            +
            }
         
     | 
| 
      
 337 
     | 
    
         
            +
            #documentation #attribute-method-details .method-detail:hover {
         
     | 
| 
      
 338 
     | 
    
         
            +
              background-color: transparent;
         
     | 
| 
      
 339 
     | 
    
         
            +
              cursor: default;
         
     | 
| 
      
 340 
     | 
    
         
            +
            }
         
     | 
| 
      
 341 
     | 
    
         
            +
            #documentation .attribute-access-type {
         
     | 
| 
      
 342 
     | 
    
         
            +
              font-size: 60%;
         
     | 
| 
      
 343 
     | 
    
         
            +
              text-transform: uppercase;
         
     | 
| 
      
 344 
     | 
    
         
            +
              vertical-align: super;
         
     | 
| 
      
 345 
     | 
    
         
            +
            }
         
     | 
| 
      
 346 
     | 
    
         
            +
             
     | 
| 
      
 347 
     | 
    
         
            +
            .method-section .method-source-code {
         
     | 
| 
      
 348 
     | 
    
         
            +
              background: white;
         
     | 
| 
      
 349 
     | 
    
         
            +
            }
         
     | 
| 
      
 350 
     | 
    
         
            +
             
     | 
| 
      
 351 
     | 
    
         
            +
            /* @group Source Code */
         
     | 
| 
      
 352 
     | 
    
         
            +
             
     | 
| 
      
 353 
     | 
    
         
            +
            .ruby-constant .ruby-keyword .ruby-ivar .ruby-operator .ruby-identifier
         
     | 
| 
      
 354 
     | 
    
         
            +
            .ruby-node .ruby-comment .ruby-regexp .ruby-value {
         
     | 
| 
      
 355 
     | 
    
         
            +
              background: transparent;
         
     | 
| 
      
 356 
     | 
    
         
            +
            }
         
     | 
| 
      
 357 
     | 
    
         
            +
             
     | 
| 
      
 358 
     | 
    
         
            +
            /* Thanks GitHub!!! */
         
     | 
| 
      
 359 
     | 
    
         
            +
            .ruby-constant   { color: #458; font-weight: bold; }
         
     | 
| 
      
 360 
     | 
    
         
            +
            .ruby-keyword    { color: black; font-weight: bold; }
         
     | 
| 
      
 361 
     | 
    
         
            +
            .ruby-ivar       { color: teal; }
         
     | 
| 
      
 362 
     | 
    
         
            +
            .ruby-operator   { color: #000; }
         
     | 
| 
      
 363 
     | 
    
         
            +
            .ruby-identifier { color: black; }
         
     | 
| 
      
 364 
     | 
    
         
            +
            .ruby-node       { color: red; }
         
     | 
| 
      
 365 
     | 
    
         
            +
            .ruby-comment    { color: #998; font-weight: bold; }
         
     | 
| 
      
 366 
     | 
    
         
            +
            .ruby-regexp     { color: #009926; }
         
     | 
| 
      
 367 
     | 
    
         
            +
            .ruby-value      { color: #099; }
         
     | 
| 
      
 368 
     | 
    
         
            +
            .ruby-string     { color: red; }
         
     | 
| 
      
 369 
     | 
    
         
            +
             
     | 
| 
      
 370 
     | 
    
         
            +
            /* @group search results */
         
     | 
| 
      
 371 
     | 
    
         
            +
             
     | 
| 
      
 372 
     | 
    
         
            +
            #search-section .section-header {
         
     | 
| 
      
 373 
     | 
    
         
            +
              margin: 0;
         
     | 
| 
      
 374 
     | 
    
         
            +
              padding: 0;
         
     | 
| 
      
 375 
     | 
    
         
            +
            }
         
     | 
| 
      
 376 
     | 
    
         
            +
             
     | 
| 
      
 377 
     | 
    
         
            +
            #search-results {
         
     | 
| 
      
 378 
     | 
    
         
            +
              width: 100%;
         
     | 
| 
      
 379 
     | 
    
         
            +
              list-style: none;
         
     | 
| 
      
 380 
     | 
    
         
            +
              margin: 0;
         
     | 
| 
      
 381 
     | 
    
         
            +
              padding: 0;
         
     | 
| 
      
 382 
     | 
    
         
            +
            }
         
     | 
| 
      
 383 
     | 
    
         
            +
             
     | 
| 
      
 384 
     | 
    
         
            +
            #search-results h1 {
         
     | 
| 
      
 385 
     | 
    
         
            +
              font-size: 1em;
         
     | 
| 
      
 386 
     | 
    
         
            +
              font-weight: normal;
         
     | 
| 
      
 387 
     | 
    
         
            +
              text-shadow: none;
         
     | 
| 
      
 388 
     | 
    
         
            +
            }
         
     | 
| 
      
 389 
     | 
    
         
            +
             
     | 
| 
      
 390 
     | 
    
         
            +
            #search-results .current {
         
     | 
| 
      
 391 
     | 
    
         
            +
              background: #eee;
         
     | 
| 
      
 392 
     | 
    
         
            +
            }
         
     | 
| 
      
 393 
     | 
    
         
            +
             
     | 
| 
      
 394 
     | 
    
         
            +
            #search-results li {
         
     | 
| 
      
 395 
     | 
    
         
            +
              list-style: none;
         
     | 
| 
      
 396 
     | 
    
         
            +
              line-height: 1em;
         
     | 
| 
      
 397 
     | 
    
         
            +
              padding: 0.5em;
         
     | 
| 
      
 398 
     | 
    
         
            +
              border-bottom: 1px solid black;
         
     | 
| 
      
 399 
     | 
    
         
            +
            }
         
     | 
| 
      
 400 
     | 
    
         
            +
             
     | 
| 
      
 401 
     | 
    
         
            +
            #search-results .search-namespace {
         
     | 
| 
      
 402 
     | 
    
         
            +
              font-weight: bold;
         
     | 
| 
      
 403 
     | 
    
         
            +
            }
         
     | 
| 
      
 404 
     | 
    
         
            +
             
     | 
| 
      
 405 
     | 
    
         
            +
            #search-results li em {
         
     | 
| 
      
 406 
     | 
    
         
            +
              background: yellow;
         
     | 
| 
      
 407 
     | 
    
         
            +
              font-style: normal;
         
     | 
| 
      
 408 
     | 
    
         
            +
            }
         
     | 
| 
      
 409 
     | 
    
         
            +
             
     | 
| 
      
 410 
     | 
    
         
            +
            #search-results pre {
         
     | 
| 
      
 411 
     | 
    
         
            +
              margin: 0.5em;
         
     | 
| 
      
 412 
     | 
    
         
            +
            }
         
     |