fresh_connection 0.2.3 → 0.2.4

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