janus-ar 0.4.0 → 0.6.0

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
  SHA256:
3
- metadata.gz: 0c569e79520f7bb9b717f510e846d92be2ece788e5a435877490caf446bb6f88
4
- data.tar.gz: 6989399531b92524bd8ed5e23422a2c9e619bb2c074f244c7ab74c55c208c0f1
3
+ metadata.gz: 02c92206a54d203c923936849e6fd8c5621c8da702c4f0e327680a6084f86a75
4
+ data.tar.gz: b0e4746b02cf9e1bdf123cf7ad8b0e5ec0485bbb1433d6e9b6e98483b2afd132
5
5
  SHA512:
6
- metadata.gz: 4245ff2a4dfb38364e61eacd0482831e1767d60c9300eb167e8bda22b765531121876de5190c58ac8cc0ea5fccaedd0adf8b21791add9e311d86e35ea9172c44
7
- data.tar.gz: 6e2d88feb5bae96f25c6ef9685f2c310db92c9098728ca9eb0af63f53fb2a6c981ab17a51b1797e4d2ba625ac931d127d05838cae095526c7f588b4b08bd1998
6
+ metadata.gz: 228491371a233938062950c382d31e5a68bbf6e60c20c659ffd97920e2b2b8beaab5df874ddc6d4ce5eee15a7efab7776eae5fe6e547e60a91173ba72341d654
7
+ data.tar.gz: 9bd2c0749f350bfe663d4d64b2125c6fcc7bb10293b712178b2a6361f6f5a7ae4178b3651c0bca332e35a9180e555af9fb6c7f6e618a1f5911eb8427daf3b34b
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ janus-ar-*.gem
data/.rubocop.yml CHANGED
@@ -9,4 +9,7 @@ Rails/Delegate:
9
9
 
10
10
  Metrics/BlockLength:
11
11
  Exclude:
12
- - spec/**/*
12
+ - spec/**/*
13
+
14
+ Metrics/AbcSize:
15
+ Max: 22
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- janus-ar (0.3.0)
4
+ janus-ar (0.4.0)
5
5
 
6
6
  GEM
7
7
  remote: http://rubygems.org/
data/README.md CHANGED
@@ -35,10 +35,10 @@ Update your **database.yml** as follows:
35
35
  ```yml
36
36
  development:
37
37
  adapter: janus_mysql2
38
+ database: database_name
38
39
  janus:
39
40
  primary:
40
41
  <<: *default
41
- database: database_name
42
42
  host: primary-host.local
43
43
  replica:
44
44
  <<: *default
@@ -30,7 +30,6 @@ module ActiveRecord
30
30
 
31
31
  @replica_config = args[0][:janus]['replica']
32
32
  args[0] = args[0][:janus]['primary']
33
-
34
33
  super(*args)
35
34
  @connection_parameters ||= args[0]
36
35
  update_config
@@ -89,11 +88,14 @@ module ActiveRecord
89
88
  end
90
89
 
91
90
  def can_go_to_replica?(sql)
92
- return false if Janus::Context.use_primary? ||
93
- open_transactions.positive? ||
94
- SQL_PRIMARY_MATCHERS.any? { |matcher| sql =~ matcher }
91
+ !should_go_to_primary?(sql)
92
+ end
95
93
 
96
- true
94
+ def should_go_to_primary?(sql)
95
+ Janus::Context.use_primary? ||
96
+ write_query?(sql) ||
97
+ open_transactions.positive? ||
98
+ SQL_PRIMARY_MATCHERS.any? { |matcher| sql =~ matcher }
97
99
  end
98
100
 
99
101
  def send_to_replica(sql, connection: nil, method: :exec_query)
@@ -106,7 +108,7 @@ module ActiveRecord
106
108
  end
107
109
 
108
110
  def write_query?(sql)
109
- %w[INSERT UPDATE DELETE LOCK].include?(sql.split(' ').first)
111
+ %w[INSERT UPDATE DELETE LOCK CREATE GRANT].include?(sql.split(' ').first)
110
112
  end
111
113
 
112
114
  def replica_connection
data/lib/janus/version.rb CHANGED
@@ -4,7 +4,7 @@ module Janus
4
4
  unless defined?(::Janus::VERSION)
5
5
  module VERSION
6
6
  MAJOR = 0
7
- MINOR = 4
7
+ MINOR = 6
8
8
  PATCH = 0
9
9
  PRE = nil
10
10
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: janus-ar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lloyd Watkin
@@ -117,6 +117,7 @@ extra_rdoc_files: []
117
117
  files:
118
118
  - ".github/dependabot.yml"
119
119
  - ".github/workflows/ci.yml"
120
+ - ".gitignore"
120
121
  - ".rspec"
121
122
  - ".rubocop.yml"
122
123
  - CODE_OF_CONDUCT.md