class Heidi; module Web; module Routes module Projects get '/projects' do output = "" $heidi.projects.each do |project| output += "#{project.name}
" end output end get '/projects/:name' do project = $heidi[params[:name]] if project.nil? return "no project by that name: #{params[:name]}" end output = "

#{project.name}

" output += "Build status: #{project.build_status}" output += "

Build history

" project.builds.each do |build| output += %Q{#{build.commit} - #{build.status}
} end output end get '/projects/:name/build/:commit' do project = $heidi[params[:name]] if project.nil? return "no project by that name: #{params[:name]}" end # load build of project build = Heidi::Build.new(project, params[:commit]) output = "

#{project.name}

" output += "

Build: #{build.commit} - #{build.status}

" %w(heidi.info heidi.errors build.log test.log).each do |log_file| log = build.logs(log_file) if (!log.nil? and !log.empty?) output += "

#{log_file}

" output += "
#{log}
" end end output end put '/projects/:name/build' do project = $heidi[params[:name]] if project.nil? return "no project by that name: #{params[:name]}" end project.integrate end end end; end; end