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