██▓███ ▒█████ ███▄ █ ▄████
▓██░ ██▒▒██▒ ██▒ ██ ▀█ █ ██▒ ▀█▒
▓██░ ██▓▒▒██░ ██▒▓██ ▀█ ██▒▒██░▄▄▄░
▒██▄█▓▒ ▒▒██ ██░▓██▒ ▐▌██▒░▓█ ██▓
▒██▒ ░ ░░ ████▓▒░▒██░ ▓██░░▒▓███▀▒
▒▓▒░ ░ ░░ ▒░▒░▒░ ░ ▒░ ▒ ▒ ░▒ ▒
░▒ ░ ░ ▒ ▒░ ░ ░░ ░ ▒░ ░ ░
░░ ░ ░ ░ ▒ ░ ░ ░ ░ ░ ░
░ ░ ░ ░
mruby-pong
it's a simple web server for building simple Sinatra-like applications
Add line to your build_config.rb
MRuby::Build.new do |config|
# some lines of your config
config.gem :github => 'nsheremet/mruby-pong'
# other lines of your config
end
Simple App:
app = Pong.new
app.get '/' do
html '<h1>Hello from PONG</h1>'
end
app.run
Your can user custom configuration:
app = Pong.new({
port: 8080,
threads: 24,
debug: true
})
Request handling examples:
app.post '/users' do |request|
# request have a structure
# {
# params: {Hash},
# headers: {Hash},
# method: {String}, additional fields,
# url: {String}, additional fields
# }
params: request[:params]
json Hash[params: params], 201, headers # Status Code and Headers are optional
end
What I need to return in action?
# HTML
html page, status_code, headers # page is string with HTML content
# JSON
json hash, status_code, headers
# Redirect
redirect_to '/' # accept only one String param
# RAW hash
# You can return what you want, just create hash with required 'Content-Type' header
{
headers: { 'Content-Type' => 'text/xml' }, # You need to setup Content-Type headers
status: 200,
body: '<note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don\'t foget me this weekend!</body></note>'
}
mruby-pong
is primarily distributed under the terms of Mozilla Public License 2.0.
See LICENSE for details.