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
2025
2026
 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>