MaxCDN is Hiring!

Do you like building cool stuff? Do APIs keep you up at night? We’re looking for our next superstar hacker and you could be it. Interested? Check out our job posting on stackoverflow.

MaxCDN REST Web Services Ruby Client

Build Status   Gem Version

Installation

bash gem install maxcdn

Requires Ruby 1.9.2+ (see: Travis for passing Ruby versions.)

With Bundler

bundle init echo "gem 'maxcdn'" >> Gemfile bundle install --path vendor/bundle

Usage

```ruby require ‘maxcdn’

api = MaxCDN::Client.new(“myalias”, “consumer_key”, “consumer_secret”)

# Turn on debugging outputs

# # api.debug = true

api.get(“/account.json”) ```

Methods

It has support for GET, POST, PUT and DELETE OAuth 1.0a signed requests.

```ruby # To create a new Pull Zone api.post(“/zones/pull.json”, => ‘test_zone’, ‘url’ => ‘http://my-test-site.com’)

To update an existing zone

api.put(“/zones/pull.json/1234”, => ‘i_didnt_like_test’)

To delete a zone

api.delete(“/zones/pull.json/1234”)

To purge a file (robots.txt) from cache

api.delete(“/zones/pull.json/1234/cache”, => “/robots.txt”) ```

We now have a shortcut for Purge Calls!

```ruby zone_id = 12345

Purge Zone

api.purge(zone_id)

Purge File

api.purge(zone_id, ‘/some_file’)

Purge Files

api.purge(zone_id, [‘/some_file’, ‘/another_file’]) ```

Example: SSL Upload

max = MaxCDN::Client.new(alias, key, secret) max.post("zones/pull/12345/ssl.json", { :ssl_crt => File.read("/path/to/server.crt").strip, :ssl_key => File.read("/path/to/server.key").strip })

Development Quick Start

``` bash # get it git clone [email protected]:/ruby-maxcdn.git

setup

cd ruby-maxcdn bundle install –path vendor/bundle

unit tests

bundle exec ruby ./test/test.rb

integration tests

export ALIAS= export KEY= export SECRET= bundle exec ruby ./test/integration.rb # requires host's IP be whitelisted ```

Change Log

0.3.0
  • Replace CurbFu with Faraday (#10).
0.2.1
  • Upgrade signet gem to allow for use with the faraday 0.9.x series (#7).
  • See https://rubygems.org/gems/maxcdn/versions/0.2.1 for gem.
0.1.5
  • Issue #4: Fixing purge files by array to return a hash of status results.
0.1.4
  • Fixing bug where purging files purges entire zone.
0.1.3
  • Requested changes for debugging and development support. (See issue #2).
0.1.2
  • Fixing an issue with lib loading in 0.1.1.
0.1.1
  • Fixing POST, DELETE and PUT to send data via request body.
  • Adding debugging for CurbFu and Curl::Easy.
  • Fixing/enhancing unit tests.
  • Removing secure_connection handling, as all connections should be secure.
  • Fixing 414 Request-URI Too Large from old netdnarws-ruby client.
0.1.0
  • Initial Release