connection_manager 0.3.2 → 0.3.3
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.
@@ -23,22 +23,29 @@ module ConnectionManager
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def build_dup_class(connection_class_name)
|
26
|
-
|
26
|
+
con_class = connection_class_name.constantize
|
27
|
+
dup_klass = class_eval <<-STR
|
27
28
|
#{connection_class_name}Dup = dup
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
end
|
29
|
+
STR
|
30
|
+
dup_klass.class_eval <<-STR
|
31
|
+
self.table_name = '#{table_name_for_dup(con_class)}'
|
32
|
+
class << self
|
33
|
+
def model_name
|
34
|
+
'#{self.name}'.constantize.model_name
|
35
35
|
end
|
36
|
-
|
36
|
+
end
|
37
|
+
STR
|
37
38
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
39
|
+
extend_dup_class(dup_klass,connection_class_name)
|
40
|
+
dup_klass
|
41
|
+
end
|
42
|
+
|
43
|
+
def table_name_for_dup(con_class)
|
44
|
+
(con_class.database_name == database_name ) ? table_name : "#{con_class.table_name_prefix}#{table_name.split('.').last}"
|
45
|
+
end
|
46
|
+
|
47
|
+
def table_name_prefix_for_dup(con_class)
|
48
|
+
con_class.abstract_class? ? table_name_prefix : con_class.table_name_prefix
|
42
49
|
end
|
43
50
|
|
44
51
|
# Extend the connection override module from the connetion to the supplied class
|
@@ -30,10 +30,6 @@ describe ConnectionManager::ConnectionHelpers do
|
|
30
30
|
it "should create abstract class" do
|
31
31
|
MyConnectionClass.abstract_class.should be_true
|
32
32
|
end
|
33
|
-
|
34
|
-
it "should prefix table name with database" do
|
35
|
-
MyConnectionClass.table_name_prefix.should eql('cm_test.')
|
36
|
-
end
|
37
33
|
|
38
34
|
it "should checkin the connection" do
|
39
35
|
ActiveRecord::Base.managed_connection_classes.include?("MyConnectionClass").should be_true
|
@@ -40,6 +40,12 @@ describe ConnectionManager::Replication do
|
|
40
40
|
Fruit.replicated
|
41
41
|
Fruit.slaves.connection.config.should_not eql(Fruit.connection.config)
|
42
42
|
end
|
43
|
+
|
44
|
+
it "should produce the same query string" do
|
45
|
+
Fruit.replicated
|
46
|
+
Fruit.slaves.joins(:region).to_sql.should eql(Fruit.joins(:region).to_sql)
|
47
|
+
Fruit.slaves.joins(:fruit_baskets).to_sql.should eql(Fruit.joins(:fruit_baskets).to_sql)
|
48
|
+
end
|
43
49
|
end
|
44
50
|
|
45
51
|
context "the objects return from a query" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: connection_manager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-06-
|
12
|
+
date: 2012-06-15 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
16
|
-
requirement: &
|
16
|
+
requirement: &70198847335500 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '3.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70198847335500
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &70198847335080 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70198847335080
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: autotest
|
38
|
-
requirement: &
|
38
|
+
requirement: &70198847334620 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70198847334620
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: mocha
|
49
|
-
requirement: &
|
49
|
+
requirement: &70198847334200 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70198847334200
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: factory_girl
|
60
|
-
requirement: &
|
60
|
+
requirement: &70198847333780 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70198847333780
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: activesupport
|
71
|
-
requirement: &
|
71
|
+
requirement: &70198847333260 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '3.0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70198847333260
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: mysql2
|
82
|
-
requirement: &
|
82
|
+
requirement: &70198847332800 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,7 +87,7 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70198847332800
|
91
91
|
description: Simplifies connecting to Muliple and Replication databases with rails
|
92
92
|
and active_record
|
93
93
|
email:
|