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 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