Sha256: 5fb1b9db93ea62409b4d070fd72097360509c8966450d65550e8900ffa6b07cd
Contents?: true
Size: 1.75 KB
Versions: 3
Compression:
Stored size: 1.75 KB
Contents
require "bundler/setup" require 'sinatra/base' require 'sinatra/reloader' class FakeServer < Sinatra::Base get "/method" do "<method>get</method>" end post "/method" do "<method>post</method>" end put "/method" do "<method>put</method>" end delete "/method" do "<method>delete</method>" end #patch "/method" do # "<method>patch</method>" #end post "/band" do if request.content_type =~ /xml/ %{<band><label>n/a</label><name>Strung Out</name> <link href="http://search" rel="search" /> <link href="http://band/strungout" rel="self" /> </band>} else '{"band": {"label": "n/a", "name": "Strung Out", "links": [{"href":"http://search", "rel": "search"}, {"href":"http://band/strungout", "rel": "self"}]}}' end end put "/band/strungout" do %{<band><label>Fat Wreck</label><name>Strung Out</name></band>} end require Dir.pwd + '/order_representers' JSON::Order.class_eval do def items_url "http://localhost:9999/orders/1/items" end def order_url(order) "http://localhost:9999/orders/#{order}" end def represented 1 end end post "/orders" do incoming = JSON::Order.deserialize(request.body.string) # create new record # render new record JSON::Order.from_attributes(incoming.to_attributes).serialize end post "/orders/1/items" do incoming = JSON::Item.deserialize(request.body.string) JSON::Item.from_attributes(incoming.to_attributes).serialize end get "/orders/1" do JSON::Order.new(:client_id => 1, :items => [JSON::Item.new(:article_id => "666-S", :amount => 1)]).serialize end end FakeServer.run! :host => 'localhost', :port => 9999
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
roar-0.8.2 | test/fake_server.rb |
roar-0.8.1 | test/fake_server.rb |
roar-0.8.0 | test/fake_server.rb |