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
- dup_klass = class_eval <<-STR
26
+ con_class = connection_class_name.constantize
27
+ dup_klass = class_eval <<-STR
27
28
  #{connection_class_name}Dup = dup
28
- STR
29
-
30
- dup_klass.class_eval <<-STR
31
- class << self
32
- def model_name
33
- '#{self.name}'.constantize.model_name
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
- STR
36
+ end
37
+ STR
37
38
 
38
- extend_dup_class(dup_klass,connection_class_name)
39
- dup_klass.table_name = table_name.to_s.split('.').last
40
- dup_klass.table_name_prefix = connection_class_name.constantize.table_name_prefix
41
- dup_klass
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
@@ -1,4 +1,4 @@
1
1
  module ConnectionManager
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
3
3
  end
4
4
 
@@ -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.2
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-08 00:00:00.000000000Z
12
+ date: 2012-06-15 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
16
- requirement: &70332644333500 !ruby/object:Gem::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: *70332644333500
24
+ version_requirements: *70198847335500
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &70332644332560 !ruby/object:Gem::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: *70332644332560
35
+ version_requirements: *70198847335080
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: autotest
38
- requirement: &70332644331540 !ruby/object:Gem::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: *70332644331540
46
+ version_requirements: *70198847334620
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: mocha
49
- requirement: &70332644330700 !ruby/object:Gem::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: *70332644330700
57
+ version_requirements: *70198847334200
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: factory_girl
60
- requirement: &70332644317680 !ruby/object:Gem::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: *70332644317680
68
+ version_requirements: *70198847333780
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: activesupport
71
- requirement: &70332644316100 !ruby/object:Gem::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: *70332644316100
79
+ version_requirements: *70198847333260
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: mysql2
82
- requirement: &70332644315060 !ruby/object:Gem::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: *70332644315060
90
+ version_requirements: *70198847332800
91
91
  description: Simplifies connecting to Muliple and Replication databases with rails
92
92
  and active_record
93
93
  email: