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::Reloader
hanya untuk development- puma sebagai application server
Rack::Session::EncryptedCookie
Rack::Csrf
- sequel
- sequel_pg sebagai PostgreSQL adapter
- sprockets
- sass
- uglifier
- tux untuk console
Instalasi
gem install sinator
Cara Penggunaan
generate app pada current directory tanpa database
sinator -n my_app
generate app pada target directory tanpa database
sinator -n my_app -t target/dir
generate app pada current directory dengan database. Opsi -d
akan membuat Sinator generate aplikasi dengan Sequel
ORM dan PostgreSQL adapter.
sinator -n my_app -d
Contoh 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.rb
dan 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.rb
dan tulis kode berikut:class Artist < Sequel::Model end
Buat file
app/routes/artists.rb
dan 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 end
Buat file
app/views/artists/index.erb
dan 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