activerecord_views 0.1.4 → 0.1.5
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/.tool-versions +1 -1
- data/Appraisals +1 -1
- data/activerecord_views.gemspec +0 -1
- data/gemfiles/rails7_0.gemfile +1 -1
- data/lib/active_record_views/version.rb +1 -1
- data/lib/tasks/active_record_views.rake +8 -1
- data/spec/spec_helper.rb +8 -10
- data/spec/tasks_spec.rb +7 -4
- metadata +3 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fc8196b50d197fd74c7c92238a69124295490b6a991f1618fae1daf610ad041d
|
4
|
+
data.tar.gz: 235d0e987824299051a1249e9f955a11ccc8966e77ffb0939485797f5285e559
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f9370196f53175590f98636c67d98885c7a6e0ac29a030baaea0357536e643500eb4f937d06da114a0054b5febd6b91c1c13abcb3f5853118c4e9685ed1ac82
|
7
|
+
data.tar.gz: 3f751a3bbdd5761dff8e3e73d587cdc335a68d9b3d08fbfc3a6b7285f1e5de22236857dfc7f842024a5486db6e6ebb7c41186147d56640c1316f40941e20083a
|
data/.tool-versions
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby 2.7.
|
1
|
+
ruby 2.7.7
|
data/Appraisals
CHANGED
data/activerecord_views.gemspec
CHANGED
@@ -21,7 +21,6 @@ Gem::Specification.new do |gem|
|
|
21
21
|
|
22
22
|
gem.add_development_dependency 'appraisal'
|
23
23
|
gem.add_development_dependency 'rspec-rails', '>= 2.14'
|
24
|
-
gem.add_development_dependency 'super_diff'
|
25
24
|
gem.add_development_dependency 'combustion', '>= 0.5.1'
|
26
25
|
gem.add_development_dependency 'pg'
|
27
26
|
gem.add_development_dependency 'warning'
|
data/gemfiles/rails7_0.gemfile
CHANGED
@@ -69,6 +69,8 @@ Rake::Task[schema_rake_task].enhance do
|
|
69
69
|
|
70
70
|
pg_tasks.send(:remove_sql_header_comments, active_record_views_dump.path)
|
71
71
|
|
72
|
+
active_record_views_dump_content = active_record_views_dump.read
|
73
|
+
|
72
74
|
# Substitute out any timestamps that were dumped from the active_record_views table
|
73
75
|
#
|
74
76
|
# Before:
|
@@ -82,12 +84,17 @@ Rake::Task[schema_rake_task].enhance do
|
|
82
84
|
# COPY public.active_record_views (name, class_name, checksum, options, refreshed_at) FROM stdin;
|
83
85
|
# test_view TestView 42364a017b73ef516a0eca9827e6fa00623257ee {"dependencies":[]} \N
|
84
86
|
# \.
|
85
|
-
active_record_views_dump_content = active_record_views_dump.read
|
86
87
|
if active_record_views_dump_content !~ /^COPY public.active_record_views \(.+, refreshed_at\) FROM stdin;$/
|
87
88
|
raise 'refreshed_at is not final column'
|
88
89
|
end
|
89
90
|
active_record_views_dump_content.gsub!(/\t\d\d\d\d-\d\d-\d\d.*$/, "\t\\N")
|
90
91
|
|
92
|
+
active_record_views_dump_content = active_record_views_dump_content
|
93
|
+
.lines
|
94
|
+
.chunk { |line| line.include?("\t") }
|
95
|
+
.flat_map { |is_data, lines| is_data ? lines.sort : lines }
|
96
|
+
.join
|
97
|
+
|
91
98
|
File.open filename, 'a' do |io|
|
92
99
|
io.puts active_record_views_dump_content
|
93
100
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -18,12 +18,12 @@ Rails.application.config.paths['app/models'] << 'app/models_temp'
|
|
18
18
|
|
19
19
|
Combustion.initialize! :active_record, :action_controller do
|
20
20
|
config.cache_classes = false
|
21
|
+
config.secret_key_base = 'dummy'
|
21
22
|
if Gem::Version.new(Rails.version) >= Gem::Version.new("6.1")
|
22
23
|
config.active_record.legacy_connection_handling = false
|
23
24
|
end
|
24
25
|
end
|
25
26
|
require 'rspec/rails'
|
26
|
-
require 'super_diff/rspec-rails'
|
27
27
|
|
28
28
|
RSpec.shared_context 'sql_statements' do
|
29
29
|
let(:sql_statements) { [] }
|
@@ -82,15 +82,13 @@ RSpec.configure do |config|
|
|
82
82
|
end
|
83
83
|
|
84
84
|
def test_request
|
85
|
-
Rails.application.
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
body.close
|
93
|
-
end
|
85
|
+
status, headers, body = Rails.application.call(
|
86
|
+
'REQUEST_METHOD' => 'GET',
|
87
|
+
'PATH_INFO' => '/',
|
88
|
+
'rack.input' => StringIO.new,
|
89
|
+
)
|
90
|
+
expect(status).to eq 204
|
91
|
+
body.close
|
94
92
|
end
|
95
93
|
|
96
94
|
def update_file(file, new_content)
|
data/spec/tasks_spec.rb
CHANGED
@@ -62,7 +62,9 @@ describe 'rake tasks' do
|
|
62
62
|
FileUtils.rm_f 'spec/internal/db/schema.rb'
|
63
63
|
FileUtils.rm_f 'spec/internal/db/structure.sql'
|
64
64
|
|
65
|
-
ActiveRecordViews.create_view ActiveRecord::Base.connection, '
|
65
|
+
ActiveRecordViews.create_view ActiveRecord::Base.connection, 'test_view_1', 'TestView1', 'SELECT 1'
|
66
|
+
ActiveRecordViews.create_view ActiveRecord::Base.connection, 'test_view_3', 'TestView3', 'SELECT 3'
|
67
|
+
ActiveRecordViews.create_view ActiveRecord::Base.connection, 'test_view_2', 'TestView2', 'SELECT 2'
|
66
68
|
end
|
67
69
|
|
68
70
|
after do
|
@@ -79,11 +81,12 @@ describe 'rake tasks' do
|
|
79
81
|
sql = File.read('spec/internal/db/structure.sql')
|
80
82
|
expect(sql).to match(/CREATE TABLE public\.schema_migrations/)
|
81
83
|
expect(sql).to match(/CREATE VIEW public\.test_view/)
|
82
|
-
expect(sql).to match(/COPY public\.active_record_views.+
|
84
|
+
expect(sql).to match(/COPY public\.active_record_views.+test_view_1\tTestView1\t.*\t.*\t\\N$/m)
|
85
|
+
expect(sql).to match(/^test_view_1.+^test_view_2.+^test_view_3/m)
|
83
86
|
end
|
84
87
|
|
85
88
|
it 'clears refreshed_at values' do
|
86
|
-
ActiveRecord::Base.connection.execute "UPDATE active_record_views SET refreshed_at = current_timestamp AT TIME ZONE 'UTC' WHERE name = '
|
89
|
+
ActiveRecord::Base.connection.execute "UPDATE active_record_views SET refreshed_at = current_timestamp AT TIME ZONE 'UTC' WHERE name = 'test_view_1';"
|
87
90
|
|
88
91
|
rake schema_rake_task
|
89
92
|
|
@@ -96,7 +99,7 @@ describe 'rake tasks' do
|
|
96
99
|
system 'psql -X -q -o /dev/null -f spec/internal/db/structure.sql activerecord_views_test'
|
97
100
|
raise unless $?.success?
|
98
101
|
|
99
|
-
refreshed_ats = ActiveRecord::Base.connection.select_values("SELECT refreshed_at FROM active_record_views WHERE name = '
|
102
|
+
refreshed_ats = ActiveRecord::Base.connection.select_values("SELECT refreshed_at FROM active_record_views WHERE name = 'test_view_1'")
|
100
103
|
expect(refreshed_ats).to eq [nil]
|
101
104
|
end
|
102
105
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord_views
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason Weathered
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -58,20 +58,6 @@ dependencies:
|
|
58
58
|
- - ">="
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: '2.14'
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
|
-
name: super_diff
|
63
|
-
requirement: !ruby/object:Gem::Requirement
|
64
|
-
requirements:
|
65
|
-
- - ">="
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version: '0'
|
68
|
-
type: :development
|
69
|
-
prerelease: false
|
70
|
-
version_requirements: !ruby/object:Gem::Requirement
|
71
|
-
requirements:
|
72
|
-
- - ">="
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: '0'
|
75
61
|
- !ruby/object:Gem::Dependency
|
76
62
|
name: combustion
|
77
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -183,7 +169,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
183
169
|
- !ruby/object:Gem::Version
|
184
170
|
version: '0'
|
185
171
|
requirements: []
|
186
|
-
rubygems_version: 3.
|
172
|
+
rubygems_version: 3.1.6
|
187
173
|
signing_key:
|
188
174
|
specification_version: 4
|
189
175
|
summary: Automatic database view creation for ActiveRecord
|