activerecord_views 0.1.0 → 0.1.4
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 +4 -14
- data/activerecord_views.gemspec +1 -1
- data/gemfiles/{rails5_1.gemfile → rails7_0.gemfile} +1 -1
- data/lib/active_record_views/checksum_cache.rb +1 -5
- data/lib/active_record_views/extension.rb +0 -4
- data/lib/active_record_views/railtie.rb +5 -13
- data/lib/active_record_views/version.rb +1 -1
- data/lib/active_record_views.rb +2 -8
- data/lib/tasks/active_record_views.rake +55 -19
- data/spec/active_record_views_checksum_cache_spec.rb +1 -5
- data/spec/active_record_views_extension_spec.rb +5 -11
- data/spec/active_record_views_spec.rb +11 -4
- data/spec/internal/Rakefile +3 -0
- data/spec/spec_helper.rb +5 -15
- data/spec/support/silence_warnings.rb +0 -17
- data/spec/tasks_spec.rb +21 -2
- metadata +8 -10
- data/gemfiles/rails4_2.gemfile +0 -8
- data/gemfiles/rails5_0.gemfile +0 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e64bd87ba9a26795e83b579cc0047078b712c46f7e63be89f9ba7a5aad7de6d7
|
4
|
+
data.tar.gz: a7039933d362f05912e01469ee20f7b66f30004d9e1b036b33e8cc73b8641ce0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2fa8934e9212705d81769c05fcb6271dd42f6baa2dc7525c11a8a78166c65bfb46482fc50caa96d525c182aabf746663fab4431e57c1fb7cae2fcfa35c580fa0
|
7
|
+
data.tar.gz: f7f9b27dbe7a1b47c77592cae929f6f2b6cfa2c83cbcbd298eb84d521521eba5f0196cbdb475097fd875558747c7e05ffd77390a57efff3077fabc918cb7d8f7
|
data/.tool-versions
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby 2.
|
1
|
+
ruby 2.7.5
|
data/Appraisals
CHANGED
@@ -1,17 +1,3 @@
|
|
1
|
-
appraise 'rails4_2' do
|
2
|
-
gem 'rails', '~> 4.2.0'
|
3
|
-
gem "pg", "< 0.21"
|
4
|
-
end
|
5
|
-
|
6
|
-
appraise 'rails5_0' do
|
7
|
-
gem 'rails', '~> 5.0.0'
|
8
|
-
gem "pg", "< 1.0"
|
9
|
-
end
|
10
|
-
|
11
|
-
appraise 'rails5_1' do
|
12
|
-
gem 'rails', '~> 5.1.0'
|
13
|
-
end
|
14
|
-
|
15
1
|
appraise 'rails5_2' do
|
16
2
|
gem 'rails', '~> 5.2.0'
|
17
3
|
end
|
@@ -23,3 +9,7 @@ end
|
|
23
9
|
appraise 'rails6_1' do
|
24
10
|
gem 'rails', '~> 6.1.0'
|
25
11
|
end
|
12
|
+
|
13
|
+
appraise 'rails7_0' do
|
14
|
+
gem 'rails', '~> 7.0.0.rc1'
|
15
|
+
end
|
data/activerecord_views.gemspec
CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
18
|
gem.require_paths = ['lib']
|
19
19
|
|
20
|
-
gem.add_dependency 'activerecord', ['>=
|
20
|
+
gem.add_dependency 'activerecord', ['>= 5.2', '< 7.1']
|
21
21
|
|
22
22
|
gem.add_development_dependency 'appraisal'
|
23
23
|
gem.add_development_dependency 'rspec-rails', '>= 2.14'
|
@@ -6,11 +6,7 @@ module ActiveRecordViews
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def init_state_table!
|
9
|
-
table_exists =
|
10
|
-
@connection.data_source_exists?('active_record_views')
|
11
|
-
else
|
12
|
-
@connection.table_exists?('active_record_views')
|
13
|
-
end
|
9
|
+
table_exists = @connection.data_source_exists?('active_record_views')
|
14
10
|
|
15
11
|
if table_exists && !@connection.column_exists?('active_record_views', 'class_name')
|
16
12
|
@connection.begin_transaction
|
@@ -8,19 +8,11 @@ module ActiveRecordViews
|
|
8
8
|
end
|
9
9
|
|
10
10
|
unless app.config.cache_classes
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
ActiveRecordViews.reload_stale_views!
|
17
|
-
end
|
18
|
-
else
|
19
|
-
ActiveSupport.on_load :action_controller do
|
20
|
-
ActionDispatch::Callbacks.before do
|
21
|
-
ActiveRecordViews.reload_stale_views!
|
22
|
-
end
|
23
|
-
end
|
11
|
+
app.reloader.before_class_unload do
|
12
|
+
ActiveRecordViews.reload_stale_views!
|
13
|
+
end
|
14
|
+
app.executor.to_run do
|
15
|
+
ActiveRecordViews.reload_stale_views!
|
24
16
|
end
|
25
17
|
end
|
26
18
|
end
|
data/lib/active_record_views.rb
CHANGED
@@ -37,24 +37,18 @@ module ActiveRecordViews
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def self.without_transaction(connection)
|
40
|
-
in_transaction = if connection.respond_to? :transaction_open?
|
41
|
-
connection.transaction_open?
|
42
|
-
else
|
43
|
-
!connection.outside_transaction?
|
44
|
-
end
|
45
|
-
|
46
40
|
states = Thread.current[:active_record_views_without_transaction] ||= {}
|
47
41
|
|
48
42
|
begin
|
49
43
|
if states[connection]
|
50
44
|
yield states[connection]
|
51
|
-
elsif
|
45
|
+
elsif connection.transaction_open?
|
52
46
|
begin
|
53
47
|
temp_connection = connection.pool.checkout
|
54
48
|
states[temp_connection] = states[connection] = temp_connection
|
55
49
|
yield temp_connection
|
56
50
|
ensure
|
57
|
-
connection.pool.checkin temp_connection
|
51
|
+
connection.pool.checkin temp_connection if temp_connection
|
58
52
|
states[temp_connection] = states[connection] = nil
|
59
53
|
end
|
60
54
|
else
|
@@ -9,25 +9,20 @@ end
|
|
9
9
|
schema_rake_task = Gem::Version.new(Rails.version) >= Gem::Version.new("6.1") ? 'db:schema:dump' : 'db:structure:dump'
|
10
10
|
|
11
11
|
Rake::Task[schema_rake_task].enhance do
|
12
|
-
table_exists =
|
13
|
-
ActiveRecord::Base.connection.data_source_exists?('active_record_views')
|
14
|
-
else
|
15
|
-
ActiveRecord::Base.connection.table_exists?('active_record_views')
|
16
|
-
end
|
12
|
+
table_exists = ActiveRecord::Base.connection.data_source_exists?('active_record_views')
|
17
13
|
|
18
14
|
if schema_rake_task == 'db:structure:dump'
|
19
15
|
ActiveRecord::Base.schema_format = :sql
|
20
16
|
end
|
21
17
|
|
22
|
-
|
23
|
-
|
18
|
+
schema_format = if ActiveRecord.respond_to?(:schema_format)
|
19
|
+
ActiveRecord.schema_format
|
20
|
+
else
|
21
|
+
ActiveRecord::Base.schema_format
|
22
|
+
end
|
24
23
|
|
25
|
-
|
26
|
-
|
27
|
-
tasks.dump_filename('primary')
|
28
|
-
else
|
29
|
-
tasks.schema_file
|
30
|
-
end
|
24
|
+
if table_exists && schema_format == :sql
|
25
|
+
tasks = ActiveRecord::Tasks::DatabaseTasks
|
31
26
|
|
32
27
|
config = if ActiveRecord::Base.configurations.respond_to?(:configs_for)
|
33
28
|
if Rails.version.start_with?('6.0.')
|
@@ -49,15 +44,56 @@ Rake::Task[schema_rake_task].enhance do
|
|
49
44
|
config.fetch('database')
|
50
45
|
end
|
51
46
|
|
47
|
+
filename = case
|
48
|
+
when tasks.respond_to?(:schema_dump_path)
|
49
|
+
tasks.schema_dump_path(config)
|
50
|
+
when tasks.respond_to?(:dump_filename)
|
51
|
+
tasks.dump_filename('primary')
|
52
|
+
else
|
53
|
+
tasks.schema_file
|
54
|
+
end
|
55
|
+
|
52
56
|
pg_tasks = tasks.send(:class_for_adapter, adapter).new(config)
|
53
|
-
pg_tasks.
|
57
|
+
psql_env = if pg_tasks.respond_to?(:psql_env, true)
|
58
|
+
pg_tasks.send(:psql_env)
|
59
|
+
else
|
60
|
+
pg_tasks.send(:set_psql_env)
|
61
|
+
{}
|
62
|
+
end
|
63
|
+
|
64
|
+
begin
|
65
|
+
active_record_views_dump = Tempfile.open("active_record_views_dump.sql")
|
66
|
+
require 'shellwords'
|
67
|
+
system(psql_env, "pg_dump --data-only --no-owner --table=active_record_views #{Shellwords.escape database} >> #{Shellwords.escape active_record_views_dump.path}")
|
68
|
+
raise 'active_record_views metadata dump failed' unless $?.success?
|
54
69
|
|
55
|
-
|
56
|
-
system("pg_dump --data-only --table=active_record_views #{Shellwords.escape database} >> #{Shellwords.escape filename}")
|
57
|
-
raise 'active_record_views metadata dump failed' unless $?.success?
|
70
|
+
pg_tasks.send(:remove_sql_header_comments, active_record_views_dump.path)
|
58
71
|
|
59
|
-
|
60
|
-
|
72
|
+
# Substitute out any timestamps that were dumped from the active_record_views table
|
73
|
+
#
|
74
|
+
# Before:
|
75
|
+
#
|
76
|
+
# COPY public.active_record_views (name, class_name, checksum, options, refreshed_at) FROM stdin;
|
77
|
+
# test_view TestView 42364a017b73ef516a0eca9827e6fa00623257ee {"dependencies":[]} 2021-10-26 02:49:12.247494
|
78
|
+
# \.
|
79
|
+
#
|
80
|
+
# After:
|
81
|
+
#
|
82
|
+
# COPY public.active_record_views (name, class_name, checksum, options, refreshed_at) FROM stdin;
|
83
|
+
# test_view TestView 42364a017b73ef516a0eca9827e6fa00623257ee {"dependencies":[]} \N
|
84
|
+
# \.
|
85
|
+
active_record_views_dump_content = active_record_views_dump.read
|
86
|
+
if active_record_views_dump_content !~ /^COPY public.active_record_views \(.+, refreshed_at\) FROM stdin;$/
|
87
|
+
raise 'refreshed_at is not final column'
|
88
|
+
end
|
89
|
+
active_record_views_dump_content.gsub!(/\t\d\d\d\d-\d\d-\d\d.*$/, "\t\\N")
|
90
|
+
|
91
|
+
File.open filename, 'a' do |io|
|
92
|
+
io.puts active_record_views_dump_content
|
93
|
+
end
|
94
|
+
ensure
|
95
|
+
active_record_views_dump.close
|
96
|
+
active_record_views_dump.unlink
|
61
97
|
end
|
62
98
|
end
|
63
99
|
end
|
@@ -5,11 +5,7 @@ describe ActiveRecordViews::ChecksumCache do
|
|
5
5
|
|
6
6
|
describe 'initialisation' do
|
7
7
|
def metadata_table_exists?
|
8
|
-
|
9
|
-
connection.data_source_exists?('active_record_views')
|
10
|
-
else
|
11
|
-
connection.table_exists?('active_record_views')
|
12
|
-
end
|
8
|
+
connection.data_source_exists?('active_record_views')
|
13
9
|
end
|
14
10
|
|
15
11
|
context 'no existing table' do
|
@@ -8,11 +8,7 @@ describe ActiveRecordViews::Extension do
|
|
8
8
|
|
9
9
|
def view_exists?(name)
|
10
10
|
connection = ActiveRecord::Base.connection
|
11
|
-
|
12
|
-
connection.view_exists?(name)
|
13
|
-
else
|
14
|
-
connection.table_exists?(name)
|
15
|
-
end
|
11
|
+
connection.view_exists?(name)
|
16
12
|
end
|
17
13
|
|
18
14
|
it 'creates database views from heredocs' do
|
@@ -119,7 +115,7 @@ describe ActiveRecordViews::Extension do
|
|
119
115
|
end
|
120
116
|
RB
|
121
117
|
|
122
|
-
|
118
|
+
Rails.application.reloader.wrap do
|
123
119
|
expect(DeletedFileTestModel.first.name).to eq 'delete test'
|
124
120
|
end
|
125
121
|
|
@@ -133,11 +129,9 @@ describe ActiveRecordViews::Extension do
|
|
133
129
|
.and change { view_exists?('deleted_file_test_models') }.from(true).to(false)
|
134
130
|
test_request # second request does not `drop_view` again
|
135
131
|
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
}.to raise_error NameError, 'uninitialized constant DeletedFileTestModel'
|
140
|
-
end
|
132
|
+
expect {
|
133
|
+
DeletedFileTestModel.first.name
|
134
|
+
}.to raise_error NameError, 'uninitialized constant DeletedFileTestModel'
|
141
135
|
end
|
142
136
|
|
143
137
|
it 'does not create if database view is initially up to date' do
|
@@ -27,10 +27,6 @@ describe ActiveRecordViews do
|
|
27
27
|
WHERE schemaname = 'public' AND matviewname = 'test'
|
28
28
|
SQL
|
29
29
|
|
30
|
-
if Rails::VERSION::MAJOR < 5
|
31
|
-
value = ActiveRecord::ConnectionAdapters::Column::TRUE_VALUES.include?(value)
|
32
|
-
end
|
33
|
-
|
34
30
|
value
|
35
31
|
end
|
36
32
|
|
@@ -333,5 +329,16 @@ describe ActiveRecordViews do
|
|
333
329
|
original_connection.pool.checkin original_connection_2
|
334
330
|
end
|
335
331
|
end
|
332
|
+
|
333
|
+
it 'does not attempt to checkin when checkout fails' do
|
334
|
+
expect(original_connection.pool).to receive(:checkout).and_raise PG::ConnectionBad
|
335
|
+
expect(original_connection.pool).to_not receive(:checkin)
|
336
|
+
|
337
|
+
expect {
|
338
|
+
original_connection.transaction do
|
339
|
+
ActiveRecordViews.without_transaction(original_connection) { }
|
340
|
+
end
|
341
|
+
}.to raise_error PG::ConnectionBad
|
342
|
+
end
|
336
343
|
end
|
337
344
|
end
|
data/spec/internal/Rakefile
CHANGED
@@ -12,6 +12,9 @@ Combustion.initialize! :active_record, :action_controller do
|
|
12
12
|
config.cache_classes = false
|
13
13
|
config.log_level = :debug
|
14
14
|
config.active_record.schema_format = ENV.fetch('SCHEMA_FORMAT', 'sql').to_sym
|
15
|
+
if Gem::Version.new(Rails.version) >= Gem::Version.new("6.1")
|
16
|
+
config.active_record.legacy_connection_handling = false
|
17
|
+
end
|
15
18
|
if ENV['SKIP_MODEL_EAGER_LOAD']
|
16
19
|
config.eager_load_paths -= Rails.application.config.paths['app/models'].to_a
|
17
20
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -18,6 +18,9 @@ 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
|
+
if Gem::Version.new(Rails.version) >= Gem::Version.new("6.1")
|
22
|
+
config.active_record.legacy_connection_handling = false
|
23
|
+
end
|
21
24
|
end
|
22
25
|
require 'rspec/rails'
|
23
26
|
require 'super_diff/rspec-rails'
|
@@ -50,12 +53,7 @@ RSpec.configure do |config|
|
|
50
53
|
config.before do
|
51
54
|
FileUtils.rm_rf Dir["spec/internal/app/models_temp/*"]
|
52
55
|
|
53
|
-
|
54
|
-
Rails.application.reloader.reload!
|
55
|
-
else
|
56
|
-
ActionDispatch::Reloader.cleanup!
|
57
|
-
ActionDispatch::Reloader.prepare!
|
58
|
-
end
|
56
|
+
Rails.application.reloader.reload!
|
59
57
|
|
60
58
|
connection = ActiveRecord::Base.connection
|
61
59
|
|
@@ -83,16 +81,8 @@ RSpec.configure do |config|
|
|
83
81
|
config.include_context 'sql_statements'
|
84
82
|
end
|
85
83
|
|
86
|
-
def with_reloader(&block)
|
87
|
-
if Rails.application.respond_to?(:reloader)
|
88
|
-
Rails.application.reloader.wrap(&block)
|
89
|
-
else
|
90
|
-
block.call
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
84
|
def test_request
|
95
|
-
|
85
|
+
Rails.application.reloader.wrap do
|
96
86
|
status, headers, body = Rails.application.call(
|
97
87
|
'REQUEST_METHOD' => 'GET',
|
98
88
|
'PATH_INFO' => '/',
|
@@ -1,23 +1,6 @@
|
|
1
1
|
require 'warning'
|
2
2
|
require 'rails/version'
|
3
3
|
|
4
|
-
case Rails::VERSION::STRING
|
5
|
-
when /^4\.2\./
|
6
|
-
Warning.ignore(%r{lib/(active_support/core_ext|action_dispatch/middleware)/.+: warning: (method redefined|previous definition)})
|
7
|
-
Warning.ignore(%r{lib/active_support/core_ext/.+: warning: BigDecimal.new is deprecated})
|
8
|
-
Warning.ignore(%r{lib/arel/visitors/informix.rb:\d+: warning: assigned but unused variable})
|
9
|
-
Warning.ignore(%r{lib/active_record/connection_adapters/.+: warning: deprecated Object#=~ is called on Integer})
|
10
|
-
Warning.ignore(%r{Inheriting from Rack::Session::Abstract::ID is deprecated})
|
11
|
-
when /^5\.0\./
|
12
|
-
Warning.ignore(%r{lib/(active_support/core_ext|action_view)/.+: warning: (method redefined|previous definition)})
|
13
|
-
Warning.ignore(%r{lib/arel/visitors/informix.rb:\d+: warning: assigned but unused variable})
|
14
|
-
Warning.ignore(%r{lib/action_view/.+: warning: `\*' interpreted as argument prefix})
|
15
|
-
when /^5\.1\./
|
16
|
-
Warning.ignore(%r{lib/(active_support/core_ext)/.+: warning: (method redefined|previous definition)})
|
17
|
-
Warning.ignore(%r{lib/arel/visitors/informix.rb:\d+: warning: assigned but unused variable})
|
18
|
-
Warning.ignore(%r{lib/active_record/.+/schema_statements.rb:\d+: (warning: in `drop_table': the last argument was passed as a single Hash|warning: although a splat keyword arguments here)})
|
19
|
-
end
|
20
|
-
|
21
4
|
Warning.process do |_warning|
|
22
5
|
:raise
|
23
6
|
end
|
data/spec/tasks_spec.rb
CHANGED
@@ -77,8 +77,27 @@ describe 'rake tasks' do
|
|
77
77
|
|
78
78
|
expect(File.exist?('spec/internal/db/schema.rb')).to eq false
|
79
79
|
sql = File.read('spec/internal/db/structure.sql')
|
80
|
-
expect(sql).to match(/
|
81
|
-
expect(sql).to match(/
|
80
|
+
expect(sql).to match(/CREATE TABLE public\.schema_migrations/)
|
81
|
+
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)
|
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]
|
82
101
|
end
|
83
102
|
|
84
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.
|
4
|
+
version: 0.1.4
|
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-
|
11
|
+
date: 2021-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -16,20 +16,20 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '5.2'
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
22
|
+
version: '7.1'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
29
|
+
version: '5.2'
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
32
|
+
version: '7.1'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: appraisal
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -130,12 +130,10 @@ files:
|
|
130
130
|
- README.markdown
|
131
131
|
- Rakefile
|
132
132
|
- activerecord_views.gemspec
|
133
|
-
- gemfiles/rails4_2.gemfile
|
134
|
-
- gemfiles/rails5_0.gemfile
|
135
|
-
- gemfiles/rails5_1.gemfile
|
136
133
|
- gemfiles/rails5_2.gemfile
|
137
134
|
- gemfiles/rails6_0.gemfile
|
138
135
|
- gemfiles/rails6_1.gemfile
|
136
|
+
- gemfiles/rails7_0.gemfile
|
139
137
|
- lib/active_record_views.rb
|
140
138
|
- lib/active_record_views/checksum_cache.rb
|
141
139
|
- lib/active_record_views/database_cleaner/truncation_extension.rb
|
@@ -185,7 +183,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
185
183
|
- !ruby/object:Gem::Version
|
186
184
|
version: '0'
|
187
185
|
requirements: []
|
188
|
-
rubygems_version: 3.
|
186
|
+
rubygems_version: 3.2.32
|
189
187
|
signing_key:
|
190
188
|
specification_version: 4
|
191
189
|
summary: Automatic database view creation for ActiveRecord
|
data/gemfiles/rails4_2.gemfile
DELETED