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
Cara Penggunaan
generate app pada current directory tanpa database
generate app pada target directory tanpa database
generate app pada current directory dengan database. Opsi -d
akan membuat Sinator generate aplikasi dengan Sequel
ORM dan PostgreSQL adapter.
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:
Recent Posts
Subdomain Hijacking
My dormant subdomain was recently hijacked, redirecting it to a online gamble registration page.
C# DbContext ServiceLifeTime
my note about C Sharp ServiceLifeTime
PostgreSQL Index Usage Monitoring
Having too many unused or underused indexes on a table can slow down write and update operations in your PostgreSQL database, making it crucial to regularly identify and manage them for optimal performance.
KAK Labs Newsletter #6 - Staying Safe From Pegasus Spyware
Newsletter #6 - Pegasus, Ruby, PostgreSQL and networkQuality tool
Material Design - Paragraph Spacing
According to Google's Material Design, keep paragraph spacing in the range between .75x and 1.25x of the type size.