aboutsummaryrefslogtreecommitdiffstats
path: root/app.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app.rb')
-rwxr-xr-xapp.rb68
1 files changed, 58 insertions, 10 deletions
diff --git a/app.rb b/app.rb
index 0b9e4e2..55f00c8 100755
--- a/app.rb
+++ b/app.rb
@@ -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