Nephos Ruby Server

GitHub version

Gem Version

Code Climate

This is a simple web server, based on rack and puma, with a minimal help:

  • Controllers
  • Rendering
  • Routing

No templating, no database by default. They are extensions of your choice.

Start

gem install nephos-server
nephos-generator application MyApp
cd MyApp
nephos-server -p 8080 # port is not required

Documentation

Guides

Render API

Routing GUIDE

Examples

Controller

To create a controller, simply add it to controllers/. The basic code of a controller can be generated via nephos-generator controller NAME.

class Example < Nephos::Controller
  def root
    return {plain: "index"}
  end
end

Rendering

In a controller, use:

return {status: code}
return {status: code, content: "Not today"}
return {json: {status: "resource created"}, status: 201}
return {plain: "text"}
return {html: "<html><body><h1>:D</h1></body></html>"}
return {type: "image/jpeg", content: File.read("images/photo.jpg")}
return :empty

Routing

Like in /routes.rb, you have to route manually the api.

get url: "/", controller: "MainController", method: "root"       # /
get url: "/add", controller: "MainController", method: "add_url" # /add
get url: "/add/:url", controller: "MainController", method: "add_url" # /add
get url: "/rm", controller: "MainController", method: "rm_url"   # /rm
get url: "/rm/:url", controller: "MainController", method: "rm_url"   # /rm
resource "infos" do
  get url: "/", controller: "MainController", method: "root" # generate /infos
end

Developers: Roadmap

TODO v0.3

  • Improve documentation (fix english, increase coverage, ...)
  • Improve unitary test coverage
  • Improve syntax coherence (router/render, file position, ...)
  • Directory app instead of controllers

TODO v1

  • Improved Routing (more helper options)
  • Improved Rendering (more options)
  • Guide about
    • Controllers
    • Routing
    • Api Creation
    • Database creation
    • Web HTML with templating