fresh_connection 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2c16201d2d78df2ff383e4bc7244c9668be149da
4
- data.tar.gz: 2503258f35652b002ead86bf15df8d514d98ccd7
3
+ metadata.gz: f896f7889dfe9faf024a5905f135bee636f35fe0
4
+ data.tar.gz: bf059b853f63b8beb128708c5c6f3363ca2393ca
5
5
  SHA512:
6
- metadata.gz: 98eb7cfc764ddb1ef1f01d8b811e041c8c2cd48f34a2e6accb7ac3c9c94960fd3561c5e28653a1688cd4c336cb093aff069f69c42f6fc5f7f929557f69c899fd
7
- data.tar.gz: 20fc03256242b7d105aa9194b33ee11d74d6d6260b2952c218d8d733e690cf16ee53ce1c5b565011ecdb6a9f16ccc6fbb2f4c33a8a950febc5f7f744638c697b
6
+ metadata.gz: 9e7f30d3bcbf4e26c6ba5eb4222f3e59ee27237f2d32b7a04948f5bdbb325f9c72c43f74af43916c515fc56fa57d7b93d355b03e15771fc9a24ae301bf08e109
7
+ data.tar.gz: bfc44fd46e95eb800008fb30917b3195f978b0ea6ebdfbe24b9b65fd13f09335c298254c0661797339bbe7894f62cfd8224fc019099ea51af36bd0ff57adcb4d
@@ -16,6 +16,10 @@ module FreshConnection
16
16
  @klass.manage_access(slave_access) { super }
17
17
  end
18
18
 
19
+ def pluck(*args)
20
+ @klass.manage_access(enable_slave_access) { super }
21
+ end
22
+
19
23
  private
20
24
 
21
25
  def exec_queries_with_fresh_connection
@@ -4,15 +4,16 @@ module FreshConnection
4
4
  def self.included(base)
5
5
  base.__send__(:attr_writer, :model_class)
6
6
  base.alias_method_chain :configure_connection, :fresh_connection
7
+ base.alias_method_chain :execute, :fresh_connection
7
8
  end
8
9
 
9
- def select_all(arel, name = nil, binds = [])
10
- if FreshConnection::AccessControl.slave_access?
10
+ def execute_with_fresh_connection(sql, name = nil)
11
+ if @model_class && FreshConnection::AccessControl.slave_access?
11
12
  change_connection do
12
- super(arel, "[#{@model_class.slave_group}] #{name}", binds)
13
+ execute_without_fresh_connection(sql, "[#{@model_class.slave_group}] #{name}")
13
14
  end
14
15
  else
15
- super
16
+ execute_without_fresh_connection(sql, name)
16
17
  end
17
18
  end
18
19
 
@@ -1,4 +1,4 @@
1
1
  module FreshConnection
2
- VERSION = "0.2.3"
2
+ VERSION = "0.2.4"
3
3
  end
4
4
 
@@ -38,6 +38,10 @@ describe FreshConnection do
38
38
  name = User.joins(:address).where("addresses.user_id = 1").first.name
39
39
  expect(name).to be_include("slave1")
40
40
  end
41
+
42
+ it "pluck is access to slave1" do
43
+ expect(User.pluck(:name).first).to be_include("slave")
44
+ end
41
45
  end
42
46
 
43
47
  context "access to master" do
@@ -51,9 +55,9 @@ describe FreshConnection do
51
55
  Tel.first.user.name,
52
56
  @user.address.prefecture,
53
57
  @user.tels.first.number,
54
- User.joins(:address).where("addresses.user_id = 1").first.name
58
+ User.joins(:address).where("addresses.user_id = 1").first.name,
59
+ User.pluck(:name).first
55
60
  ]
56
-
57
61
  expect(data).to be_all{|n| n.include?("master")}
58
62
 
59
63
  end
@@ -68,9 +72,10 @@ describe FreshConnection do
68
72
  @user.tels.readonly(false).first.number,
69
73
  User.includes(:tels).readonly(false).first.tels.first.number,
70
74
  User.includes(:address).readonly(false).first.address.prefecture,
71
- User.joins(:address).where("addresses.user_id = 1").readonly(false).first.name
75
+ User.joins(:address).where("addresses.user_id = 1").readonly(false).first.name,
76
+ User.readonly(false).pluck(:name).first
72
77
  ]
73
-
78
+
74
79
  expect(data).to be_all{|n| n.include?("master")}
75
80
  end
76
81
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fresh_connection
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tsukasa OISHI
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-20 00:00:00.000000000 Z
11
+ date: 2014-08-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -181,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
181
181
  version: '0'
182
182
  requirements: []
183
183
  rubyforge_project:
184
- rubygems_version: 2.2.0
184
+ rubygems_version: 2.2.2
185
185
  signing_key:
186
186
  specification_version: 4
187
187
  summary: FreshConnection supports to connect with Mysql slave servers via Load Balancers.