torque-postgresql 2.1.2 → 2.1.3
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/torque/postgresql/adapter/schema_statements.rb +5 -1
- data/lib/torque/postgresql/base.rb +1 -1
- data/lib/torque/postgresql/version.rb +1 -1
- data/spec/models/question.rb +3 -0
- data/spec/models/question_select.rb +2 -0
- data/spec/schema.rb +12 -1
- data/spec/tests/table_inheritance_spec.rb +21 -2
- metadata +35 -31
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '09e539b25b952fb4d48bd092a90bae032ad8c26f1584cc5a704cdf96985b1e7e'
|
4
|
+
data.tar.gz: d79aa047ac44dc47a25979f71a0b46dfcbdc573f28d18bfcccbcb59b0a693c7b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e2f75f66a5e0bed5f14006ff4ffd8e32f96bbe17f18ff4603c0706301c87114a1880b1a8f7bd530501d95c8f6dc10c563af6da5a2ba5f4414a31115c5510ca0f
|
7
|
+
data.tar.gz: 930b6381e8e920a274c411c2ba8abfe96a5b8462227c51dbf5ee9f2a41ac88b6f3a3946d4e49cab0017bb271c176d58c37690e5e646b8536476b83a1cba5c62b
|
@@ -70,7 +70,11 @@ module Torque
|
|
70
70
|
|
71
71
|
# Returns all values that an enum type can have.
|
72
72
|
def enum_values(name)
|
73
|
-
select_values(
|
73
|
+
select_values(<<-SQL.squish, 'SCHEMA')
|
74
|
+
SELECT enumlabel FROM pg_enum
|
75
|
+
WHERE enumtypid = #{quote(name)}::regtype::oid
|
76
|
+
ORDER BY enumsortorder
|
77
|
+
SQL
|
74
78
|
end
|
75
79
|
|
76
80
|
# Rewrite the method that creates tables to easily accept extra options
|
@@ -40,7 +40,7 @@ module Torque
|
|
40
40
|
|
41
41
|
pg_class = ::Arel::Table.new('pg_class')
|
42
42
|
source = ::Arel::Table.new(subclass.table_name, as: 'source')
|
43
|
-
quoted_id = ::Arel::Nodes::Quoted.new(
|
43
|
+
quoted_id = ::Arel::Nodes::Quoted.new(id)
|
44
44
|
|
45
45
|
query = ::Arel::SelectManager.new(pg_class)
|
46
46
|
query.join(source).on(pg_class['oid'].eq(source['tableoid']))
|
data/spec/schema.rb
CHANGED
@@ -11,13 +11,14 @@
|
|
11
11
|
# It's strongly recommended that you check this file into your version control system.
|
12
12
|
|
13
13
|
begin
|
14
|
-
version =
|
14
|
+
version = 73
|
15
15
|
|
16
16
|
raise SystemExit if ActiveRecord::Migrator.current_version == version
|
17
17
|
ActiveRecord::Schema.define(version: version) do
|
18
18
|
self.verbose = false
|
19
19
|
|
20
20
|
# These are extensions that must be enabled in order to support this database
|
21
|
+
enable_extension "pgcrypto"
|
21
22
|
enable_extension "plpgsql"
|
22
23
|
|
23
24
|
# These are user-defined types used on this database
|
@@ -125,6 +126,12 @@ begin
|
|
125
126
|
t.datetime "updated_at", null: false
|
126
127
|
end
|
127
128
|
|
129
|
+
create_table "questions", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
|
130
|
+
t.string "title"
|
131
|
+
t.datetime "created_at", null: false
|
132
|
+
t.datetime "updated_at", null: false
|
133
|
+
end
|
134
|
+
|
128
135
|
create_table "activity_books", force: :cascade, inherits: :activities do |t|
|
129
136
|
t.text "description"
|
130
137
|
t.string "url"
|
@@ -139,6 +146,10 @@ begin
|
|
139
146
|
|
140
147
|
create_table "activity_post_samples", force: :cascade, inherits: :activity_posts
|
141
148
|
|
149
|
+
create_table "question_selects", force: :cascade, inherits: :questions do |t|
|
150
|
+
t.string "options", array: true
|
151
|
+
end
|
152
|
+
|
142
153
|
# create_table "activity_blanks", force: :cascade, inherits: :activities
|
143
154
|
|
144
155
|
# create_table "activity_images", force: :cascade, inherits: [:activities, :images]
|
@@ -387,10 +387,10 @@ RSpec.describe 'TableInheritance' do
|
|
387
387
|
base.create(title: 'Activity test')
|
388
388
|
child.create(title: 'Activity book')
|
389
389
|
other.create(name: 'An author name')
|
390
|
+
base.instance_variable_set(:@casted_dependents, nil)
|
390
391
|
end
|
391
392
|
|
392
393
|
it 'does not affect normal records' do
|
393
|
-
base.instance_variable_set(:@casted_dependents, {})
|
394
394
|
expect(base.first.cast_record).to be_a(base)
|
395
395
|
expect(child.first.cast_record).to be_a(child)
|
396
396
|
expect(other.first.cast_record).to be_a(other)
|
@@ -408,9 +408,28 @@ RSpec.describe 'TableInheritance' do
|
|
408
408
|
end
|
409
409
|
|
410
410
|
it 'does trigger record casting when accessed through inheritance' do
|
411
|
-
base.instance_variable_set(:@casted_dependents, nil)
|
412
411
|
expect(base.second.cast_record).to eql(child.first)
|
413
412
|
end
|
413
|
+
|
414
|
+
context 'using uuid' do
|
415
|
+
let(:base) { Question }
|
416
|
+
let(:child) { QuestionSelect }
|
417
|
+
|
418
|
+
before :each do
|
419
|
+
base.create(title: 'Simple question')
|
420
|
+
child.create(title: 'Select question')
|
421
|
+
base.instance_variable_set(:@casted_dependents, nil)
|
422
|
+
end
|
423
|
+
|
424
|
+
it 'does not affect normal records' do
|
425
|
+
expect(base.first.cast_record).to be_a(base)
|
426
|
+
expect(child.first.cast_record).to be_a(child)
|
427
|
+
end
|
428
|
+
|
429
|
+
it 'does trigger record casting when accessed through inheritance' do
|
430
|
+
expect(base.second.cast_record).to eql(child.first)
|
431
|
+
end
|
432
|
+
end
|
414
433
|
end
|
415
434
|
end
|
416
435
|
end
|
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: 2.1.
|
4
|
+
version: 2.1.3
|
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-
|
11
|
+
date: 2021-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -262,6 +262,8 @@ files:
|
|
262
262
|
- spec/models/guest_comment.rb
|
263
263
|
- spec/models/item.rb
|
264
264
|
- spec/models/post.rb
|
265
|
+
- spec/models/question.rb
|
266
|
+
- spec/models/question_select.rb
|
265
267
|
- spec/models/tag.rb
|
266
268
|
- spec/models/text.rb
|
267
269
|
- spec/models/time_keeper.rb
|
@@ -305,55 +307,57 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
305
307
|
- !ruby/object:Gem::Version
|
306
308
|
version: 1.8.11
|
307
309
|
requirements: []
|
308
|
-
rubygems_version: 3.2
|
310
|
+
rubygems_version: 3.1.2
|
309
311
|
signing_key:
|
310
312
|
specification_version: 4
|
311
313
|
summary: ActiveRecord extension to access PostgreSQL advanced resources
|
312
314
|
test_files:
|
313
|
-
- spec/
|
315
|
+
- spec/en.yml
|
316
|
+
- spec/factories/authors.rb
|
317
|
+
- spec/factories/comments.rb
|
318
|
+
- spec/factories/item.rb
|
319
|
+
- spec/factories/posts.rb
|
320
|
+
- spec/factories/tags.rb
|
321
|
+
- spec/factories/texts.rb
|
322
|
+
- spec/factories/users.rb
|
323
|
+
- spec/factories/videos.rb
|
324
|
+
- spec/mocks/cache_query.rb
|
325
|
+
- spec/mocks/create_table.rb
|
314
326
|
- spec/models/activity.rb
|
327
|
+
- spec/models/activity_book.rb
|
328
|
+
- spec/models/activity_post.rb
|
329
|
+
- spec/models/activity_post/sample.rb
|
315
330
|
- spec/models/author.rb
|
316
331
|
- spec/models/author_journalist.rb
|
317
332
|
- spec/models/comment.rb
|
318
333
|
- spec/models/course.rb
|
319
|
-
- spec/models/post.rb
|
320
|
-
- spec/models/text.rb
|
321
|
-
- spec/models/user.rb
|
322
|
-
- spec/models/activity_book.rb
|
323
|
-
- spec/models/activity_post.rb
|
324
334
|
- spec/models/geometry.rb
|
325
335
|
- spec/models/guest_comment.rb
|
336
|
+
- spec/models/item.rb
|
337
|
+
- spec/models/post.rb
|
326
338
|
- spec/models/tag.rb
|
339
|
+
- spec/models/text.rb
|
327
340
|
- spec/models/time_keeper.rb
|
341
|
+
- spec/models/user.rb
|
328
342
|
- spec/models/video.rb
|
329
|
-
- spec/models/
|
330
|
-
- spec/
|
331
|
-
- spec/
|
332
|
-
- spec/factories/posts.rb
|
333
|
-
- spec/factories/tags.rb
|
334
|
-
- spec/factories/texts.rb
|
335
|
-
- spec/factories/users.rb
|
336
|
-
- spec/factories/videos.rb
|
337
|
-
- spec/factories/item.rb
|
338
|
-
- spec/tests/geometric_builder_spec.rb
|
343
|
+
- spec/models/question.rb
|
344
|
+
- spec/models/question_select.rb
|
345
|
+
- spec/spec_helper.rb
|
339
346
|
- spec/tests/arel_spec.rb
|
340
|
-
- spec/tests/
|
341
|
-
- spec/tests/
|
342
|
-
- spec/tests/period_spec.rb
|
343
|
-
- spec/tests/range_spec.rb
|
347
|
+
- spec/tests/auxiliary_statement_spec.rb
|
348
|
+
- spec/tests/belongs_to_many_spec.rb
|
344
349
|
- spec/tests/collector_spec.rb
|
345
350
|
- spec/tests/distinct_on_spec.rb
|
351
|
+
- spec/tests/enum_set_spec.rb
|
352
|
+
- spec/tests/enum_spec.rb
|
353
|
+
- spec/tests/geometric_builder_spec.rb
|
354
|
+
- spec/tests/has_many_spec.rb
|
355
|
+
- spec/tests/insert_all_spec.rb
|
346
356
|
- spec/tests/interval_spec.rb
|
347
357
|
- spec/tests/lazy_spec.rb
|
358
|
+
- spec/tests/period_spec.rb
|
348
359
|
- spec/tests/quoting_spec.rb
|
360
|
+
- spec/tests/range_spec.rb
|
349
361
|
- spec/tests/relation_spec.rb
|
350
|
-
- spec/tests/auxiliary_statement_spec.rb
|
351
|
-
- spec/tests/enum_set_spec.rb
|
352
|
-
- spec/tests/has_many_spec.rb
|
353
|
-
- spec/tests/belongs_to_many_spec.rb
|
354
362
|
- spec/tests/table_inheritance_spec.rb
|
355
|
-
- spec/mocks/cache_query.rb
|
356
|
-
- spec/mocks/create_table.rb
|
357
|
-
- spec/en.yml
|
358
|
-
- spec/spec_helper.rb
|
359
363
|
- spec/schema.rb
|