require 'sinatra/base' require 'sinatra/json' require 'yajl' require 'yajl/json_gem' require 'csv' $set = "cheesy2" def load_tracklist() file = "sets/#{$set}.csv" csv = CSV.read(File.open(file)) names = csv.shift $tracklist = csv.map do |row| Hash[*names.zip(row).flatten] end end load_tracklist def tracklist_json $tracklist.to_json end class App < Sinatra::Base configure do set :protection, :except => :frame_options end get '/tracklist.json' do json $tracklist end get '/js/handler.js' do content_type 'text/javascript' erb :handler_js end get '/css/meta.css' do content_type 'text/css' erb :meta_css end get '/' do erb :index, :locals => { :mixtitle => $set, :tracklist => tracklist_json } end end