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
64
65
66
67
68
|
# File 'lib/conflict/core.rb', line 34
def start
@s = WEBrick::HTTPServer.new(:Port => @cfg[:port],:AccessLog => [])
@db = DataBase::new
@s.mount_proc(DIFF_URL){|request, res|
RequestValidator::new().validate request
client = request.query['client'].to_s.strip
events = RequestParser::new(@cfg[:ttl]).parse request.query['diff'], request.query['info'], client
conflicts = @db.find_conflicts(client, events).sort_by {|c| c.remote_client}
res.body = conflicts.to_yaml
}
@s.mount_proc(DIFF_CVS_URL){|request, res|
RequestValidator::new().validate_cvs request
client = request.query['client'].to_s.strip
events = RequestParser::new(@cfg[:ttl]).parse_cvs request.query['diff'], client
conflicts = @db.find_conflicts(client, events).sort_by {|c| c.remote_client}
res.body = conflicts.to_yaml
}
@s.mount_proc(STATUS_URL){|request, res|
body = ['<status><events>']
@db.to_a.each do | event | body << event.to_xml end
body << '</events></status>'
res.body = body * ""
}
@s.mount_proc('/clear'){|request, res|
@db.clear
}
@s.start
end
|