torque-postgresql 1.1.8 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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