0.0
No commit activity in last 3 years
No release in over 3 years
Sinatra Extension for ACE(Aws Compatible Environment)
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.0
~> 2.0.1
~> 3.12
~> 2.8.0

Runtime

 Project Readme

sinatra-ace

Summary

Sinatra Extension for ACE (AWS Compatible Environment).

Features

  • Friendly DSL (action, version, path)
  • Specialized Helpers

Sample

Run this app:

require 'sinatra'
require 'sinatra/ace.rb'
require 'sequel'

DB = Sequel.sqlite
DB.create_table :dreams do
	primary_key :id
	String :name
	String :description
end
Dreams = DB[:dreams]

action 'CreateDream' do
	dream_id = Dreams.insert(:name => params['DreamName'])
	response_xml do |xml|
		xml.Dream do
			xml.DreamId dream_id
			xml.DreamName params['DreamName']
		end
	end
end

version '2014-07-11' do
	action 'CreateDream' do
		dream_id = Dreams.insert(:name => params['DreamName'], :description => params['Description'])
		response_xml do |xml|
			xml.Dream do
				xml.DreamId dream_id
				xml.DreamName params['DreamName']
				xml.Description params['Description']
			end
		end
	end
end

path '/:DreamId' do
	action 'GetDreamDetail' do
		dream = Dreams[:id => params['DreamId']]
		response_xml do |xml|
			xml.Dream do
				xml.DreamId dream[:id]
				xml.DreamName dream[:name]
				xml.Description dream[:description]
			end
		end
	end
end

dispatch!

And you can get:

$ curl "http://localhost:4567/?Action=CreateDream&DreamName=Nightmare"
<?xml version="1.0" encoding="UTF-8"?>
<CreateDreamResponse>
  <CreateDreamResult>
    <Dream>
      <DreamId>2</DreamId>
      <DreamName>Nightmare</DreamName>
    </Dream>
  </CreateDreamResult>
  <ResponseMetadata>
    <RequestId>6c68b49d-239a-4777-b82f-a21151e9be42</RequestId>
  </ResponseMetadata>
</CreateDreamResponse>
$ curl "http://localhost:4567/?Action=CreateDream&DreamName=DayDream&Description=just+lazed+in+the+pool&Version=2014-07-11"
<?xml version="1.0" encoding="UTF-8"?>
<CreateDreamResponse>
  <CreateDreamResult>
    <Dream>
      <DreamId>3</DreamId>
      <DreamName>DayDream</DreamName>
      <Description>just lazed in the pool</Description>
    </Dream>
  </CreateDreamResult>
  <ResponseMetadata>
    <RequestId>2b875603-f685-4872-a316-7e2ddd4c356d</RequestId>
  </ResponseMetadata>
</CreateDreamResponse>
$ curl "http://localhost:4567/3?Action=GetDreamDetail"
<?xml version="1.0" encoding="UTF-8"?>
<GetDreamDetailResponse>
  <GetDreamDetailResult>
    <Dream>
      <DreamId>3</DreamId>
      <DreamName>DayDream</DreamName>
      <Description>just lazed in the pool</Description>
    </Dream>
  </GetDreamDetailResult>
  <ResponseMetadata>
    <RequestId>225697f4-2577-432b-aa78-c6f18cec7c05</RequestId>
  </ResponseMetadata>
</GetDreamDetailResponse>