janus-ar 0.4.0 → 0.6.0

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