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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e64bd87ba9a26795e83b579cc0047078b712c46f7e63be89f9ba7a5aad7de6d7
4
- data.tar.gz: a7039933d362f05912e01469ee20f7b66f30004d9e1b036b33e8cc73b8641ce0
3
+ metadata.gz: fc8196b50d197fd74c7c92238a69124295490b6a991f1618fae1daf610ad041d
4
+ data.tar.gz: 235d0e987824299051a1249e9f955a11ccc8966e77ffb0939485797f5285e559
5
5
  SHA512:
6
- metadata.gz: 2fa8934e9212705d81769c05fcb6271dd42f6baa2dc7525c11a8a78166c65bfb46482fc50caa96d525c182aabf746663fab4431e57c1fb7cae2fcfa35c580fa0
7
- data.tar.gz: f7f9b27dbe7a1b47c77592cae929f6f2b6cfa2c83cbcbd298eb84d521521eba5f0196cbdb475097fd875558747c7e05ffd77390a57efff3077fabc918cb7d8f7
6
+ metadata.gz: 7f9370196f53175590f98636c67d98885c7a6e0ac29a030baaea0357536e643500eb4f937d06da114a0054b5febd6b91c1c13abcb3f5853118c4e9685ed1ac82
7
+ data.tar.gz: 3f751a3bbdd5761dff8e3e73d587cdc335a68d9b3d08fbfc3a6b7285f1e5de22236857dfc7f842024a5486db6e6ebb7c41186147d56640c1316f40941e20083a
data/.tool-versions CHANGED
@@ -1 +1 @@
1
- ruby 2.7.5
1
+ ruby 2.7.7
data/Appraisals CHANGED
@@ -11,5 +11,5 @@ appraise 'rails6_1' do
11
11
  end
12
12
 
13
13
  appraise 'rails7_0' do
14
- gem 'rails', '~> 7.0.0.rc1'
14
+ gem 'rails', '~> 7.0.0'
15
15
  end
@@ -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'
@@ -2,6 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "rails", "~> 7.0.0.rc1"
5
+ gem "rails", "~> 7.0.0"
6
6
 
7
7
  gemspec path: "../"
@@ -1,3 +1,3 @@
1
1
  module ActiveRecordViews
2
- VERSION = '0.1.4'
2
+ VERSION = '0.1.5'
3
3
  end
@@ -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.reloader.wrap do
86
- status, headers, body = Rails.application.call(
87
- 'REQUEST_METHOD' => 'GET',
88
- 'PATH_INFO' => '/',
89
- 'rack.input' => StringIO.new,
90
- )
91
- expect(status).to eq 204
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, 'test_view', 'TestView', 'SELECT 1'
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.+test_view\tTestView\t.*\t.*\t\\N$/m)
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 = 'test_view';"
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 = 'test_view'")
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
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: 2021-12-07 00:00:00.000000000 Z
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.2.32
172
+ rubygems_version: 3.1.6
187
173
  signing_key:
188
174
  specification_version: 4
189
175
  summary: Automatic database view creation for ActiveRecord