activerecord_views 0.1.1 → 0.1.2

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: 777d910ae40ada55060df98887059878cc8ddb8ec65f6d49a890d2de9164810f
4
- data.tar.gz: d905c23880139d85f0fb9ec3c00318670a1638351fc8e42bab05656c8d097d2e
3
+ metadata.gz: 8f6181c027be63e47f0f891651ef16dc6732baf4000d196709d2cbb80f0c8aa2
4
+ data.tar.gz: f9a5c359c72123e6555cf023ba8aca2b6509f6341d60d239297ebf84a28bde3d
5
5
  SHA512:
6
- metadata.gz: ed3ac3d78b82bf20501936c0c3f4a30815300da89d2516d9149d37723d977638f06f0c6414a62d1460239da7e94478110bb89ec13459d656d28cbe37ca94e254
7
- data.tar.gz: 0f6f5bf130436bc8fcf1a9fd1ad383044bc4a0373dd1f18a56c5691ee20a1eb55d38476e8af294c9daeb740182b520aff7202c4c6b75cc638d46dd12cda26dff
6
+ metadata.gz: 53c430bb26f03dad6cab94335ae927fefe3a4111dee9b2e322985e6eca85dc68f9c15091199c63f5e4983e36c3e4b906967166e2431f470c46574f55cc8ee990
7
+ data.tar.gz: 3548136a4b337bc8331a51b150c23bd72548ffb0b114a0dae7c148f000f5faea5cd24e1998e027ff9eca2b8073f234100af3afc3bacb6ae140c80d01ca2f513e
@@ -1,3 +1,3 @@
1
1
  module ActiveRecordViews
2
- VERSION = '0.1.1'
2
+ VERSION = '0.1.2'
3
3
  end
@@ -62,12 +62,27 @@ Rake::Task[schema_rake_task].enhance do
62
62
  pg_tasks.send(:remove_sql_header_comments, active_record_views_dump.path)
63
63
  end
64
64
 
65
- File.open filename, 'a' do |io|
66
- # Seek to the end to ensure we don't overwrite the existing content
67
- io.seek(0, IO::SEEK_END)
68
- IO.copy_stream active_record_views_dump, io
65
+ # Substitute out any timestamps that were dumped from the active_record_views table
66
+ #
67
+ # Before:
68
+ #
69
+ # COPY public.active_record_views (name, class_name, checksum, options, refreshed_at) FROM stdin;
70
+ # test_view TestView 42364a017b73ef516a0eca9827e6fa00623257ee {"dependencies":[]} 2021-10-26 02:49:12.247494
71
+ # \.
72
+ #
73
+ # After:
74
+ #
75
+ # COPY public.active_record_views (name, class_name, checksum, options, refreshed_at) FROM stdin;
76
+ # test_view TestView 42364a017b73ef516a0eca9827e6fa00623257ee {"dependencies":[]} \N
77
+ # \.
78
+ active_record_views_dump_content = active_record_views_dump.read
79
+ if active_record_views_dump_content !~ /^COPY public.active_record_views \(.+, refreshed_at\) FROM stdin;$/
80
+ raise 'refreshed_at is not final column'
81
+ end
82
+ active_record_views_dump_content.gsub!(/\t\d\d\d\d-\d\d-\d\d.*$/, "\t\\N")
69
83
 
70
- io.puts 'UPDATE public.active_record_views SET refreshed_at = NULL WHERE refreshed_at IS NOT NULL;'
84
+ File.open filename, 'a' do |io|
85
+ io.puts active_record_views_dump_content
71
86
  end
72
87
  ensure
73
88
  active_record_views_dump.close
data/spec/tasks_spec.rb CHANGED
@@ -79,8 +79,25 @@ describe 'rake tasks' do
79
79
  sql = File.read('spec/internal/db/structure.sql')
80
80
  expect(sql).to match(/CREATE TABLE public\.schema_migrations/)
81
81
  expect(sql).to match(/CREATE VIEW public\.test_view/)
82
- expect(sql).to match(/COPY public\.active_record_views.+test_view\tTestView/m)
83
- expect(sql).to match(/UPDATE public\.active_record_views SET refreshed_at = NULL/)
82
+ expect(sql).to match(/COPY public\.active_record_views.+test_view\tTestView\t.*\t.*\t\\N$/m)
83
+ end
84
+
85
+ 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';"
87
+
88
+ rake schema_rake_task
89
+
90
+ ActiveRecord::Base.clear_all_connections!
91
+
92
+ system 'dropdb activerecord_views_test'
93
+ raise unless $?.success?
94
+ system 'createdb activerecord_views_test'
95
+ raise unless $?.success?
96
+ system 'psql -X -q -o /dev/null -f spec/internal/db/structure.sql activerecord_views_test'
97
+ raise unless $?.success?
98
+
99
+ refreshed_ats = ActiveRecord::Base.connection.select_values("SELECT refreshed_at FROM active_record_views WHERE name = 'test_view'")
100
+ expect(refreshed_ats).to eq [nil]
84
101
  end
85
102
 
86
103
  it 'does not write structure.sql when `schema_format = :ruby`', if: schema_rake_task != 'db:structure:dump' do
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.1
4
+ version: 0.1.2
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-06-01 00:00:00.000000000 Z
11
+ date: 2021-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -185,7 +185,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
185
  - !ruby/object:Gem::Version
186
186
  version: '0'
187
187
  requirements: []
188
- rubygems_version: 3.0.3.1
188
+ rubygems_version: 3.0.3
189
189
  signing_key:
190
190
  specification_version: 4
191
191
  summary: Automatic database view creation for ActiveRecord