torque-postgresql 2.4.4 → 3.0.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 +4 -4
- data/README.rdoc +0 -17
- data/lib/torque/postgresql/adapter/database_statements.rb +32 -74
- data/lib/torque/postgresql/adapter/oid/enum_set.rb +1 -1
- data/lib/torque/postgresql/adapter/oid.rb +0 -3
- data/lib/torque/postgresql/adapter/quoting.rb +12 -20
- data/lib/torque/postgresql/adapter/schema_creation.rb +1 -2
- data/lib/torque/postgresql/adapter/schema_definitions.rb +0 -37
- data/lib/torque/postgresql/adapter/schema_dumper.rb +2 -60
- data/lib/torque/postgresql/adapter/schema_statements.rb +2 -74
- data/lib/torque/postgresql/adapter.rb +2 -11
- data/lib/torque/postgresql/associations/belongs_to_many_association.rb +7 -6
- data/lib/torque/postgresql/associations/{association.rb → foreign_association.rb} +1 -4
- data/lib/torque/postgresql/associations/preloader/association.rb +53 -26
- data/lib/torque/postgresql/associations/preloader/loader_query.rb +36 -0
- data/lib/torque/postgresql/associations/preloader.rb +1 -0
- data/lib/torque/postgresql/associations.rb +6 -1
- data/lib/torque/postgresql/attributes/builder/period.rb +6 -2
- data/lib/torque/postgresql/auxiliary_statement/settings.rb +22 -75
- data/lib/torque/postgresql/auxiliary_statement.rb +40 -39
- data/lib/torque/postgresql/base.rb +13 -33
- data/lib/torque/postgresql/config.rb +3 -30
- data/lib/torque/postgresql/inheritance.rb +1 -3
- data/lib/torque/postgresql/migration/command_recorder.rb +2 -12
- data/lib/torque/postgresql/railtie.rb +1 -5
- data/lib/torque/postgresql/reflection/abstract_reflection.rb +44 -20
- data/lib/torque/postgresql/reflection/belongs_to_many_reflection.rb +2 -2
- data/lib/torque/postgresql/relation/auxiliary_statement.rb +15 -28
- data/lib/torque/postgresql/relation.rb +10 -12
- data/lib/torque/postgresql/schema_cache.rb +2 -7
- data/lib/torque/postgresql/version.rb +1 -1
- data/lib/torque/postgresql.rb +1 -2
- data/lib/torque-postgresql.rb +0 -1
- data/spec/schema.rb +14 -30
- data/spec/spec_helper.rb +1 -2
- data/spec/tests/arel_spec.rb +2 -4
- data/spec/tests/auxiliary_statement_spec.rb +35 -374
- data/spec/tests/belongs_to_many_spec.rb +2 -99
- data/spec/tests/distinct_on_spec.rb +1 -1
- data/spec/tests/enum_set_spec.rb +10 -10
- data/spec/tests/enum_spec.rb +0 -90
- data/spec/tests/has_many_spec.rb +0 -46
- data/spec/tests/relation_spec.rb +1 -1
- data/spec/tests/table_inheritance_spec.rb +15 -11
- metadata +11 -37
- data/lib/torque/postgresql/auxiliary_statement/recursive.rb +0 -149
- data/lib/torque/postgresql/table_name.rb +0 -41
- data/lib/torque/range.rb +0 -22
- data/spec/models/category.rb +0 -2
- data/spec/models/internal/user.rb +0 -5
- data/spec/tests/range_spec.rb +0 -36
- data/spec/tests/schema_spec.rb +0 -134
@@ -20,14 +20,6 @@ RSpec.describe 'BelongsToMany' do
|
|
20
20
|
|
21
21
|
model.belongs_to_many(:tests)
|
22
22
|
end
|
23
|
-
|
24
|
-
it 'allows setting up foreign key and primary_key as symbol' do
|
25
|
-
model.belongs_to_many(:tests, foreign_key: :test_ids, primary_key: :test_id)
|
26
|
-
|
27
|
-
reflection = model._reflections['tests']
|
28
|
-
expect(reflection.foreign_key).to be_eql('test_ids')
|
29
|
-
expect(reflection.active_record_primary_key).to be_eql('test_id')
|
30
|
-
end
|
31
23
|
end
|
32
24
|
|
33
25
|
context 'on association' do
|
@@ -352,7 +344,8 @@ RSpec.describe 'BelongsToMany' do
|
|
352
344
|
subject.tags.concat(records)
|
353
345
|
|
354
346
|
entries = Video.all
|
355
|
-
|
347
|
+
arguments = { records: entries, associations: :tags, available_records: Tag.all.to_a }
|
348
|
+
ActiveRecord::Associations::Preloader.new(**arguments).call
|
356
349
|
entries = entries.load
|
357
350
|
|
358
351
|
expect(entries.size).to be_eql(1)
|
@@ -400,94 +393,4 @@ RSpec.describe 'BelongsToMany' do
|
|
400
393
|
end
|
401
394
|
end
|
402
395
|
end
|
403
|
-
|
404
|
-
context 'using uuid' do
|
405
|
-
let(:connection) { ActiveRecord::Base.connection }
|
406
|
-
let(:game) { Class.new(ActiveRecord::Base) }
|
407
|
-
let(:player) { Class.new(ActiveRecord::Base) }
|
408
|
-
let(:other) { player.create }
|
409
|
-
|
410
|
-
# TODO: Set as a shred example
|
411
|
-
before do
|
412
|
-
connection.create_table(:players, id: :uuid) { |t| t.string :name }
|
413
|
-
connection.create_table(:games, id: :uuid) { |t| t.uuid :player_ids, array: true }
|
414
|
-
|
415
|
-
options = { anonymous_class: player, foreign_key: :player_ids }
|
416
|
-
options[:inverse_of] = false if Torque::PostgreSQL::AR610
|
417
|
-
|
418
|
-
game.table_name = 'games'
|
419
|
-
player.table_name = 'players'
|
420
|
-
game.belongs_to_many :players, **options
|
421
|
-
end
|
422
|
-
|
423
|
-
subject { game.create }
|
424
|
-
|
425
|
-
it 'loads associated records' do
|
426
|
-
subject.update(player_ids: [other.id])
|
427
|
-
expect(subject.players.to_sql).to be_eql(<<-SQL.squish)
|
428
|
-
SELECT "players".* FROM "players" WHERE "players"."id" IN ('#{other.id}')
|
429
|
-
SQL
|
430
|
-
|
431
|
-
expect(subject.players.load).to be_a(ActiveRecord::Associations::CollectionProxy)
|
432
|
-
expect(subject.players.to_a).to be_eql([other])
|
433
|
-
end
|
434
|
-
|
435
|
-
it 'can preload records' do
|
436
|
-
records = 5.times.map { player.create }
|
437
|
-
subject.players.concat(records)
|
438
|
-
|
439
|
-
entries = game.all.includes(:players).load
|
440
|
-
|
441
|
-
expect(entries.size).to be_eql(1)
|
442
|
-
expect(entries.first.players).to be_loaded
|
443
|
-
expect(entries.first.players.size).to be_eql(5)
|
444
|
-
end
|
445
|
-
|
446
|
-
it 'can joins records' do
|
447
|
-
query = game.all.joins(:players)
|
448
|
-
expect(query.to_sql).to match(/INNER JOIN "players"/)
|
449
|
-
expect { query.load }.not_to raise_error
|
450
|
-
end
|
451
|
-
end
|
452
|
-
|
453
|
-
context 'using custom keys' do
|
454
|
-
let(:connection) { ActiveRecord::Base.connection }
|
455
|
-
let(:post) { Post }
|
456
|
-
let(:tag) { Tag }
|
457
|
-
let(:tags) { %w[a b c].map { |id| create(:tag, friendly_id: id) } }
|
458
|
-
|
459
|
-
subject { create(:post) }
|
460
|
-
|
461
|
-
before do
|
462
|
-
connection.add_column(:tags, :friendly_id, :string)
|
463
|
-
connection.add_column(:posts, :friendly_tag_ids, :string, array: true)
|
464
|
-
post.belongs_to_many(:tags, foreign_key: :friendly_tag_ids, primary_key: :friendly_id)
|
465
|
-
post.reset_column_information
|
466
|
-
tag.reset_column_information
|
467
|
-
end
|
468
|
-
|
469
|
-
after do
|
470
|
-
tag.reset_column_information
|
471
|
-
post.reset_column_information
|
472
|
-
post._reflections.delete(:tags)
|
473
|
-
end
|
474
|
-
|
475
|
-
it 'loads associated records' do
|
476
|
-
subject.update(friendly_tag_ids: tags.pluck(:friendly_id))
|
477
|
-
|
478
|
-
expect(subject.tags.to_sql).to be_eql(<<-SQL.squish)
|
479
|
-
SELECT "tags".* FROM "tags" WHERE "tags"."friendly_id" IN ('a', 'b', 'c')
|
480
|
-
SQL
|
481
|
-
|
482
|
-
expect(subject.tags.load).to be_a(ActiveRecord::Associations::CollectionProxy)
|
483
|
-
expect(subject.tags.to_a).to be_eql(tags)
|
484
|
-
end
|
485
|
-
|
486
|
-
it 'can properly assign tags' do
|
487
|
-
expect(subject.friendly_tag_ids).to be_blank
|
488
|
-
|
489
|
-
subject.tags = tags
|
490
|
-
expect(subject.friendly_tag_ids).to be_eql(%w[a b c])
|
491
|
-
end
|
492
|
-
end
|
493
396
|
end
|
@@ -40,7 +40,7 @@ RSpec.describe 'DistinctOn' do
|
|
40
40
|
end
|
41
41
|
|
42
42
|
it 'raises with invalid relation' do
|
43
|
-
expect { subject.distinct_on(
|
43
|
+
expect { subject.distinct_on(tags: :name).to_sql }.to \
|
44
44
|
raise_error(ArgumentError, /Relation for/)
|
45
45
|
end
|
46
46
|
|
data/spec/tests/enum_set_spec.rb
CHANGED
@@ -31,7 +31,8 @@ RSpec.describe 'Enum' do
|
|
31
31
|
it 'can be defined as an array' do
|
32
32
|
subject.enum(:content_status, array: true, enum_type: :content_status)
|
33
33
|
expect(subject['content_status'].name).to be_eql('content_status')
|
34
|
-
expect(subject['content_status'].type).to be_eql(:
|
34
|
+
expect(subject['content_status'].type).to be_eql(:enum)
|
35
|
+
expect(subject['content_status'].options[:enum_type]).to be_eql(:content_status)
|
35
36
|
|
36
37
|
array = subject['content_status'].respond_to?(:options) \
|
37
38
|
? subject['content_status'].options[:array] \
|
@@ -42,19 +43,18 @@ RSpec.describe 'Enum' do
|
|
42
43
|
end
|
43
44
|
|
44
45
|
context 'on schema' do
|
45
|
-
let(:dump_result) do
|
46
|
-
ActiveRecord::SchemaDumper.dump(connection, (dump_result = StringIO.new))
|
47
|
-
dump_result.string
|
48
|
-
end
|
49
|
-
|
50
46
|
it 'can be used on tables' do
|
51
|
-
|
52
|
-
|
47
|
+
dump_io = StringIO.new
|
48
|
+
checker = /t\.enum +"conflicts", +array: true, +enum_type: "conflicts"/
|
49
|
+
ActiveRecord::SchemaDumper.dump(connection, dump_io)
|
50
|
+
expect(dump_io.string).to match checker
|
53
51
|
end
|
54
52
|
|
55
53
|
xit 'can have a default value as an array of symbols' do
|
56
|
-
|
57
|
-
|
54
|
+
dump_io = StringIO.new
|
55
|
+
checker = /t\.enum +"types", +default: \[:A, :B\], +array: true, +enum_type: "types"/
|
56
|
+
ActiveRecord::SchemaDumper.dump(connection, dump_io)
|
57
|
+
expect(dump_io.string).to match checker
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
data/spec/tests/enum_spec.rb
CHANGED
@@ -26,12 +26,6 @@ RSpec.describe 'Enum' do
|
|
26
26
|
end
|
27
27
|
|
28
28
|
context 'on migration' do
|
29
|
-
it 'can be created' do
|
30
|
-
connection.create_enum(:status, %i(foo bar))
|
31
|
-
expect(connection.type_exists?(:status)).to be_truthy
|
32
|
-
expect(connection.enum_values(:status)).to be_eql(['foo', 'bar'])
|
33
|
-
end
|
34
|
-
|
35
29
|
it 'can be deleted' do
|
36
30
|
connection.create_enum(:status, %i(foo bar))
|
37
31
|
expect(connection.type_exists?(:status)).to be_truthy
|
@@ -46,16 +40,6 @@ RSpec.describe 'Enum' do
|
|
46
40
|
expect(connection.type_exists?(:status)).to be_truthy
|
47
41
|
end
|
48
42
|
|
49
|
-
it 'can have prefix' do
|
50
|
-
connection.create_enum(:status, %i(foo bar), prefix: true)
|
51
|
-
expect(connection.enum_values(:status)).to be_eql(['status_foo', 'status_bar'])
|
52
|
-
end
|
53
|
-
|
54
|
-
it 'can have suffix' do
|
55
|
-
connection.create_enum(:status, %i(foo bar), suffix: 'tst')
|
56
|
-
expect(connection.enum_values(:status)).to be_eql(['foo_tst', 'bar_tst'])
|
57
|
-
end
|
58
|
-
|
59
43
|
it 'inserts values at the end' do
|
60
44
|
connection.create_enum(:status, %i(foo bar))
|
61
45
|
connection.add_enum_values(:status, %i(baz qux))
|
@@ -85,80 +69,6 @@ RSpec.describe 'Enum' do
|
|
85
69
|
end
|
86
70
|
end
|
87
71
|
|
88
|
-
context 'on table definition' do
|
89
|
-
subject { table_definition.new(connection, 'articles') }
|
90
|
-
|
91
|
-
it 'has the enum method' do
|
92
|
-
expect(subject).to respond_to(:enum)
|
93
|
-
end
|
94
|
-
|
95
|
-
it 'can be used in a single form' do
|
96
|
-
subject.enum('content_status')
|
97
|
-
expect(subject['content_status'].name).to be_eql('content_status')
|
98
|
-
expect(subject['content_status'].type).to be_eql(:content_status)
|
99
|
-
end
|
100
|
-
|
101
|
-
it 'can be used in a multiple form' do
|
102
|
-
subject.enum('foo', 'bar', 'baz', enum_type: :content_status)
|
103
|
-
expect(subject['foo'].type).to be_eql(:content_status)
|
104
|
-
expect(subject['bar'].type).to be_eql(:content_status)
|
105
|
-
expect(subject['baz'].type).to be_eql(:content_status)
|
106
|
-
end
|
107
|
-
|
108
|
-
it 'can have custom type' do
|
109
|
-
subject.enum('foo', enum_type: :content_status)
|
110
|
-
expect(subject['foo'].name).to be_eql('foo')
|
111
|
-
expect(subject['foo'].type).to be_eql(:content_status)
|
112
|
-
end
|
113
|
-
|
114
|
-
it 'can use the deprecated subtype option' do
|
115
|
-
subject.enum('foo', subtype: :content_status)
|
116
|
-
expect(subject['foo'].name).to be_eql('foo')
|
117
|
-
expect(subject['foo'].type).to be_eql(:content_status)
|
118
|
-
end
|
119
|
-
|
120
|
-
it 'raises StatementInvalid when type isn\'t defined' do
|
121
|
-
subject.enum('foo')
|
122
|
-
creation = connection.send(:schema_creation).accept subject
|
123
|
-
expect{ connection.execute creation }.to raise_error(ActiveRecord::StatementInvalid)
|
124
|
-
end
|
125
|
-
end
|
126
|
-
|
127
|
-
context 'on schema' do
|
128
|
-
it 'dumps when has it' do
|
129
|
-
dump_io = StringIO.new
|
130
|
-
ActiveRecord::SchemaDumper.dump(connection, dump_io)
|
131
|
-
expect(dump_io.string).to match /create_enum \"content_status\", \[/
|
132
|
-
end
|
133
|
-
|
134
|
-
it 'sorts the enum entries to better consistency' do
|
135
|
-
dump_io = StringIO.new
|
136
|
-
ActiveRecord::SchemaDumper.dump(connection, dump_io)
|
137
|
-
items = dump_io.string.scan(/create_enum "(\w+)"/).flatten
|
138
|
-
expect(items).to be_eql(items.sort)
|
139
|
-
end
|
140
|
-
|
141
|
-
it 'do not dump when has none' do
|
142
|
-
connection.drop_type(:content_status, force: :cascade)
|
143
|
-
|
144
|
-
dump_io = StringIO.new
|
145
|
-
ActiveRecord::SchemaDumper.dump(connection, dump_io)
|
146
|
-
expect(dump_io.string).not_to match /create_enum \"content_status\", \[/
|
147
|
-
end
|
148
|
-
|
149
|
-
it 'can be used on tables too' do
|
150
|
-
dump_io = StringIO.new
|
151
|
-
ActiveRecord::SchemaDumper.dump(connection, dump_io)
|
152
|
-
expect(dump_io.string).to match /t\.enum +"status", +enum_type: :content_status/
|
153
|
-
end
|
154
|
-
|
155
|
-
it 'can have a default value as symbol' do
|
156
|
-
dump_io = StringIO.new
|
157
|
-
ActiveRecord::SchemaDumper.dump(connection, dump_io)
|
158
|
-
expect(dump_io.string).to match /t\.enum +"role", +default: :visitor, +enum_type: :roles/
|
159
|
-
end
|
160
|
-
end
|
161
|
-
|
162
72
|
context 'on value' do
|
163
73
|
subject { Enum::ContentStatus }
|
164
74
|
let(:values) { %w(created draft published archived) }
|
data/spec/tests/has_many_spec.rb
CHANGED
@@ -411,50 +411,4 @@ RSpec.describe 'HasMany' do
|
|
411
411
|
expect { query.load }.not_to raise_error
|
412
412
|
end
|
413
413
|
end
|
414
|
-
|
415
|
-
context 'using uuid' do
|
416
|
-
let(:connection) { ActiveRecord::Base.connection }
|
417
|
-
let(:game) { Class.new(ActiveRecord::Base) }
|
418
|
-
let(:player) { Class.new(ActiveRecord::Base) }
|
419
|
-
|
420
|
-
# TODO: Set as a shred example
|
421
|
-
before do
|
422
|
-
connection.create_table(:players, id: :uuid) { |t| t.string :name }
|
423
|
-
connection.create_table(:games, id: :uuid) { |t| t.uuid :player_ids, array: true }
|
424
|
-
|
425
|
-
options = { anonymous_class: game, foreign_key: :player_ids }
|
426
|
-
options[:inverse_of] = false if Torque::PostgreSQL::AR610
|
427
|
-
|
428
|
-
game.table_name = 'games'
|
429
|
-
player.table_name = 'players'
|
430
|
-
player.has_many :games, array: true, **options
|
431
|
-
end
|
432
|
-
|
433
|
-
subject { player.create }
|
434
|
-
|
435
|
-
it 'loads associated records' do
|
436
|
-
expect(subject.games.to_sql).to match(Regexp.new(<<-SQL.squish))
|
437
|
-
SELECT "games"\\.\\* FROM "games"
|
438
|
-
WHERE \\(?"games"\\."player_ids" && ARRAY\\['#{subject.id}'\\]::uuid\\[\\]\\)?
|
439
|
-
SQL
|
440
|
-
|
441
|
-
expect(subject.games.load).to be_a(ActiveRecord::Associations::CollectionProxy)
|
442
|
-
expect(subject.games.to_a).to be_eql([])
|
443
|
-
end
|
444
|
-
|
445
|
-
it 'can preload records' do
|
446
|
-
5.times { game.create(player_ids: [subject.id]) }
|
447
|
-
entries = player.all.includes(:games).load
|
448
|
-
|
449
|
-
expect(entries.size).to be_eql(1)
|
450
|
-
expect(entries.first.games).to be_loaded
|
451
|
-
expect(entries.first.games.size).to be_eql(5)
|
452
|
-
end
|
453
|
-
|
454
|
-
it 'can joins records' do
|
455
|
-
query = player.all.joins(:games)
|
456
|
-
expect(query.to_sql).to match(/INNER JOIN "games"/)
|
457
|
-
expect { query.load }.not_to raise_error
|
458
|
-
end
|
459
|
-
end
|
460
414
|
end
|
data/spec/tests/relation_spec.rb
CHANGED
@@ -73,33 +73,37 @@ RSpec.describe 'TableInheritance' do
|
|
73
73
|
end
|
74
74
|
|
75
75
|
context 'on schema' do
|
76
|
-
let(:dump_result) do
|
77
|
-
ActiveRecord::SchemaDumper.dump(connection, (dump_result = StringIO.new))
|
78
|
-
dump_result.string
|
79
|
-
end
|
80
|
-
|
81
76
|
it 'dumps single inheritance with body' do
|
77
|
+
dump_io = StringIO.new
|
78
|
+
ActiveRecord::SchemaDumper.dump(connection, dump_io)
|
79
|
+
|
82
80
|
parts = '"activity_books"'
|
83
81
|
parts << ', id: false'
|
84
82
|
parts << ', force: :cascade'
|
85
|
-
parts << ', inherits:
|
86
|
-
expect(
|
83
|
+
parts << ', inherits: :activities'
|
84
|
+
expect(dump_io.string).to match(/create_table #{parts} do /)
|
87
85
|
end
|
88
86
|
|
89
87
|
it 'dumps single inheritance without body' do
|
88
|
+
dump_io = StringIO.new
|
89
|
+
ActiveRecord::SchemaDumper.dump(connection, dump_io)
|
90
|
+
|
90
91
|
parts = '"activity_post_samples"'
|
91
92
|
parts << ', id: false'
|
92
93
|
parts << ', force: :cascade'
|
93
|
-
parts << ', inherits:
|
94
|
-
expect(
|
94
|
+
parts << ', inherits: :activity_posts'
|
95
|
+
expect(dump_io.string).to match(/create_table #{parts}(?! do \|t\|)/)
|
95
96
|
end
|
96
97
|
|
97
98
|
it 'dumps multiple inheritance' do
|
99
|
+
dump_io = StringIO.new
|
100
|
+
ActiveRecord::SchemaDumper.dump(connection, dump_io)
|
101
|
+
|
98
102
|
parts = '"activity_posts"'
|
99
103
|
parts << ', id: false'
|
100
104
|
parts << ', force: :cascade'
|
101
|
-
parts << ', inherits: (\[
|
102
|
-
expect(
|
105
|
+
parts << ', inherits: (\[:images, :activities\]|\[:activities, :images\])'
|
106
|
+
expect(dump_io.string).to match(/create_table #{parts}/)
|
103
107
|
end
|
104
108
|
end
|
105
109
|
|
metadata
CHANGED
@@ -1,23 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: torque-postgresql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carlos Silva
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-04-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '6.0'
|
20
|
-
- - "<"
|
21
18
|
- !ruby/object:Gem::Version
|
22
19
|
version: '7.0'
|
23
20
|
type: :runtime
|
@@ -25,9 +22,6 @@ dependencies:
|
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
24
|
- - ">="
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '6.0'
|
30
|
-
- - "<"
|
31
25
|
- !ruby/object:Gem::Version
|
32
26
|
version: '7.0'
|
33
27
|
- !ruby/object:Gem::Dependency
|
@@ -134,9 +128,6 @@ dependencies:
|
|
134
128
|
- - ">="
|
135
129
|
- !ruby/object:Gem::Version
|
136
130
|
version: 6.2.1
|
137
|
-
- - "<"
|
138
|
-
- !ruby/object:Gem::Version
|
139
|
-
version: '6.4'
|
140
131
|
type: :development
|
141
132
|
prerelease: false
|
142
133
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -147,9 +138,6 @@ dependencies:
|
|
147
138
|
- - ">="
|
148
139
|
- !ruby/object:Gem::Version
|
149
140
|
version: 6.2.1
|
150
|
-
- - "<"
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '6.4'
|
153
141
|
- !ruby/object:Gem::Dependency
|
154
142
|
name: faker
|
155
143
|
requirement: !ruby/object:Gem::Requirement
|
@@ -167,7 +155,7 @@ dependencies:
|
|
167
155
|
description: Add support to complex resources of PostgreSQL, like data types, array
|
168
156
|
associations, and auxiliary statements (CTE)
|
169
157
|
email:
|
170
|
-
-
|
158
|
+
- carlinhus.fsilva@gmail.com
|
171
159
|
executables: []
|
172
160
|
extensions: []
|
173
161
|
extra_rdoc_files: []
|
@@ -201,14 +189,15 @@ files:
|
|
201
189
|
- lib/torque/postgresql/arel/select_manager.rb
|
202
190
|
- lib/torque/postgresql/arel/visitors.rb
|
203
191
|
- lib/torque/postgresql/associations.rb
|
204
|
-
- lib/torque/postgresql/associations/association.rb
|
205
192
|
- lib/torque/postgresql/associations/association_scope.rb
|
206
193
|
- lib/torque/postgresql/associations/belongs_to_many_association.rb
|
207
194
|
- lib/torque/postgresql/associations/builder.rb
|
208
195
|
- lib/torque/postgresql/associations/builder/belongs_to_many.rb
|
209
196
|
- lib/torque/postgresql/associations/builder/has_many.rb
|
197
|
+
- lib/torque/postgresql/associations/foreign_association.rb
|
210
198
|
- lib/torque/postgresql/associations/preloader.rb
|
211
199
|
- lib/torque/postgresql/associations/preloader/association.rb
|
200
|
+
- lib/torque/postgresql/associations/preloader/loader_query.rb
|
212
201
|
- lib/torque/postgresql/attributes.rb
|
213
202
|
- lib/torque/postgresql/attributes/builder.rb
|
214
203
|
- lib/torque/postgresql/attributes/builder/enum.rb
|
@@ -219,7 +208,6 @@ files:
|
|
219
208
|
- lib/torque/postgresql/attributes/period.rb
|
220
209
|
- lib/torque/postgresql/autosave_association.rb
|
221
210
|
- lib/torque/postgresql/auxiliary_statement.rb
|
222
|
-
- lib/torque/postgresql/auxiliary_statement/recursive.rb
|
223
211
|
- lib/torque/postgresql/auxiliary_statement/settings.rb
|
224
212
|
- lib/torque/postgresql/base.rb
|
225
213
|
- lib/torque/postgresql/collector.rb
|
@@ -244,9 +232,7 @@ files:
|
|
244
232
|
- lib/torque/postgresql/relation/inheritance.rb
|
245
233
|
- lib/torque/postgresql/relation/merger.rb
|
246
234
|
- lib/torque/postgresql/schema_cache.rb
|
247
|
-
- lib/torque/postgresql/table_name.rb
|
248
235
|
- lib/torque/postgresql/version.rb
|
249
|
-
- lib/torque/range.rb
|
250
236
|
- spec/en.yml
|
251
237
|
- spec/factories/authors.rb
|
252
238
|
- spec/factories/comments.rb
|
@@ -264,12 +250,10 @@ files:
|
|
264
250
|
- spec/models/activity_post/sample.rb
|
265
251
|
- spec/models/author.rb
|
266
252
|
- spec/models/author_journalist.rb
|
267
|
-
- spec/models/category.rb
|
268
253
|
- spec/models/comment.rb
|
269
254
|
- spec/models/course.rb
|
270
255
|
- spec/models/geometry.rb
|
271
256
|
- spec/models/guest_comment.rb
|
272
|
-
- spec/models/internal/user.rb
|
273
257
|
- spec/models/item.rb
|
274
258
|
- spec/models/post.rb
|
275
259
|
- spec/models/question.rb
|
@@ -295,27 +279,21 @@ files:
|
|
295
279
|
- spec/tests/lazy_spec.rb
|
296
280
|
- spec/tests/period_spec.rb
|
297
281
|
- spec/tests/quoting_spec.rb
|
298
|
-
- spec/tests/range_spec.rb
|
299
282
|
- spec/tests/relation_spec.rb
|
300
|
-
- spec/tests/schema_spec.rb
|
301
283
|
- spec/tests/table_inheritance_spec.rb
|
302
284
|
homepage: https://github.com/crashtech/torque-postgresql
|
303
285
|
licenses:
|
304
286
|
- MIT
|
305
|
-
metadata:
|
306
|
-
|
307
|
-
|
308
|
-
post_install_message:
|
309
|
-
rdoc_options:
|
310
|
-
- "--title"
|
311
|
-
- Torque PostgreSQL
|
287
|
+
metadata: {}
|
288
|
+
post_install_message:
|
289
|
+
rdoc_options: []
|
312
290
|
require_paths:
|
313
291
|
- lib
|
314
292
|
required_ruby_version: !ruby/object:Gem::Requirement
|
315
293
|
requirements:
|
316
294
|
- - ">="
|
317
295
|
- !ruby/object:Gem::Version
|
318
|
-
version:
|
296
|
+
version: 2.7.2
|
319
297
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
320
298
|
requirements:
|
321
299
|
- - ">="
|
@@ -323,7 +301,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
323
301
|
version: 1.8.11
|
324
302
|
requirements: []
|
325
303
|
rubygems_version: 3.2.15
|
326
|
-
signing_key:
|
304
|
+
signing_key:
|
327
305
|
specification_version: 4
|
328
306
|
summary: ActiveRecord extension to access PostgreSQL advanced resources
|
329
307
|
test_files:
|
@@ -344,12 +322,10 @@ test_files:
|
|
344
322
|
- spec/models/activity_post.rb
|
345
323
|
- spec/models/author.rb
|
346
324
|
- spec/models/author_journalist.rb
|
347
|
-
- spec/models/category.rb
|
348
325
|
- spec/models/comment.rb
|
349
326
|
- spec/models/course.rb
|
350
327
|
- spec/models/geometry.rb
|
351
328
|
- spec/models/guest_comment.rb
|
352
|
-
- spec/models/internal/user.rb
|
353
329
|
- spec/models/item.rb
|
354
330
|
- spec/models/post.rb
|
355
331
|
- spec/models/question.rb
|
@@ -375,7 +351,5 @@ test_files:
|
|
375
351
|
- spec/tests/lazy_spec.rb
|
376
352
|
- spec/tests/period_spec.rb
|
377
353
|
- spec/tests/quoting_spec.rb
|
378
|
-
- spec/tests/range_spec.rb
|
379
354
|
- spec/tests/relation_spec.rb
|
380
|
-
- spec/tests/schema_spec.rb
|
381
355
|
- spec/tests/table_inheritance_spec.rb
|