associate_jsonb 0.0.10 → 6.1.4.1.1
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 +4 -4
- data/lib/associate_jsonb/arel_nodes/sql_casted_equality.rb +0 -22
- data/lib/associate_jsonb/associations/alias_tracker.rb +2 -2
- data/lib/associate_jsonb/associations/association.rb +3 -17
- data/lib/associate_jsonb/associations/association_scope.rb +9 -12
- data/lib/associate_jsonb/associations/builder/belongs_to.rb +26 -3
- data/lib/associate_jsonb/associations/foreign_association.rb +23 -0
- data/lib/associate_jsonb/associations/join_dependency.rb +22 -9
- data/lib/associate_jsonb/associations/preloader/association.rb +24 -0
- data/lib/associate_jsonb/attribute_methods.rb +2 -2
- data/lib/associate_jsonb/connection_adapters/schema_creation.rb +1 -1
- data/lib/associate_jsonb/connection_adapters/schema_statements.rb +15 -10
- data/lib/associate_jsonb/reflection.rb +4 -4
- data/lib/associate_jsonb/relation/where_clause.rb +5 -27
- data/lib/associate_jsonb/supported_rails_version.rb +1 -1
- data/lib/associate_jsonb/version.rb +1 -1
- data/lib/associate_jsonb/with_store_attribute.rb +6 -6
- data/lib/associate_jsonb.rb +5 -1
- metadata +8 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f26470e30b277fe8ef0189ca4bef7eacf8cf7d4fa22008a879f5c1b187f9c476
|
4
|
+
data.tar.gz: 28ca2bd98358795e4e9d6a59e14738536e7a2696e0b4eacb11612e5bc33840a6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6475d5e18d9c67d1b4b13a4770640ba79031357317dd185d77b8c959b8fdf1f59b52d6ee12fe1bed2e18652ed36747ce22c33af390bd63a3dbb87249c81479d2
|
7
|
+
data.tar.gz: 300b6fb1c2385bab73823765ee42d27e2b0a047efcf10b58727ad5e2973672910ca07a57ae76b64ff4ab32f006bf934d6376ddd975b9380600404d6264860955
|
@@ -1,28 +1,6 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
-
# module AssociateJsonb
|
5
|
-
# module ArelNodes
|
6
|
-
# class SqlCastedEquality < ::Arel::Nodes::Equality
|
7
|
-
# attr_reader :original_left
|
8
|
-
# def initialize(left, cast_as, right)
|
9
|
-
# @original_left = left
|
10
|
-
# super(
|
11
|
-
# ::Arel::Nodes::NamedFunction.new(
|
12
|
-
# "CAST",
|
13
|
-
# [ left.as(cast_as) ]
|
14
|
-
# ),
|
15
|
-
# right
|
16
|
-
# )
|
17
|
-
# end
|
18
|
-
# end
|
19
|
-
# end
|
20
|
-
# end
|
21
|
-
|
22
|
-
|
23
|
-
# encoding: utf-8
|
24
|
-
# frozen_string_literal: true
|
25
|
-
|
26
4
|
module AssociateJsonb
|
27
5
|
module ArelNodes
|
28
6
|
class SqlCastedEquality < AssociateJsonb::ArelNodes::SqlCastedBinary
|
@@ -5,8 +5,8 @@ require "active_support/core_ext/string/conversions"
|
|
5
5
|
module AssociateJsonb
|
6
6
|
module Associations
|
7
7
|
module AliasTracker # :nodoc:
|
8
|
-
def aliased_table_for(
|
9
|
-
super(
|
8
|
+
def aliased_table_for(arel_table, table_name = nil, store_tracker: nil)
|
9
|
+
super(arel_table, table_name).with_store_tracker(store_tracker)
|
10
10
|
end
|
11
11
|
end
|
12
12
|
end
|
@@ -12,28 +12,14 @@ module AssociateJsonb
|
|
12
12
|
assigned_keys = record.changed_attribute_names_to_save
|
13
13
|
assigned_keys += except_from_scope_attributes.keys.map(&:to_s)
|
14
14
|
attributes = scope_for_create.except!(*(assigned_keys - skip_assign))
|
15
|
+
|
15
16
|
if attributes.key?(reflection.foreign_store_key.to_s)
|
16
|
-
|
17
|
-
attributes[reflection.foreign_key.to_s] = v
|
17
|
+
attributes[reflection.foreign_key.to_s] = attributes.delete(reflection.foreign_store_key.to_s)
|
18
18
|
end
|
19
|
+
|
19
20
|
record.send(:_assign_attributes, attributes) if attributes.any?
|
20
21
|
set_inverse_instance(record)
|
21
22
|
end
|
22
|
-
|
23
|
-
private
|
24
|
-
def creation_attributes
|
25
|
-
return super if reflection.belongs_to?
|
26
|
-
return super unless reflection.foreign_store?
|
27
|
-
|
28
|
-
attributes = {}
|
29
|
-
|
30
|
-
jsonb_store = reflection.foreign_store_attr
|
31
|
-
attributes[jsonb_store] ||= {}
|
32
|
-
attributes[jsonb_store][reflection.foreign_store_key] =
|
33
|
-
owner[reflection.active_record_primary_key]
|
34
|
-
|
35
|
-
attributes
|
36
|
-
end
|
37
23
|
end
|
38
24
|
end
|
39
25
|
end
|
@@ -4,17 +4,13 @@
|
|
4
4
|
module AssociateJsonb
|
5
5
|
module Associations
|
6
6
|
module AssociationScope #:nodoc:
|
7
|
-
|
8
7
|
def get_chain(reflection, association, tracker)
|
9
8
|
name = reflection.name
|
10
9
|
chain = [ActiveRecord::Reflection::RuntimeReflection.new(reflection, association)]
|
11
10
|
reflection.chain.drop(1).each do |refl|
|
12
|
-
aliased_table = tracker.aliased_table_for(
|
13
|
-
refl.
|
14
|
-
|
15
|
-
refl.klass.type_caster,
|
16
|
-
refl.klass.store_column_attribute_tracker
|
17
|
-
)
|
11
|
+
aliased_table = tracker.aliased_table_for(refl.klass.arel_table, store_tracker: refl.klass.store_column_attribute_tracker) do
|
12
|
+
refl.alias_candidate(name)
|
13
|
+
end
|
18
14
|
chain << ActiveRecord::Associations::AssociationScope::ReflectionProxy.new(refl, aliased_table)
|
19
15
|
end
|
20
16
|
chain
|
@@ -25,18 +21,19 @@ module AssociateJsonb
|
|
25
21
|
reflection = owner_reflection.instance_variable_get(:@reflection)
|
26
22
|
return super unless reflection&.foreign_store?
|
27
23
|
|
24
|
+
primary_key = reflection.join_primary_key
|
25
|
+
foreign_key = reflection.join_foreign_key
|
26
|
+
store_key = reflection.foreign_store_key || primary_key
|
28
27
|
|
29
|
-
join_keys = owner_reflection.join_keys
|
30
28
|
table = owner_reflection.aliased_table
|
31
|
-
|
32
|
-
value = transform_value(owner[join_keys.foreign_key])
|
29
|
+
value = transform_value(owner[foreign_key])
|
33
30
|
|
34
31
|
apply_jsonb_equality(
|
35
32
|
scope,
|
36
33
|
table,
|
37
34
|
reflection.foreign_store_attr,
|
38
|
-
|
39
|
-
|
35
|
+
store_key.to_s,
|
36
|
+
owner_reflection.join_foreign_key,
|
40
37
|
value,
|
41
38
|
reflection.active_record
|
42
39
|
)
|
@@ -5,6 +5,29 @@ module AssociateJsonb
|
|
5
5
|
module Associations
|
6
6
|
module Builder
|
7
7
|
module BelongsTo #:nodoc:
|
8
|
+
# Maybe convert to builder callbacks here in next iteration
|
9
|
+
# def define_callbacks(model, reflection)
|
10
|
+
# super
|
11
|
+
# add_after_jsonb_initialize_callbacks(model, reflection) if reflection.jsonb_store?
|
12
|
+
# add_after_foreign_store_initialize_callbacks(model, reflection) if reflection.foreign_store?
|
13
|
+
# end
|
14
|
+
#
|
15
|
+
# def add_after_jsonb_initialize_callbacks(model, reflection)
|
16
|
+
# model.after_initialize lambda {|record|
|
17
|
+
# association = association(reflection.name)
|
18
|
+
# p model, reflection.join_primary_key, reflection.join_foreign_key, reflection.options
|
19
|
+
# p record.attributes
|
20
|
+
# # record.attributes._write_attribute()
|
21
|
+
# }
|
22
|
+
# end
|
23
|
+
#
|
24
|
+
# def add_after_foreign_store_initialize_callbacks(model, reflection)
|
25
|
+
# model.after_initialize lambda {|record|
|
26
|
+
# association = association(reflection.name)
|
27
|
+
# # record.attributes._write_attribute()
|
28
|
+
# }
|
29
|
+
# end
|
30
|
+
|
8
31
|
def valid_options(options)
|
9
32
|
super + %i[ store store_key ]
|
10
33
|
end
|
@@ -18,7 +41,7 @@ module AssociateJsonb
|
|
18
41
|
end
|
19
42
|
|
20
43
|
def add_association_accessor_methods(mixin, reflection)
|
21
|
-
foreign_key = reflection.
|
44
|
+
foreign_key = reflection.join_foreign_key.to_s
|
22
45
|
key = (reflection.jsonb_store_key || foreign_key).to_s
|
23
46
|
store = reflection.jsonb_store_attr
|
24
47
|
|
@@ -35,8 +58,8 @@ module AssociateJsonb
|
|
35
58
|
foreign_type = :integer
|
36
59
|
sql_type = "numeric"
|
37
60
|
begin
|
38
|
-
primary_key = reflection.
|
39
|
-
primary_column = reflection.klass.
|
61
|
+
primary_key = reflection.join_primary_key.to_s
|
62
|
+
primary_column = reflection.klass.columns_hash[primary_key]
|
40
63
|
|
41
64
|
if primary_column
|
42
65
|
foreign_type = primary_column.type
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module AssociateJsonb
|
5
|
+
module Associations
|
6
|
+
module ForeignAssociation # :nodoc:
|
7
|
+
private
|
8
|
+
# Sets the owner attributes on the given record
|
9
|
+
def set_owner_attributes(record)
|
10
|
+
return if options[:through]
|
11
|
+
return super unless reflection.foreign_store?
|
12
|
+
|
13
|
+
jsonb_store = reflection.foreign_store_attr.to_s
|
14
|
+
value = record._read_attribute(jsonb_store).presence || {}
|
15
|
+
fk_value = owner._read_attribute(reflection.join_foreign_key)
|
16
|
+
value[reflection.foreign_store_key] = fk_value
|
17
|
+
|
18
|
+
record._write_attribute(reflection.join_primary_key, fk_value)
|
19
|
+
record._write_attribute(jsonb_store, value)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -6,15 +6,28 @@ module AssociateJsonb
|
|
6
6
|
module Associations
|
7
7
|
module JoinDependency # :nodoc:
|
8
8
|
private
|
9
|
-
def
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
)
|
17
|
-
|
9
|
+
def make_constraints(parent, child, join_type)
|
10
|
+
foreign_table = parent.table
|
11
|
+
foreign_klass = parent.base_klass
|
12
|
+
child.join_constraints(foreign_table, foreign_klass, join_type, alias_tracker) do |reflection|
|
13
|
+
table, terminated = @joined_tables[reflection]
|
14
|
+
root = reflection == child.reflection
|
15
|
+
|
16
|
+
if table && (!root || !terminated)
|
17
|
+
@joined_tables[reflection] = [table, root] if root
|
18
|
+
next table, true
|
19
|
+
end
|
20
|
+
|
21
|
+
table_name = @references[reflection.name.to_sym]&.to_s
|
22
|
+
|
23
|
+
table = alias_tracker.aliased_table_for(reflection.klass.arel_table, table_name, store_tracker: reflection.klass.store_column_attribute_tracker) do
|
24
|
+
name = reflection.alias_candidate(parent.table_name)
|
25
|
+
root ? name : "#{name}_join"
|
26
|
+
end
|
27
|
+
|
28
|
+
@joined_tables[reflection] ||= [table, root] if join_type == Arel::Nodes::OuterJoin
|
29
|
+
table
|
30
|
+
end.concat child.children.flat_map { |c| make_constraints(child, c, join_type) }
|
18
31
|
end
|
19
32
|
end
|
20
33
|
end
|
@@ -18,6 +18,30 @@ module AssociateJsonb
|
|
18
18
|
).intersects_with(ids)
|
19
19
|
)
|
20
20
|
end
|
21
|
+
|
22
|
+
private
|
23
|
+
def load_records
|
24
|
+
return super unless reflection.foreign_store?
|
25
|
+
# owners can be duplicated when a relation has a collection association join
|
26
|
+
# #compare_by_identity makes such owners different hash keys
|
27
|
+
@records_by_owner = {}.compare_by_identity
|
28
|
+
raw_records = owner_keys.empty? ? [] : records_for(owner_keys)
|
29
|
+
|
30
|
+
@preloaded_records = raw_records.select do |record|
|
31
|
+
assignments = false
|
32
|
+
|
33
|
+
owners_by_key[convert_key(record[association_key_name])].each do |owner|
|
34
|
+
entries = (@records_by_owner[owner] ||= [])
|
35
|
+
|
36
|
+
if reflection.collection? || entries.empty?
|
37
|
+
entries << record
|
38
|
+
assignments = true
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
assignments
|
43
|
+
end
|
44
|
+
end
|
21
45
|
end
|
22
46
|
end
|
23
47
|
end
|
@@ -11,8 +11,8 @@ module AssociateJsonb
|
|
11
11
|
|
12
12
|
private
|
13
13
|
def attributes_with_info(attribute_names)
|
14
|
-
attribute_names.
|
15
|
-
|
14
|
+
attribute_names.index_with do |name|
|
15
|
+
_fetch_attribute(name)
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
@@ -12,38 +12,43 @@ module AssociateJsonb
|
|
12
12
|
execute schema_creation.accept(AddJsonbForeignKeyFunction.new)
|
13
13
|
end
|
14
14
|
|
15
|
-
def create_table(table_name, **options)
|
16
|
-
td = create_table_definition(table_name, **options)
|
15
|
+
def create_table(table_name, id: :primary_key, primary_key: nil, force: nil, **options)
|
16
|
+
td = create_table_definition(table_name, **extract_table_options!(options))
|
17
17
|
|
18
|
-
if
|
19
|
-
pk =
|
20
|
-
|
18
|
+
if id && !td.as
|
19
|
+
pk = primary_key || ActiveRecord::Base.get_primary_key(table_name.to_s.singularize)
|
20
|
+
|
21
|
+
if id.is_a?(Hash)
|
22
|
+
options.merge!(id.except(:type))
|
23
|
+
id = id.fetch(:type, :primary_key)
|
21
24
|
end
|
22
25
|
|
23
26
|
if pk.is_a?(Array)
|
24
27
|
td.primary_keys pk
|
25
28
|
else
|
26
|
-
td.primary_key pk,
|
29
|
+
td.primary_key pk, id, **options
|
27
30
|
end
|
28
31
|
end
|
29
32
|
|
30
33
|
yield td if block_given?
|
31
34
|
|
32
|
-
if
|
33
|
-
drop_table(table_name,
|
35
|
+
if force
|
36
|
+
drop_table(table_name, force: force, if_exists: true)
|
37
|
+
else
|
38
|
+
schema_cache.clear_data_source_cache!(table_name.to_s)
|
34
39
|
end
|
35
40
|
|
36
41
|
result = execute schema_creation.accept td
|
37
42
|
|
38
43
|
td.indexes.each do |column_name, index_options|
|
39
|
-
add_index(table_name, column_name, index_options)
|
44
|
+
add_index(table_name, column_name, **index_options, if_not_exists: td.if_not_exists)
|
40
45
|
end
|
41
46
|
|
42
47
|
td.constraints.each do |ct|
|
43
48
|
add_constraint(table_name, **ct)
|
44
49
|
end
|
45
50
|
|
46
|
-
if table_comment =
|
51
|
+
if table_comment = td.comment.presence
|
47
52
|
change_table_comment(table_name, table_comment)
|
48
53
|
end
|
49
54
|
|
@@ -18,7 +18,7 @@ module AssociateJsonb
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def jsonb_store_key
|
21
|
-
options[:store_key].presence ||
|
21
|
+
options[:store_key].presence || join_foreign_key
|
22
22
|
end
|
23
23
|
|
24
24
|
def foreign_store?
|
@@ -36,7 +36,7 @@ module AssociateJsonb
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def foreign_store_key
|
39
|
-
options[:foreign_store_key].presence ||
|
39
|
+
options[:foreign_store_key].presence || join_primary_key
|
40
40
|
end
|
41
41
|
|
42
42
|
def join_scope(table, foreign_table, foreign_klass)
|
@@ -52,8 +52,8 @@ module AssociateJsonb
|
|
52
52
|
|
53
53
|
scope_chain_items.inject(klass_scope, &:merge!)
|
54
54
|
|
55
|
-
key =
|
56
|
-
foreign_key =
|
55
|
+
key = join_primary_key
|
56
|
+
foreign_key = join_foreign_key
|
57
57
|
|
58
58
|
if foreign_store?
|
59
59
|
klass_scope.where!(
|
@@ -4,36 +4,14 @@
|
|
4
4
|
module AssociateJsonb
|
5
5
|
module Relation
|
6
6
|
module WhereClause
|
7
|
-
def to_h(table_name = nil)
|
8
|
-
equalities
|
9
|
-
|
10
|
-
equalities = equalities.select do |node|
|
11
|
-
node.original_left.relation.name == table_name
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
equalities.map { |node|
|
7
|
+
def to_h(table_name = nil, equality_only: false)
|
8
|
+
equalities(predicates, equality_only).each_with_object({}) do |node, hash|
|
9
|
+
next if table_name&.!= node.original_left.relation.name
|
16
10
|
name = node.original_left.name.to_s
|
17
11
|
value = extract_node_value(node.right)
|
18
|
-
[name
|
19
|
-
}.to_h
|
20
|
-
end
|
21
|
-
|
22
|
-
private
|
23
|
-
def equalities(predicates)
|
24
|
-
equalities = []
|
25
|
-
|
26
|
-
predicates.each do |node|
|
27
|
-
case node
|
28
|
-
when Arel::Nodes::Equality, Arel::Nodes::SqlCastedEquality
|
29
|
-
equalities << node
|
30
|
-
when Arel::Nodes::And
|
31
|
-
equalities.concat equalities(node.children)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
equalities
|
12
|
+
hash[name] = value
|
36
13
|
end
|
14
|
+
end
|
37
15
|
end
|
38
16
|
end
|
39
17
|
end
|
@@ -99,15 +99,15 @@ module AssociateJsonb
|
|
99
99
|
end
|
100
100
|
|
101
101
|
def store_column_attribute(store, attr, cast_type = ActiveRecord::Type::Value.new, sql_type: nil, key: nil, **attribute_opts)
|
102
|
-
store = store.
|
103
|
-
attr = attr.
|
102
|
+
store = store.to_s
|
103
|
+
attr = attr.to_s
|
104
104
|
key ||= attr
|
105
105
|
key = key.to_s
|
106
106
|
array = attribute_opts[:array]
|
107
107
|
attribute attr, cast_type, **attribute_opts
|
108
108
|
|
109
109
|
instance_eval <<~CODE, __FILE__, __LINE__ + 1
|
110
|
-
add_store_column_attribute_name(
|
110
|
+
add_store_column_attribute_name(attr, store, key, { sql_type: sql_type, type: cast_type, opts: attribute_opts })
|
111
111
|
CODE
|
112
112
|
|
113
113
|
include WithStoreAttribute::InstanceMethodsOnActivation.new(self, store, attr, key, array)
|
@@ -120,9 +120,9 @@ module AssociateJsonb
|
|
120
120
|
|
121
121
|
array_or_attr = ->(value) {
|
122
122
|
is_array \
|
123
|
-
|
124
|
-
|
125
|
-
|
123
|
+
? %Q(Array(#{value})) \
|
124
|
+
: %Q(#{value})
|
125
|
+
}
|
126
126
|
|
127
127
|
on_store_change = "_write_attribute(:#{attribute}, #{array_or_attr.call %Q(#{store}["#{key}"])})"
|
128
128
|
on_attr_change = "super(#{array_or_attr.call %Q(given)})"
|
data/lib/associate_jsonb.rb
CHANGED
@@ -36,7 +36,7 @@ module AssociateJsonb
|
|
36
36
|
##
|
37
37
|
# Enables the use of `jsonb_nested_set` for hash updates
|
38
38
|
#
|
39
|
-
# if passed a class, or a list of classes, those classes will be added
|
39
|
+
# if passed a class, or a list of classes, those classes will be added to
|
40
40
|
# the enabled classes. if no argument is given, and the enabled class list is
|
41
41
|
# empty, `ActiveRecord::ConnectionAdapters::PostgreSQL::OID::Jsonb` is added
|
42
42
|
# to the list of enabled classes
|
@@ -187,6 +187,10 @@ ActiveSupport.on_load :active_record do
|
|
187
187
|
AssociateJsonb::Associations::Preloader::Association
|
188
188
|
)
|
189
189
|
|
190
|
+
ActiveRecord::Associations::ForeignAssociation.prepend(
|
191
|
+
AssociateJsonb::Associations::ForeignAssociation
|
192
|
+
)
|
193
|
+
|
190
194
|
%i[
|
191
195
|
AlterTable
|
192
196
|
ConstraintDefinition
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: associate_jsonb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 6.1.4.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sampson Crowley
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-09-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -16,20 +16,20 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 6.
|
19
|
+
version: 6.1.4
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 6.
|
22
|
+
version: 6.1.4.1
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 6.
|
29
|
+
version: 6.1.4
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 6.
|
32
|
+
version: 6.1.4.1
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: pg
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -149,6 +149,7 @@ files:
|
|
149
149
|
- lib/associate_jsonb/associations/builder/has_many.rb
|
150
150
|
- lib/associate_jsonb/associations/builder/has_one.rb
|
151
151
|
- lib/associate_jsonb/associations/conflicting_association.rb
|
152
|
+
- lib/associate_jsonb/associations/foreign_association.rb
|
152
153
|
- lib/associate_jsonb/associations/has_many_association.rb
|
153
154
|
- lib/associate_jsonb/associations/join_dependency.rb
|
154
155
|
- lib/associate_jsonb/associations/preloader/association.rb
|
@@ -190,7 +191,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
190
191
|
- !ruby/object:Gem::Version
|
191
192
|
version: '0'
|
192
193
|
requirements: []
|
193
|
-
rubygems_version: 3.1.
|
194
|
+
rubygems_version: 3.1.6
|
194
195
|
signing_key:
|
195
196
|
specification_version: 4
|
196
197
|
summary: Store database references in PostgreSQL Jsonb columns
|