fresh_connection 0.1.7 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +12 -6
- data/lib/fresh_connection/slave_connection.rb +16 -10
- data/lib/fresh_connection/version.rb +1 -1
- metadata +82 -57
- checksums.yaml +0 -7
data/README.md
CHANGED
@@ -59,14 +59,20 @@ If you would like to change slave connection manager, assign yourself slave conn
|
|
59
59
|
FreshConnection::SlaveConnection.connection_manager = MySlaveConnection
|
60
60
|
|
61
61
|
|
62
|
-
Yourself Slave Connection Manager
|
62
|
+
Yourself Slave Connection Manager should be inherited FreshConnection::AbstractConnectionManager
|
63
63
|
|
64
|
-
|
65
|
-
|
66
|
-
|
64
|
+
class MySlaveConnection < FreshConnection::AbstractConnectionManager
|
65
|
+
def slave_connection
|
66
|
+
# must return object of ActiveRecord::ConnectionAdapters::Mysql2Adapter
|
67
|
+
end
|
68
|
+
|
69
|
+
def put_aside!
|
70
|
+
# called when end of Rails controller action
|
71
|
+
end
|
67
72
|
|
68
|
-
|
69
|
-
|
73
|
+
def recovery(failure_connection, exception)
|
74
|
+
# called when raise exception to access slave server
|
75
|
+
end
|
70
76
|
end
|
71
77
|
|
72
78
|
## Usage
|
@@ -28,16 +28,10 @@ module FreshConnection
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def ignore_model?(model_klass)
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
when ActiveRecord::Base
|
36
|
-
model_klass.ancestors.include?(ignore_model)
|
37
|
-
else
|
38
|
-
false
|
39
|
-
end
|
40
|
-
end
|
31
|
+
@cached_ignore_model ||= {}
|
32
|
+
return @cached_ignore_model[model_klass] if @cached_ignore_model.has_key?(model_klass)
|
33
|
+
|
34
|
+
@cached_ignore_model[model_klass] = check_ignore_model(model_klass)
|
41
35
|
end
|
42
36
|
|
43
37
|
def ignore_configure_connection?
|
@@ -79,6 +73,18 @@ module FreshConnection
|
|
79
73
|
@connection_manager ||=
|
80
74
|
(@connection_manager_class || FreshConnection::ConnectionManager).new
|
81
75
|
end
|
76
|
+
|
77
|
+
def check_ignore_model(model_klass)
|
78
|
+
(@ignore_models || []).one? do |ignore_model|
|
79
|
+
if ignore_model.is_a?(String)
|
80
|
+
ignore_model == model_klass.name
|
81
|
+
elsif ignore_model.ancestors.include?(ActiveRecord::Base)
|
82
|
+
model_klass.ancestors.include?(ignore_model)
|
83
|
+
else
|
84
|
+
false
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
82
88
|
end
|
83
89
|
end
|
84
90
|
end
|
metadata
CHANGED
@@ -1,64 +1,78 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: fresh_connection
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 11
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 8
|
10
|
+
version: 0.1.8
|
5
11
|
platform: ruby
|
6
|
-
authors:
|
12
|
+
authors:
|
7
13
|
- Tsukasa OISHI
|
8
14
|
autorequire:
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
|
-
|
12
|
-
|
13
|
-
|
17
|
+
|
18
|
+
date: 2014-01-28 00:00:00 +09:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
14
22
|
name: activerecord
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - '>='
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 3.2.0
|
20
|
-
type: :runtime
|
21
23
|
prerelease: false
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 15
|
30
|
+
segments:
|
31
|
+
- 3
|
32
|
+
- 2
|
33
|
+
- 0
|
26
34
|
version: 3.2.0
|
27
|
-
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
28
38
|
name: bundler
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ~>
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '1.3'
|
34
|
-
type: :development
|
35
39
|
prerelease: false
|
36
|
-
|
37
|
-
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
38
43
|
- - ~>
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
- - '>='
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 9
|
46
|
+
segments:
|
47
|
+
- 1
|
48
|
+
- 3
|
49
|
+
version: "1.3"
|
48
50
|
type: :development
|
51
|
+
version_requirements: *id002
|
52
|
+
- !ruby/object:Gem::Dependency
|
53
|
+
name: rake
|
49
54
|
prerelease: false
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
hash: 3
|
61
|
+
segments:
|
62
|
+
- 0
|
63
|
+
version: "0"
|
64
|
+
type: :development
|
65
|
+
version_requirements: *id003
|
55
66
|
description: https://github.com/tsukasaoishi/fresh_connection
|
56
|
-
email:
|
67
|
+
email:
|
57
68
|
- tsukasa.oishi@gmail.com
|
58
69
|
executables: []
|
70
|
+
|
59
71
|
extensions: []
|
72
|
+
|
60
73
|
extra_rdoc_files: []
|
61
|
-
|
74
|
+
|
75
|
+
files:
|
62
76
|
- Gemfile
|
63
77
|
- LICENSE.txt
|
64
78
|
- README.md
|
@@ -74,28 +88,39 @@ files:
|
|
74
88
|
- lib/fresh_connection/railtie.rb
|
75
89
|
- lib/fresh_connection/slave_connection.rb
|
76
90
|
- lib/fresh_connection/version.rb
|
91
|
+
has_rdoc: true
|
77
92
|
homepage: https://github.com/tsukasaoishi/fresh_connection
|
78
|
-
licenses:
|
93
|
+
licenses:
|
79
94
|
- MIT
|
80
|
-
metadata: {}
|
81
95
|
post_install_message:
|
82
96
|
rdoc_options: []
|
83
|
-
|
97
|
+
|
98
|
+
require_paths:
|
84
99
|
- lib
|
85
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
100
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
101
|
+
none: false
|
102
|
+
requirements:
|
103
|
+
- - ">="
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
hash: 3
|
106
|
+
segments:
|
107
|
+
- 0
|
108
|
+
version: "0"
|
109
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
110
|
+
none: false
|
111
|
+
requirements:
|
112
|
+
- - ">="
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
hash: 3
|
115
|
+
segments:
|
116
|
+
- 0
|
117
|
+
version: "0"
|
95
118
|
requirements: []
|
119
|
+
|
96
120
|
rubyforge_project:
|
97
|
-
rubygems_version:
|
121
|
+
rubygems_version: 1.6.2
|
98
122
|
signing_key:
|
99
|
-
specification_version:
|
123
|
+
specification_version: 3
|
100
124
|
summary: FreshConnection supports to connect with Mysql slave servers via Load Balancers.
|
101
125
|
test_files: []
|
126
|
+
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: a6cf45789101eb5867723358916e51d9830479c7
|
4
|
-
data.tar.gz: 829c2c642c9357cbd4e40966601d4e9fa05ccedb
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 43f069ab92bc1383f3bd3c48503e3fd4df75cbda1622b6a2c81d11241787e78aeced42c7a492160090029a5212e1b61184989546bb3f5d8d4fa7a46dd35d5f0a
|
7
|
-
data.tar.gz: f06dacf9d04f362810a0febd8421cd78fbf94fc2ece3fddecd6cffb2845359394c51dca0a6fc4b1ddcd5b3d9654dc9c1e3f675edd16bcc58cd0ad0c2df5bcdbd
|