forked from travis-ci/travis-core
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodel.rb
More file actions
57 lines (51 loc) · 1.78 KB
/
Copy pathmodel.rb
File metadata and controls
57 lines (51 loc) · 1.78 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
# This module is required for preloading classes on JRuby, see
# https://github.com/travis-ci/travis-support/blob/master/lib/core_ext/module/load_constants.rb
# which is used in
# https://github.com/travis-ci/travis-hub/blob/master/lib/travis/hub/cli.rb#L15
require 'core_ext/active_record/base'
module Travis
class Model < ActiveRecord::Base
require 'travis/model/account'
require 'travis/model/annotation'
require 'travis/model/annotation_provider'
require 'travis/model/broadcast'
require 'travis/model/build'
require 'travis/model/commit'
require 'travis/model/email'
require 'travis/model/env_helpers'
require 'travis/model/job'
require 'travis/model/log'
require 'travis/model/membership'
require 'travis/model/organization'
require 'travis/model/permission'
require 'travis/model/repository'
require 'travis/model/request'
require 'travis/model/ssl_key'
require 'travis/model/token'
require 'travis/model/user'
require 'travis/model/url'
self.abstract_class = true
cattr_accessor :follower_connection_handler
class << self
def connection_handler
if Thread.current['Travis.with_follower_connection_handler']
follower_connection_handler
else
super
end
end
def establish_follower_connection(spec)
self.follower_connection_handler = ActiveRecord::ConnectionAdapters::ConnectionHandler.new unless self.follower_connection_handler
using_follower do
self.establish_connection(spec)
end
end
def using_follower
Thread.current['Travis.with_follower_connection_handler'] = true
yield
ensure
Thread.current['Travis.with_follower_connection_handler'] = false
end
end
end
end