diff options
Diffstat (limited to 'app.rb')
-rwxr-xr-x | app.rb | 68 |
1 files changed, 58 insertions, 10 deletions
@@ -1,27 +1,75 @@ #! /usr/bin/env ruby -w -require "redis" +require "sqlite3" require "sinatra" -redis = Redis.new -redis.set("mykey", "lalala") +class MBObject + + attr_reader :id, :title + + @@db = SQLite3::Database.new "membrain.db" + + def initialize + @id = 0 + @keys = [] + @values = [] + @title = "" + end + + def init_with_row(row) + @id = row[0] + @title = row[1] + @updated = row[2] + end + + def self.create(name) + @@db.execute("INSERT INTO objects (title, updated) VALUES (?, DATETIME())", name) + @@db.execute("SELECT last_insert_rowid()")[0][0] + end + + def self.all + all = [] + @@db.execute("SELECT id, title, updated FROM objects") do | row | + o = MBObject.new + all << o.init_with_row(row) + end + return all + end + + def self.get(id) + o = MBObject.new + @@db.execute("SELECT id, icon, updated FROM objects WHERE id = ?", id) do | row | + o = MBObject.new + o.init_with_row(row) + end + return o + end + + def get_url + "/#{@id}/edit" + end +end get '/' do - erb :index + @data = MBObject.all + erb :index end get '/add' do - erb :form + erb :form end post '/add' do - redis.set('blaa', params[:name]) + i = MBObject.create(params[:name]) + redirect "/#{i}" end -get '/:cat' do | cat | - # /machines +get '/:id' do + @data = MBObject.get(params[:id]) + erb :view_object end -get '/:cat/:instance' do | cat, inst | - # /machines/fileserver +get '/:id/edit' do + @o = MBObject.get(params[:id]) + erb :edit_object end |