The official Ruby SDK for Optidash API
Head over to the Optidash API docs for a full API reference.
$ gem install optidash
You may also choose your preferred response method on a per-request basis. By default, the Optidash API will return a JSON response with rich metadata pertaining to input and output images. Alternatively, you can use binary responses. When enabled, the API will respond with a full binary representation of the resulting (output) image. This Ruby integration exposes two convenience methods for interacting with binary responses:
Here is a quick example of uploading a local file for optimization and processing. It calls
.toJSON() at a final step and instructs the API to return a JSON response.
require "optidash" # Pass your Optidash API Key to the constructor opti = Optidash.new("your-api-key") # Upload an image from disk, resize it to 100 x 75, # automatically enhance, and adjust sharpness parameter. # You'll find the full JSON metadata within the `meta` variable err, meta = ( opti .upload("path/to/input.jpg") .optimize( compression: "medium" ) .resize( width: 100, height: 75 ) .auto( enhance: true ) .adjust( unsharp: 10 ) .to_json() ) abort(err) if err
If you already have your source visuals publicly available online, we recommend using Image Fetch by default. That way you only have to send a JSON payload containing image URL and processing steps. This method is also much faster than uploading a full binary representation of the image.
require "optidash" # Pass your Optidash API Key to the constructor opti = Optidash.new("your-api-key") # Provide a publicly available image URL with `.fetch()` method, # apply Gaussian blur using highly optimized PNG as the output format. # We'll also use `.toFile()` method and stream the output image to disk err, meta = ( opti .fetch("https://www.website.com/image.jpg") .optimize( compression: "medium" ) .filter( blur: ( mode: "gaussian", value: 10 } ) .output( format: "png" ) .to_file("path/to/output.png") ) abort(err) if err