janus-ar 0.4.0 → 0.5.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: c98a42deb00198b9715f86f8bee613e885c046be1b6f7ece50d64c1493227b90
4
+ data.tar.gz: 2db888f02a4b707fcb9e75dc90c86aefff19f6ace5ee2a33a38c6dadc6b14ec9
5
5
  SHA512:
6
- metadata.gz: 4245ff2a4dfb38364e61eacd0482831e1767d60c9300eb167e8bda22b765531121876de5190c58ac8cc0ea5fccaedd0adf8b21791add9e311d86e35ea9172c44
7
- data.tar.gz: 6e2d88feb5bae96f25c6ef9685f2c310db92c9098728ca9eb0af63f53fb2a6c981ab17a51b1797e4d2ba625ac931d127d05838cae095526c7f588b4b08bd1998
6
+ metadata.gz: 53fdd8901b56a41a1ae2e10549fe3c87a2a1d96bb14923c5879bebe5223f81853582e941483488c8076d1cae3612a5be666df14698276ce6760294a6d9bcd9cd
7
+ data.tar.gz: 2a50f4a05ffbded2bb3bb15ab7e692251ee9daefc42d27029cb86a355d1c9321e2739c6410362b19df270c33caa4ad8357ba7c18ff4cdbc11ad81c51b85b8f05
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)
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 = 5
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.5.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