fresh_connection 0.1.7 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
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 is required any instance methods.
62
+ Yourself Slave Connection Manager should be inherited FreshConnection::AbstractConnectionManager
63
63
 
64
- def slave_connection
65
- # must return object of ActiveRecord::ConnectionAdapters::Mysql2Adapter
66
- end
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
- def put_aside!
69
- # called when end of Rails controller action
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
- (@ignore_models || []).one? do |ignore_model|
32
- case ignore_model
33
- when String
34
- ignore_model == model_klass.name
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
@@ -1,4 +1,4 @@
1
1
  module FreshConnection
2
- VERSION = "0.1.7"
2
+ VERSION = "0.1.8"
3
3
  end
4
4
 
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
- version: 0.1.7
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
- date: 2013-12-25 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
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
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - '>='
25
- - !ruby/object:Gem::Version
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
- - !ruby/object:Gem::Dependency
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
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
38
43
  - - ~>
39
- - !ruby/object:Gem::Version
40
- version: '1.3'
41
- - !ruby/object:Gem::Dependency
42
- name: rake
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
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
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
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
- files:
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
- require_paths:
97
+
98
+ require_paths:
84
99
  - lib
85
- required_ruby_version: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - '>='
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- required_rubygems_version: !ruby/object:Gem::Requirement
91
- requirements:
92
- - - '>='
93
- - !ruby/object:Gem::Version
94
- version: '0'
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: 2.0.0
121
+ rubygems_version: 1.6.2
98
122
  signing_key:
99
- specification_version: 4
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