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 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