Sinatra uygulamamıza hafıza ekleyelim

Andaç Karay Kudu, 08 Dec 2015

Bir önceki yazımda sinatra ile bir echo uygulaması yapmıştık. Bu defa uygulamamızın mesajları hatırlamasını sağlayacağız.

Bunun için gelen mesajları bir dizide saklayacağız. Mesajlar dizini de sinatra ayarlarında belirteceğiz.

# memory.rb
require 'sinatra'
require 'tilt/erb'

configure do
  set :memory, []
end

get '/' do
  @messages = settings.memory
  erb :index
end

post '/' do
  @messages = settings.memory << params[:message]
  redirect '/'
end

__END__
@@ index
<!DOCTYPE html>
<html>
  <head>
    <title>messages</title>
  </head>
  <body>
    <form method="POST">
      <input type="text" name="message">
    </form>
    <p>
      <ul>
        <% @messages.each do |message|  %>
          <li><%= message %></li>
        <% end %>
      </UL>
    </p>
  </body>
</html>

Uygulamamızı çalıştıralım.

$ ruby memory.rb

Sonuç

http://localhost:4567 adresindeki uygulamamız gönderdiğimiz mesaları hatırlıyor.