Ruby Gem for MaxCDN's REST API
Ruby
Pull request Compare This branch is 59 commits ahead, 4 commits behind netdna:master.
Latest commit 806cf26 Jun 28, 2016 @jdorfman jdorfman committed with jmervine Removed job ad from README (#13)
Permalink
Failed to load latest commit information.
examples
lib require uri (#12) Jun 27, 2016
test
.gitignore
.travis.yml
BENCHMARKS.md require uri (#12) Jun 27, 2016
Gemfile require uri (#12) Jun 27, 2016
LICENSE
README.md Removed old job posting Jun 27, 2016
Rakefile Fixing rake test runner. Feb 13, 2014
VERSION Fixing file based purges. Feb 28, 2014
maxcdn.gemspec

README.md

MaxCDN REST Web Services Ruby Client

Build Status   Gem Version

Installation

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

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.

# To create a new Pull Zone
api.post("/zones/pull.json", {'name' => 'test_zone', 'url' => 'http://my-test-site.com'})

# To update an existing zone
api.put("/zones/pull.json/1234", {'name' => '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", {"file" => "/robots.txt"})

We now have a shortcut for Purge Calls!

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

# get it
git clone git@github.com:<fork repo>/ruby-maxcdn.git

# setup
cd ruby-maxcdn
bundle install --path vendor/bundle

# unit tests
bundle exec ruby ./test/test.rb

# integration tests
export ALIAS=<your alias>
export KEY=<your key>
export SECRET=<your 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
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