![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
This package includes a variety of add-on components for Rack, a Ruby web server interface:
Rack::Access
- Limits access based on IP addressRack::Backstage
- Returns content of specified file if it exists, which makes it convenient for putting up maintenance pages.Rack::BounceFavicon
- Returns a 404 for requests to /favicon.ico
Rack::CSSHTTPRequest
- Adds CSSHTTPRequest support by encoding responses as CSS for cross-site AJAX-style data loadingRack::Callbacks
- Implements DSL for pure before/after filter like Middlewares.Rack::Cookies
- Adds simple cookie jar hash to envRack::Deflect
- Helps protect against DoS attacks.Rack::Evil
- Lets the rack application return a response to the client from any place.Rack::HostMeta
- Configures /host-meta
using a blockRack::JSONBodyParser
- Adds JSON request bodies to the Rack parameters hash.Rack::JSONP
- Adds JSON-P support by stripping out the callback param and padding the response with the appropriate callback format.Rack::LazyConditionalGet
- Caches a global Last-Modified
date and updates it each time there is a request that is not GET
or HEAD
.Rack::LighttpdScriptNameFix
- Fixes how lighttpd sets the SCRIPT_NAME
and PATH_INFO
variables in certain configurations.Rack::Locale
- Detects the client locale using the Accept-Language request header and sets a rack.locale
variable in the environment.Rack::MailExceptions
- Rescues exceptions raised from the app and sends a useful email with the exception, stacktrace, and contents of the environment.Rack::NestedParams
- parses form params with subscripts (e.g., * "post[title]=Hello
") into a nested/recursive Hash structure (based on Rails' implementation).Rack::NotFound
- A default 404 application.Rack::PostBodyContentTypeParser
- [Deprecated]: Adds support for JSON request bodies. The Rack parameter hash is populated by deserializing the JSON data provided in the request body when the Content-Type is application/jsonRack::Printout
- Prints the environment and the response per requestRack::ProcTitle
- Displays request information in process title ($0
) for monitoring/inspection with ps(1).Rack::Profiler
- Uses ruby-prof to measure request time.Rack::RelativeRedirect
- Transforms relative paths in redirects to absolute URLs.Rack::ResponseCache
- Caches responses to requests without query strings to Disk or a user provided Ruby object. Similar to Rails' page caching.Rack::ResponseHeaders
- Manipulates response headers object at runtimeRack::Signals
- Installs signal handlers that are safely processed after a requestRack::SimpleEndpoint
- Creates simple endpoints with routing rules, similar to Sinatra actionsRack::StaticCache
- Modifies the response headers to facilitiate client and proxy caching for static files that minimizes http requests and improves overall load times for second time visitors.Rack::TimeZone
- Detects the client's timezone using JavaScript and sets a variable in Rack's environment with the offset from UTC.Rack::TryStatic
- Tries to match request to a static fileGit is the quickest way to the rack-contrib sources:
git clone git://github.com/rack/rack-contrib.git
Gems are available too:
gem install rack-contrib
Requiring 'rack/contrib'
will add autoloads to the Rack modules for all of the
components included. The following example shows what a simple rackup
(config.ru
) file might look like:
require 'rack'
require 'rack/contrib'
use Rack::Profiler if ENV['RACK_ENV'] == 'development'
use Rack::ETag
use Rack::MailExceptions
run theapp
This package is semver compliant; you should use a
pessimistic version constraint (~>
) against the relevant 2.x
version of
this gem.
This version of rack-contrib
is only compatible with rack
2.x. If you
are using rack
1.x, you will need to use rack-contrib
1.x. A suitable
pessimistic version constraint (~>
) is recommended.
To contribute to the project, begin by cloning the repo and installing the necessary gems:
gem install json rack ruby-prof test-spec test-unit
To run the entire test suite, run
rake test
To run a specific component's tests run
specrb -Ilib:test -w test/spec_rack_thecomponent.rb
This works on ruby 1.8.7 but has problems under ruby 1.9.x.
TODO: instructions for 1.9.x and include bundler
The criteria for middleware being included in this project are roughly as follows:
These criteria were introduced several years after the start of the project, so some of the included middleware may not meet all of them. In particular, several middleware have external dependencies. It is possible that in some future release of rack-contrib, middleware with external depencies will be removed from the project.
When submitting code keep the above criteria in mind and also see the code guidelines in CONTRIBUTING.md.
To report a security vulnerability, please use the Tidelift security contact. Tidelift will coordinate the fix and disclosure.
FAQs
Unknown package
We found that rack-contrib demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.