Validate http request parameters (or others) by defined rule, without models.
A Ruby library to log and analyse HTTP requests using the Access Watch cloud service.
Log HTTP request queue time to statsd when the HTTP_X_REQUEST_START is set.
\Unicorn is an HTTP server for Rack applications designed to only serve fast clients on low-latency, high-bandwidth connections and take advantage of features in Unix/Unix-like kernels. Slow clients should only be served by placing a reverse proxy capable of fully buffering both the the request and response in between \Unicorn and slow clients.
Rat Hole is a handy library for creating a rack compliant http proxy that allows you to modify the request from the user and the response from the server.
Middleware instrumentation for logging HTTP request-response pairs to a HAR file.
A class for handling WebDAV requests through WEBrick, Ruby's built-in HTTP server toolkit. This class was originally a part of Sarada, a configurable WebDAV server available at: http://sugi.nemui.org/pub/ruby/sarada/.
Make HTTP requests and handle its responses using simple method calls. Restool turns your HTTP API and its responses into Ruby interfaces.
Tom uses Goliath to dispatch HTTP requests to multiple other APIs (via Adapters) in parallel. In a next step, a Merger merges the result and responds to the clients request.
AcornCache is a Ruby HTTP proxy caching library that is lightweight, configurable and can be easily integrated with any Rack-based web application. AcornCache allows you to improve page load times and lighten the load on your server by allowing you to implement an in-memory cache shared by every client requesting a resource on your server.
Industrial-strength scaffolding for Ruby on Rails application development. A drop-in replacement for the scaffold generator that produces production-ready controllers that are safe from state-changing HTTP GET requests and that have streamlined URLs.
(Fork of official typhoeus that enables cookie support) Like a modern code version of the mythical beast with 100 serpent heads, Typhoeus runs HTTP requests in parallel while cleanly encapsulating handling logic.
Emmy support em-http-request, thin, savon, mysql2 etc.
HTTPal is a Ruby HTTP library that provides browser-like functionality in terms of saving cookies between requests and proper REFERER handling.
EventMachine based HTTP Request interface
Rack Middleware for authenticating requests via an http header
http_resque helps you cleanly write integration tests for your Resque jobs. It's a thin HTTP API around the Resque daemon. With it you can manipulate the contents of the Resque queues using HTTP requests.
Provides a wrapper to external requests providing JSON parsing, logging, metrics, and more.
A simple and modular rack middleware to track http requests
Pmux gateway is an executor for Pmux through HTTP request
CORTO - your url shortner gem ----------------------------- - Yet another url shortner? corto is a ruby gem that shorten a URL for you and store the result in a SQLite3 database. Why the world needs another url shortener? Well, true to be told I don't know the answer and I'm pretty sure this code is far away from being revolutionary. However... corto is funniest! - Usage Using corto as standalone utility is straightforward. In case you want to shorten an url you just launch the program with the url as parameter. % bin/corto http://www.armoredcode.com % corto: http://www.armoredcode.com shrunk as ji5jnu Please note that you've to supply a valid URL, since internally it's parsed and rejected anything but HTTP and HTTPS verbs. % bin/corto funnystatementhere % corto: it seems funnystatementhere is not a valid url to shrink If you want to deflate a shrunk url, you have just to specify the '-d' flag this way. % bin/corto -d ji5jnu % corto: ji5jnu deflated is http://www.armoredcode.com Super easy, isn't it? Now, go ahead and shrink the web! - API A simple corto shortening session start with class initialization, optionally telling which SQLite3 database to use and then mastering the parameter. require 'corto' ... corto = Corto.new # we're now saying the gem we want to use it's internal database stored in db/corto.db s = corto.shrink('http://www.armoredcode.com') # s now stores the shrinked url that is already added to database if not present. # If you'll pass an invalid url to shrink(), nil will be returned instead Deflating a URL is super easy as well # The deflate process is quite straightforward as well d = corto.deflate(s) # d has now the deflated url or nil if that url was not found You can also count how many urls contained into db # If you want to know how many urls you have in your database, just call the count() method. puts 'Hey, I have stored ' + corto.count() + ' urls' And finally you can purge your db # Tired of your database and time for a massive clean has come? Let's purge the db. corto.purge # corto.count == 0 now - Note on Patches/Pull Requests * Fork the project. * Make your feature addition or bug fix. * Add tests for it. This is important so I don’t break it in a future version unintentionally. * Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull) * Send me a pull request. Bonus points for topic branches. - Copyright Copyright © 2011 Paolo Perego. See LICENSE for details.
Like a modern code version of the mythical beast with 100 serpent heads, Typhoeus runs HTTP requests in parallel while cleanly encapsulating handling logic.
Web proxy based on Sinatra and VCR to record and replay all the http requests, useful for end to end tests.
EventMachine based HTTP Request interface
Compose declarative, component-based responses to HTTP requests
Request a certain HTTP status code to be returned
A tool for faking responses to HTTP requests
Compressit uses the yuicompressor-2.4.6.jar java file created by Yahoo to compress all of your .css and .js files into single compressed files respectively. This not only reduces the size of your files, but also results in less http requests at load time resulting in an overall faster site.
Hydna exposes a straightforward API over HTTP. It uses a single resource; sending messages is done by making POST requests to the same URI you'd use to connect to Hydna in any client library.
It runs a HTTP server, exposes in internet via ngrok, and records the requests
Rat Hole is a handy library for creating a rack compliant http proxy that allows you to modify the request from the user and the response from the server.
A rack middleware library that allows for cookies to be passed through form parameters. Specifically, it merges the specified form parameters into the Cookie header of an http request. It gets around the problem of having a flash application which interacts with a web application that uses cookie based sessions.
This Api works with the magento rest api it supports GET,PUT,POST http requests
A fast and functional (API and paradigm) HTTP client, using only Ruby's standard library as dependency. e.g: Net::HTTP and URI.
Switch your Rails database on the fly for each HTTP request. Useful for integration and acceptance testing (test isolation & state management).
A small HTTP configuration server. Eats YAML, returns JSON, XML, YAML and rb. Restricts requests to local subnet.
http proxy with api for modifying requests passing through
Communicate with Amazon DynamoDB. Raw access to the full API without having to handle temporary credentials or HTTP requests by yourself.
Rails raises a CookieOverflow exception when the total size of the incoming request's cookie crosses a certain threshold - currently set as 4096 bytes. While it is not advisable to store or pass around such large data in cookies, sometimes, bad actors can try to send large cookie payloads to your application to see if your systems are able to handle it. If not handled, your application would end up raising a large number of 500 exceptions. This gem handles the exception gracefully and responds with a 422 Unprocessable Entity HTTP status code.
A simple API to create HTTP Request tests.
Log HTTP requests to MongoDB for debugging and access them via the web
Uses Typhoeus to make HTTP requests to the Yahoo! Finance API in parallel.
Monkey patches the Net::HTTP standard library to add the HTTP REPORT Request class that integrates with the rest of the Net::HTTP suite.
HTTP client for making requests against a set of hosts
Rails Engine that provides workers implemented as http streaming requests.
\Unicorn is an HTTP server for Rack applications designed to only serve fast clients on low-latency, high-bandwidth connections and take advantage of features in Unix/Unix-like kernels. Slow clients should only be served by placing a reverse proxy capable of fully buffering both the the request and response in between \Unicorn and slow clients.
Enables the creation of scenarios that involve creating a rails project, starting and stoppping of servers, generating projects, editing files, issuing http requests, running of commands, etc. Output is captured as a single HTML file that can be viewed locally or uploaded. Additionally, there is support for verification, in the form of defining assertions based on selections (typically CSS) against the generated HTML.
http://www.engineyard.com/blog/2010/extending-rails-3-with-railties/ http://www.igvita.com/2010/08/04/rails-3-internals-railtie-creating-plugins/ h1. Morning Glory Morning Glory is comprised of a rake task and helper methods that manages the deployment of static assets into an Amazon CloudFront CDN's S3 Bucket, improving the performance of static assets on your Rails web applications. _NOTE: You will require an Amazon Web Services (AWS) account in order to use this gem. Specially: S3 for storing the files you wish to distribute, and CloudFront for CDN distribution of those files._ This version of Morning Glory works with Rails 3.x and Ruby 1.9.x h2. What does it do? Morning Glory provides an easy way to deploy Ruby on Rails application assets to the Amazon CloudFront CDN. It solves a number of common issues with S3/CloudFront. For instance, CloudFront won't automatically expire old assets stored on edge nodes when you redeploy new assets (the Cloudfront expiry time is 24 hours minimum). To fix this Morning Glory will automatically namespace asset releases for you, then update all references to those renamed assets within your stylesheets ensuring there are no broken asset links. It also provides a helper method to rewrite all standard Rails asset helper generated URLs to your CloudFront CDN distributions, as well as handling switching between HTTP and HTTPS. Morning Glory was also built with SASS (Syntactically Awesome Stylesheets) in mind. If you use Sass for your stylesheets they will automatically be built before deployment to the CDN. See http://sass-lang.com/ for more information on Sass.s h2. What it doesn't do Morning Glory cannot configure your CloudFront distributions for you automatically. You will manually have to login to your AWS Management Console account, "https://console.aws.amazon.com/cloudfront/home":https://console.aws.amazon.com/cloudfront/home, and set up a distribution pointing to an S3 Bucket. h2. Installation <pre> gem 'morning_glory' </pre> h2. Usage Morning Glory provides it's functionality via rake tasks. You'll need to specify the target rails environment configuration you want to deploy for by using the @RAILS_ENV={env}@ parameter (for example, @RAILS_ENV=production@). <pre> rake morning_glory:cloudfront:deploy RAILS_ENV={YOUR_TARGET_ENVIRONMENT} </pre> h2. Configuration h3. The Morning Glory configuration file, @config/morning_glory.yml@ You can specify a configuration section for every rails environment (production, staging, testing, development). This section can have the following properties defined: <pre> --- production: enabled: true # Is MorningGlory enabled for this environment? bucket: cdn.production.foo.com # The bucket to deploy your assets into s3_logging_enabled: true # Log the deployment to S3 revision: "20100317134627" # The revision prefix. This timestamp automatically generateed on deployment delete_prev_rev: true # Delete the previous asset release (save on S3 storage space) </pre> h3. The Amazon S3 authentication keys configuration file, @config/s3.yml@ This file provides the access credentials for your Amazon AWS S3 account. You can configure keys for all your environments (production, staging, testing, development). <pre> --- production: access_key_id: YOUR_ACCESS_KEY secret_access_key: YOUR_SECRET_ACCESS_KEY </pre> Note: If you are deploying your system to Heroku, you can configure your Amazon AWS S3 information with the environment variables S3_KEY and S3_SECRET instead of using a configuration file. h3. Set up an asset_host For each environment that you'd like to utilise the CloudFront CDN for you'll need to define the asset_host within the @config/environments/{ENVIRONMENT}.rb@ configuration file. As of June 2010 AWS supports HTTPS requests on the CloudFront CDN, so you no longer have to worry about switching servers. (Yay!) h4. Example config/environments/production.rb @asset_host@ snippet: Here we're targeting a CNAME domain with HTTP support. <pre> ActionController::Base.asset_host = Proc.new { |source, request| if request.ssl? "#{request.protocol}#{request.host_with_port}" else "#{request.protocol}assets.example.com" end } </pre> h3. Why do we have to use a revision-number/namespace/timestamp? Once an asset has been deployed to the Amazon Cloudfront edge servers it cannot be modified - the version exists until it expires (minimum of 24 hours). To get around this we need to prefix the asset path with a revision of some sort - in MorningGlory's case we use a timestamp. That way you can deploy many times during a 24 hour period and always have your latest revision available on your web site. h2. Dependencies h3. AWS S3 Required for uploading the assets to the Amazon Web Services S3 buckets. See "http://amazon.rubyforge.org/":http://amazon.rubyforge.org/ for more documentation on installation. h2. About the name Perhaps not what you'd expect; a "Morning Glory":http://en.wikipedia.org/wiki/Morning_Glory_cloud is a rare cloud formation observed by glider pilots in Australia (see my side project, "YourFlightLog.com for flight-logging software for paraglider and hang-glider pilots":http://www.yourflightlog.com, from which the Morning Glory plugin was originally extracted). Copyright (c) 2010 "@AdamBurmister":http://twitter.com/adamburmister/, released under the MIT license
Ever wondered what HTTP requests the Ruby gem you are using to connect to a third party API is making? Use HTTP Spy to see what is going on behind the scenes.
Fleck is a library for syncronous and asyncronous communication over Message Queues services. Unlike a common HTTP communication, Fleck requests and responses are pure JSON messages.