torque-postgresql 1.1.8 → 2.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.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/lib/torque/postgresql.rb +0 -2
  3. data/lib/torque/postgresql/adapter.rb +0 -1
  4. data/lib/torque/postgresql/adapter/database_statements.rb +4 -15
  5. data/lib/torque/postgresql/adapter/schema_creation.rb +13 -23
  6. data/lib/torque/postgresql/adapter/schema_definitions.rb +7 -21
  7. data/lib/torque/postgresql/adapter/schema_dumper.rb +71 -11
  8. data/lib/torque/postgresql/adapter/schema_statements.rb +2 -12
  9. data/lib/torque/postgresql/associations.rb +0 -3
  10. data/lib/torque/postgresql/associations/association.rb +0 -4
  11. data/lib/torque/postgresql/associations/association_scope.rb +18 -60
  12. data/lib/torque/postgresql/associations/belongs_to_many_association.rb +12 -15
  13. data/lib/torque/postgresql/associations/preloader.rb +0 -32
  14. data/lib/torque/postgresql/associations/preloader/association.rb +13 -10
  15. data/lib/torque/postgresql/autosave_association.rb +4 -4
  16. data/lib/torque/postgresql/auxiliary_statement.rb +1 -13
  17. data/lib/torque/postgresql/coder.rb +1 -2
  18. data/lib/torque/postgresql/config.rb +0 -6
  19. data/lib/torque/postgresql/inheritance.rb +13 -17
  20. data/lib/torque/postgresql/reflection/abstract_reflection.rb +19 -25
  21. data/lib/torque/postgresql/reflection/belongs_to_many_reflection.rb +4 -38
  22. data/lib/torque/postgresql/relation.rb +11 -16
  23. data/lib/torque/postgresql/relation/auxiliary_statement.rb +2 -8
  24. data/lib/torque/postgresql/relation/distinct_on.rb +1 -1
  25. data/lib/torque/postgresql/version.rb +1 -1
  26. data/spec/en.yml +19 -0
  27. data/spec/factories/authors.rb +6 -0
  28. data/spec/factories/comments.rb +13 -0
  29. data/spec/factories/posts.rb +6 -0
  30. data/spec/factories/tags.rb +5 -0
  31. data/spec/factories/texts.rb +5 -0
  32. data/spec/factories/users.rb +6 -0
  33. data/spec/factories/videos.rb +5 -0
  34. data/spec/mocks/cache_query.rb +16 -0
  35. data/spec/mocks/create_table.rb +35 -0
  36. data/spec/models/activity.rb +3 -0
  37. data/spec/models/activity_book.rb +4 -0
  38. data/spec/models/activity_post.rb +7 -0
  39. data/spec/models/activity_post/sample.rb +4 -0
  40. data/spec/models/author.rb +4 -0
  41. data/spec/models/author_journalist.rb +4 -0
  42. data/spec/models/comment.rb +3 -0
  43. data/spec/models/course.rb +2 -0
  44. data/spec/models/geometry.rb +2 -0
  45. data/spec/models/guest_comment.rb +4 -0
  46. data/spec/models/post.rb +6 -0
  47. data/spec/models/tag.rb +2 -0
  48. data/spec/models/text.rb +2 -0
  49. data/spec/models/time_keeper.rb +2 -0
  50. data/spec/models/user.rb +8 -0
  51. data/spec/models/video.rb +2 -0
  52. data/spec/schema.rb +141 -0
  53. data/spec/spec_helper.rb +59 -0
  54. data/spec/tests/arel_spec.rb +72 -0
  55. data/spec/tests/auxiliary_statement_spec.rb +593 -0
  56. data/spec/tests/belongs_to_many_spec.rb +240 -0
  57. data/spec/tests/coder_spec.rb +367 -0
  58. data/spec/tests/collector_spec.rb +59 -0
  59. data/spec/tests/distinct_on_spec.rb +65 -0
  60. data/spec/tests/enum_set_spec.rb +306 -0
  61. data/spec/tests/enum_spec.rb +621 -0
  62. data/spec/tests/geometric_builder_spec.rb +221 -0
  63. data/spec/tests/has_many_spec.rb +390 -0
  64. data/spec/tests/interval_spec.rb +167 -0
  65. data/spec/tests/lazy_spec.rb +24 -0
  66. data/spec/tests/period_spec.rb +954 -0
  67. data/spec/tests/quoting_spec.rb +24 -0
  68. data/spec/tests/range_spec.rb +36 -0
  69. data/spec/tests/relation_spec.rb +57 -0
  70. data/spec/tests/table_inheritance_spec.rb +403 -0
  71. metadata +103 -15
  72. data/lib/torque/postgresql/associations/join_dependency/join_association.rb +0 -15
  73. data/lib/torque/postgresql/schema_dumper.rb +0 -101
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: torque-postgresql
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.8
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carlos Silva
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-14 00:00:00.000000000 Z
11
+ date: 2020-05-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,48 +16,48 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '5.0'
19
+ version: '6.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '5.0'
26
+ version: '6.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: pg
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '0.18'
33
+ version: '1.2'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '0.18'
40
+ version: '1.2'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '10.1'
47
+ version: '12.3'
48
48
  - - ">="
49
49
  - !ruby/object:Gem::Version
50
- version: 10.1.0
50
+ version: 12.3.3
51
51
  type: :development
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
55
  - - "~>"
56
56
  - !ruby/object:Gem::Version
57
- version: '10.1'
57
+ version: '12.3'
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: 10.1.0
60
+ version: 12.3.3
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: database_cleaner
63
63
  requirement: !ruby/object:Gem::Requirement
@@ -201,7 +201,6 @@ files:
201
201
  - lib/torque/postgresql/associations/builder.rb
202
202
  - lib/torque/postgresql/associations/builder/belongs_to_many.rb
203
203
  - lib/torque/postgresql/associations/builder/has_many.rb
204
- - lib/torque/postgresql/associations/join_dependency/join_association.rb
205
204
  - lib/torque/postgresql/associations/preloader.rb
206
205
  - lib/torque/postgresql/associations/preloader/association.rb
207
206
  - lib/torque/postgresql/attributes.rb
@@ -238,9 +237,53 @@ files:
238
237
  - lib/torque/postgresql/relation/inheritance.rb
239
238
  - lib/torque/postgresql/relation/merger.rb
240
239
  - lib/torque/postgresql/schema_cache.rb
241
- - lib/torque/postgresql/schema_dumper.rb
242
240
  - lib/torque/postgresql/version.rb
243
241
  - lib/torque/range.rb
242
+ - spec/en.yml
243
+ - spec/factories/authors.rb
244
+ - spec/factories/comments.rb
245
+ - spec/factories/posts.rb
246
+ - spec/factories/tags.rb
247
+ - spec/factories/texts.rb
248
+ - spec/factories/users.rb
249
+ - spec/factories/videos.rb
250
+ - spec/mocks/cache_query.rb
251
+ - spec/mocks/create_table.rb
252
+ - spec/models/activity.rb
253
+ - spec/models/activity_book.rb
254
+ - spec/models/activity_post.rb
255
+ - spec/models/activity_post/sample.rb
256
+ - spec/models/author.rb
257
+ - spec/models/author_journalist.rb
258
+ - spec/models/comment.rb
259
+ - spec/models/course.rb
260
+ - spec/models/geometry.rb
261
+ - spec/models/guest_comment.rb
262
+ - spec/models/post.rb
263
+ - spec/models/tag.rb
264
+ - spec/models/text.rb
265
+ - spec/models/time_keeper.rb
266
+ - spec/models/user.rb
267
+ - spec/models/video.rb
268
+ - spec/schema.rb
269
+ - spec/spec_helper.rb
270
+ - spec/tests/arel_spec.rb
271
+ - spec/tests/auxiliary_statement_spec.rb
272
+ - spec/tests/belongs_to_many_spec.rb
273
+ - spec/tests/coder_spec.rb
274
+ - spec/tests/collector_spec.rb
275
+ - spec/tests/distinct_on_spec.rb
276
+ - spec/tests/enum_set_spec.rb
277
+ - spec/tests/enum_spec.rb
278
+ - spec/tests/geometric_builder_spec.rb
279
+ - spec/tests/has_many_spec.rb
280
+ - spec/tests/interval_spec.rb
281
+ - spec/tests/lazy_spec.rb
282
+ - spec/tests/period_spec.rb
283
+ - spec/tests/quoting_spec.rb
284
+ - spec/tests/range_spec.rb
285
+ - spec/tests/relation_spec.rb
286
+ - spec/tests/table_inheritance_spec.rb
244
287
  homepage: https://github.com/crashtech/torque-postgresql
245
288
  licenses:
246
289
  - MIT
@@ -253,15 +296,60 @@ required_ruby_version: !ruby/object:Gem::Requirement
253
296
  requirements:
254
297
  - - ">="
255
298
  - !ruby/object:Gem::Version
256
- version: 2.2.2
299
+ version: 2.5.0
257
300
  required_rubygems_version: !ruby/object:Gem::Requirement
258
301
  requirements:
259
302
  - - ">="
260
303
  - !ruby/object:Gem::Version
261
304
  version: 1.8.11
262
305
  requirements: []
263
- rubygems_version: 3.2.14
306
+ rubygems_version: 3.1.2
264
307
  signing_key:
265
308
  specification_version: 4
266
309
  summary: ActiveRecord extension to access PostgreSQL advanced resources
267
- test_files: []
310
+ test_files:
311
+ - spec/models/activity_post/sample.rb
312
+ - spec/models/activity.rb
313
+ - spec/models/author.rb
314
+ - spec/models/author_journalist.rb
315
+ - spec/models/comment.rb
316
+ - spec/models/course.rb
317
+ - spec/models/post.rb
318
+ - spec/models/text.rb
319
+ - spec/models/user.rb
320
+ - spec/models/activity_book.rb
321
+ - spec/models/activity_post.rb
322
+ - spec/models/geometry.rb
323
+ - spec/models/guest_comment.rb
324
+ - spec/models/tag.rb
325
+ - spec/models/time_keeper.rb
326
+ - spec/models/video.rb
327
+ - spec/factories/authors.rb
328
+ - spec/factories/comments.rb
329
+ - spec/factories/posts.rb
330
+ - spec/factories/tags.rb
331
+ - spec/factories/texts.rb
332
+ - spec/factories/users.rb
333
+ - spec/factories/videos.rb
334
+ - spec/tests/geometric_builder_spec.rb
335
+ - spec/tests/range_spec.rb
336
+ - spec/tests/auxiliary_statement_spec.rb
337
+ - spec/tests/belongs_to_many_spec.rb
338
+ - spec/tests/has_many_spec.rb
339
+ - spec/tests/period_spec.rb
340
+ - spec/tests/table_inheritance_spec.rb
341
+ - spec/tests/coder_spec.rb
342
+ - spec/tests/collector_spec.rb
343
+ - spec/tests/distinct_on_spec.rb
344
+ - spec/tests/interval_spec.rb
345
+ - spec/tests/lazy_spec.rb
346
+ - spec/tests/quoting_spec.rb
347
+ - spec/tests/relation_spec.rb
348
+ - spec/tests/arel_spec.rb
349
+ - spec/tests/enum_set_spec.rb
350
+ - spec/tests/enum_spec.rb
351
+ - spec/mocks/cache_query.rb
352
+ - spec/mocks/create_table.rb
353
+ - spec/en.yml
354
+ - spec/spec_helper.rb
355
+ - spec/schema.rb
@@ -1,15 +0,0 @@
1
- module Torque
2
- module PostgreSQL
3
- module Associations
4
- module JoinDependency
5
- module JoinAssociation
6
- def build_constraint(_, table, _, foreign_table, _)
7
- reflection.build_join_constraint(table, foreign_table)
8
- end
9
- end
10
-
11
- ::ActiveRecord::Associations::JoinDependency::JoinAssociation.prepend(JoinAssociation)
12
- end
13
- end
14
- end
15
- end
@@ -1,101 +0,0 @@
1
- module Torque
2
- module PostgreSQL
3
- module SchemaDumper
4
-
5
- include Adapter::ColumnDumper if Torque::PostgreSQL::AR521
6
-
7
- def dump(stream) # :nodoc:
8
- @connection.dump_mode!
9
- super
10
-
11
- @connection.dump_mode!
12
- stream
13
- end
14
-
15
- def extensions(stream) # :nodoc:
16
- super
17
- user_defined_types(stream)
18
- end
19
-
20
- private
21
-
22
- def tables(stream) # :nodoc:
23
- inherited_tables = @connection.inherited_tables
24
- sorted_tables = @connection.data_sources.sort - @connection.views
25
-
26
- stream.puts " # These are the common tables managed"
27
- (sorted_tables - inherited_tables.keys).each do |table_name|
28
- table(table_name, stream) unless ignored?(table_name)
29
- end
30
-
31
- if inherited_tables.present?
32
- stream.puts " # These are tables that has inheritance"
33
- inherited_tables.each do |table_name, inherits|
34
- next if ignored?(table_name)
35
-
36
- sub_stream = StringIO.new
37
- table(table_name, sub_stream)
38
-
39
- # Add the inherits setting
40
- sub_stream.rewind
41
- inherits.map!(&:to_sym)
42
- inherits = inherits.first if inherits.size === 1
43
- inherits = ", inherits: #{inherits.inspect} do |t|"
44
- table_dump = sub_stream.read.gsub(/ do \|t\|$/, inherits)
45
-
46
- # Ensure bodyless definitions
47
- table_dump.gsub!(/do \|t\|\n end/, '')
48
- stream.print table_dump
49
- end
50
- end
51
-
52
- # dump foreign keys at the end to make sure all dependent tables exist.
53
- if @connection.supports_foreign_keys?
54
- sorted_tables.each do |tbl|
55
- foreign_keys(tbl, stream) unless ignored?(tbl)
56
- end
57
- end
58
-
59
- table_extensions(stream)
60
- end
61
-
62
- # Dump user defined types like enum
63
- def user_defined_types(stream)
64
- types = @connection.user_defined_types('e')
65
- return unless types.any?
66
-
67
- stream.puts " # These are user-defined types used on this database"
68
- types.sort_by(&:first).each { |name, type| send(type.to_sym, name, stream) }
69
- stream.puts
70
- rescue => e
71
- stream.puts "# Could not dump user-defined types because of following #{e.class}"
72
- stream.puts "# #{e.message}"
73
- stream.puts
74
- end
75
-
76
- # Dump enum custom type
77
- def enum(name, stream)
78
- values = @connection.enum_values(name).map { |v| "\"#{v}\"" }
79
- stream.puts " create_enum \"#{name}\", [#{values.join(', ')}], force: :cascade"
80
- end
81
-
82
- # Add compatibility to other gems that uses +tables+ as base function
83
- def table_extensions(stream)
84
- # Scenic integration
85
- views(stream) if defined?(::Scenic)
86
-
87
- # FX integration
88
- functions(stream) if defined?(::Fx::SchemaDumper::Function)
89
- aggregates(stream) if defined?(::Fx::SchemaDumper::Aggregate)
90
- triggers(stream) if defined?(::Fx::SchemaDumper::Trigger)
91
- end
92
-
93
- end
94
-
95
- if Torque::PostgreSQL::AR521
96
- ActiveRecord::ConnectionAdapters::PostgreSQL::SchemaDumper.prepend SchemaDumper
97
- else
98
- ActiveRecord::SchemaDumper.prepend SchemaDumper
99
- end
100
- end
101
- end