Skip to content

Instantly share code, notes, and snippets.

@mopperwhite
Created July 12, 2017 13:45
Show Gist options
  • Save mopperwhite/82f41cb59ca81d7380eacbce6d6f6d46 to your computer and use it in GitHub Desktop.
Save mopperwhite/82f41cb59ca81d7380eacbce6d6f6d46 to your computer and use it in GitHub Desktop.
A simple test for sinatra + grape + moneta
#!/usr/bin/env ruby
#encoding=utf-8
require 'data_mapper'
require 'moneta'
require 'rack/session/moneta'
require 'grape'
require 'sinatra'
class API < Grape::API
format :json
prefix :api
resource :test do
get '/' do
if session[:counter].nil?
session[:counter] = 0
else
session[:counter] += 1
end
session[:counter]
end
end
end
class Web < Sinatra::Base
set :public_folder, File.join(File.dirname(__FILE__), 'public')
get '/' do
if session[:counter].nil?
session[:counter] = 0
else
session[:counter] += 1
end
session[:counter].to_s
end
get '*' do
halt 304
end
end
DataMapper.setup :default, 'sqlite:test.db'
use Rack::Session::Moneta, store: Moneta.new(:DataMapper, setup: 'sqlite:test.db')
DataMapper.finalize.auto_upgrade!
run Rack::Cascade.new [API, Web]
# run `rackup -p 3000'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment