39 lines
1.0 KiB
Ruby
39 lines
1.0 KiB
Ruby
module Charbase
|
|
class App < Sinatra::Base
|
|
set :conf, ENV['CHARBASE_CONFIG']
|
|
conf = YAML.load_file(settings.conf)
|
|
set :port, conf["port"] || 4567
|
|
set :siteroot, conf["siteroot"]
|
|
set :public_folder, File.expand_path(conf["public"],conf["siteroot"])
|
|
set :views, File.expand_path(conf["views"] ,conf[ "siteroot" ])
|
|
set :dsn, conf["dsn"]
|
|
|
|
|
|
|
|
def initialize
|
|
parseDSN()
|
|
super
|
|
end
|
|
|
|
|
|
def parseDSN()
|
|
(driver,path) = settings.dsn.split(/:/,2)
|
|
if driver == "yaml"
|
|
@characters = YAML.load_file(path.sub(/%siteroot%/,settings.siteroot))
|
|
elsif driver == "json"
|
|
|
|
end
|
|
end
|
|
|
|
get "/" do
|
|
@characters.inspect.to_s
|
|
end
|
|
|
|
get "/character/:nick" do |nick|
|
|
liquid :character, :locals => {:character => @characters["characters"].select { |n| n["nick"] == nick }.first}
|
|
end
|
|
|
|
|
|
end
|
|
end
|