better_record 0.22.3 → 0.22.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
  SHA256:
3
- metadata.gz: cce50574a4e95858de7fe1de919d6cdffe29c51246203d4989de4bce44ed9aab
4
- data.tar.gz: a553f2797bc8f10387caede3622f6eec6c2403d74560180588584920f5a5c027
3
+ metadata.gz: d426d50cc2eb9e82f0aaaddbe50f9ca65381cca3af47576860b919f55e7ab2cf
4
+ data.tar.gz: 26e92d8f35ff71f9c297f274f2e96df77064d5f4995fb73c54188b964f343532
5
5
  SHA512:
6
- metadata.gz: 4cd7258cf3b5b193dc40b56739927db8e71ad04cb135d65e4504211416bb5a503790f749b677b9138f125100aa5d91566490d19d446038a3c9df263706b1b963
7
- data.tar.gz: 9fd2da6a802410314a7ee890feb62d397c0fecb2b56b2a8c21dffae56f0ab5bda55ae4e6a87c5ccbfec63c075700198db7735139f1ca4aba0c24fa82c9d8f980
6
+ metadata.gz: 260ce5d391640da67b9046744fdae9441b2c7be2972e8c249a3957b625af1a4f508ca31053bf063035fd1ef8c1eef58da89e79de50ae225d41027a4eee12906c
7
+ data.tar.gz: 68e6e7120f64441c6281747a051cbf908337595085ca8a8cdd24769585856d94e96def576a8845b7f93fa0e197d6fb0a0427421731f05de1cda8eac80ed55846
@@ -5,11 +5,21 @@ require 'active_record/reflection'
5
5
  module ActiveRecord
6
6
  module Reflection
7
7
  class AbstractReflection
8
- def join_scope(table, foreign_klass)
8
+ def join_scope(table, foreign_table, foreign_klass = nil)
9
+ unless foreign_klass
10
+ foreign_klass = foreign_table
11
+ foreign_table = nil
12
+ end
13
+
9
14
  predicate_builder = predicate_builder(table)
10
15
  scope_chain_items = join_scopes(table, predicate_builder)
11
16
  klass_scope = klass_join_scope(table, predicate_builder)
12
17
 
18
+ key = join_keys.key
19
+ foreign_key = join_keys.foreign_key
20
+
21
+ klass_scope.where!(table[key].eq(foreign_table[foreign_key])) if foreign_table
22
+
13
23
  if type
14
24
  if options[:strict_primary_type]
15
25
  klass_scope.where!(type => BetterRecord::PolymorphicOverride.polymorphic_value(foreign_klass, options))
@@ -18,10 +28,33 @@ module ActiveRecord
18
28
  end
19
29
  end
20
30
 
31
+ ntc =
32
+ begin
33
+ klass.finder_needs_type_condition?
34
+ rescue
35
+ false
36
+ end
37
+
38
+ if ntc
39
+ klass_scope.where!(klass.send(:type_condition, table))
40
+ end
41
+
21
42
  scope_chain_items.inject(klass_scope, &:merge!)
22
43
  end
23
44
  end
24
45
 
46
+ class MacroReflection < AbstractReflection
47
+ end
48
+
49
+ class ThroughReflection < AbstractReflection #:nodoc:
50
+ delegate :foreign_key, :foreign_type, :association_foreign_key, :join_id_for,
51
+ :active_record_primary_key, :type, :get_join_keys, to: :source_reflection
52
+ end
53
+
54
+ class PolymorphicReflection < AbstractReflection # :nodoc:
55
+ delegate :klass, :scope, :plural_name, :type, :get_join_keys, :scope_for, to: :@reflection
56
+ end
57
+
25
58
  class RuntimeReflection < AbstractReflection # :nodoc:
26
59
  delegate :scope, :type, :constraints, :get_join_keys, :options, to: :@reflection
27
60
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BetterRecord
4
- VERSION = '0.22.3'
4
+ VERSION = '0.22.4'
5
5
  end
@@ -1 +1 @@
1
- 2.5.1
1
+ 2.6.3
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: better_record
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.3
4
+ version: 0.22.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sampson Crowley
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-24 00:00:00.000000000 Z
11
+ date: 2019-05-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '5'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 5.2.2.1
22
+ version: 5.2.3
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '5'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 5.2.2.1
32
+ version: 5.2.3
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: pg
35
35
  requirement: !ruby/object:Gem::Requirement