-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinit.rb
More file actions
63 lines (56 loc) · 1.86 KB
/
init.rb
File metadata and controls
63 lines (56 loc) · 1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/usr/bin/env ruby
$LOAD_PATH.unshift File.dirname(__FILE__) + '/vendor/gems/will_paginate/lib' # using agnostic branch
SINATRA_ROOT = Dir.pwd + '/' + File.dirname(__FILE__)
require 'rubygems'
require 'sinatra'
require 'haml'
require File.dirname(__FILE__) + '/vendor/gems/will_paginate/lib/will_paginate'
require File.dirname(__FILE__) + '/vendor/gems/will_paginate/lib/will_paginate/view_helpers/link_renderer'
require File.dirname(__FILE__) + '/vendor/gems/will_paginate/lib/will_paginate/view_helpers/base'
require "config"
require "lib/helpers"
include Helpers
include WillPaginate::ViewHelpers::Base
Array.class_eval do
def paginate(opts = {})
opts = {:page => 1, :per_page => 15}.merge(opts)
WillPaginate::Collection.create(opts[:page], opts[:per_page], size) do |pager|
pager.replace self[pager.offset, pager.per_page].to_a
end
end
end
WillPaginate::ViewHelpers::LinkRenderer.class_eval do
protected
def url(page)
url = @template.request.url
if page == 1
# strip out page param and trailing ? if it exists
url.gsub(/page=[0-9]+/, '').gsub(/\?$/, '')
else
if url =~ /page=[0-9]+/
url.gsub(/page=[0-9]+/, "page=#{page}")
else
url + "?page=#{page}"
end
end
end
end
get '/' do
@projects = MicroCI.projects
haml :index
end
get '/projects/:project_name' do
project_name = params[:project_name]
@builds = Project.new(project_name).builds.paginate(:page => params[:page] || 1)
haml :project
end
get '/notify/:project_name' do
# kick off notify from a an external process
project_name = params[:project_name]
Project.new(project_name).notify
end
get '/projects/:project_name/:build' do
project_name = params[:project_name]
@build = Build.new(params[:build], project_name)
haml :build
end