Sinator - Sinatra Application Generator
- Last modified atSinator merupakan generator web aplikasi yang menggunakan Sinatra yang saya gunakan untuk generate aplikasi.
Daftar Ruby Gems yang digunakan oleh Sinator ketika generate aplikasi:
- sinatra
- sinatra-contrib
- encrypted_cookie
Sinatra::Reloaderhanya untuk development- puma sebagai application server
Rack::Session::EncryptedCookieRack::Csrf- sequel
- sequel_pg sebagai PostgreSQL adapter
- sprockets
- sass
- uglifier
- tux untuk console
Instalasi
gem install sinatorCara Penggunaan
generate app pada current directory tanpa database
sinator -n my_appgenerate app pada target directory tanpa database
sinator -n my_app -t target/dirgenerate app pada current directory dengan database. Opsi -d akan membuat Sinator generate aplikasi dengan Sequel ORM dan PostgreSQL adapter.
sinator -n my_app -dContoh Aplikasi
Contoh aplikasi todo dapat dilihat melalui github.com/kuntoaji/todo_sinator.
Contoh Penggunaan
Contoh ini berasumsi PostgreSQL telah running dan database yang akan digunakan telah dibuat.
- run
sinator -n my_app -d - cd
my_app - run
bundle install - Lakukan konfigurasi database pada
config/database.yml Buat file
db/migrations/001_create_artists.rbdan tulis kode berikut:Sequel.migration do up do create_table(:artists) do primary_key :id String :name, :null=>false end end down do drop_table(:artists) end end- run
rake db:migrate Buat file
app/models/Artist.rbdan tulis kode berikut:class Artist < Sequel::Model endBuat file
app/routes/artists.rbdan tulis kode berikut:class MyApp get '/artists' do @artists = Artist.all erb :"artists/index" end post '/artists' do @artist = Artist.new @artist.name = params[:name] @artist.save redirect '/artists' end endBuat file
app/views/artists/index.erbdan tulis kode berikut:<h1>List of Artist</h1> <ul> <% @artists.each do |artist| %> <li><%= artist.name %></li> <% end %> </ul> <form action="/artists" method="post"> <%= Rack::Csrf.tag(env) %> <input type="text" name="name" /> <button>Submit</button> </form>- run server
bundle exec puma - buka url di browser
localhost:9292/artists
Production
Di production by default serve assets seperti Javascript dan CSS akan di-disable karena lebih baik melalui Nginx atau Apache. Untuk melakukan assets precompile dan running server di production dapat menggunakan perintah berikut:
RACK_ENV=production bundle exec rake assets:precompile
RACK_ENV=production bundle exec puma