Skip to content

noadevbr/22ge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

22GE — Base Ruby com Sinatra

Uma base para APIs em Ruby, usando Sinatra, ActiveRecord e PostgreSQL
Pensada pra quem quer começar rápido.


🚀 Stack

Ruby 3.4+ | Linguagem base

Sinatra 4 | Framework web

ActiveRecord | ORM para Ruby

Puma | Servidor HTTP

Dotenv | Gerenciamento de variáveis de ambiente

Rerun | Hot reload para desenvolvimento


⚙️ Configuração

  1. Clone o projeto
   git clone https://github.com/noadevbr/22ge.git
  cd 22ge
  1. Instale as dependências

    bundle install
  2. Crie o banco de dados

    bundle exec rake db:create
    bundle exec rake db:migrate

💻 Rodando o servidor

Modo normal

bundle exec rake server

Modo desenvolvimento

bundle exec rake server:dev

🧠 Estrutura de rotas

Cada módulo pode registrar seu própria rota.

Exemplo:

# src/routes/home/router.rb
# frozen_string_literal: true

require 'sinatra/base'
require 'sinatra/namespace'

module HomeRouter
  PREFIX = '/'

  def self.registered(app)
    app.get '/' do 
      content_type :json

      { hello: "world" }.to_json
    end
  end
end

E o RouterManager você precisa colocar sua rota, exemplo usando esse HomeRouter:

# frozen_string_literal: true

require_relative './home/router'

module RouterManager
  def self.registered(app)
    routers = [
      HomeRouter
    ]

    routers.each do |router|
      prefix = router.const_get(:PREFIX)
      app.namespace(prefix) { register router }

      puts "✅ Router carregado: #{router} (prefix: #{prefix})"
    end
  end
end

🧩 Rake Tasks disponíveis

Comando Descrição
rake server Inicia o servidor normalmente
rake server:dev Inicia com hot reload (rerun)

🛠️ Testando a API

Com o servidor rodando em http://localhost:4567, teste com:

curl -X GET http://localhost:4567/

🌹 Licença

Este projeto é open source, feito com 💖 pela Noa.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages