schema_plus_views 0.2.3 → 0.4.1
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 +5 -5
- data/.travis.yml +79 -8
- data/README.md +91 -5
- data/gemfiles/Gemfile.base +1 -1
- data/gemfiles/activerecord-5.2/Gemfile.base +4 -0
- data/gemfiles/activerecord-5.2/Gemfile.mysql2 +10 -0
- data/gemfiles/activerecord-5.2/Gemfile.postgresql +10 -0
- data/gemfiles/{activerecord-4.2 → activerecord-5.2}/Gemfile.sqlite3 +3 -3
- data/lib/schema_plus/views/active_record/connection_adapters/abstract_adapter.rb +42 -19
- data/lib/schema_plus/views/active_record/connection_adapters/mysql2_adapter.rb +15 -18
- data/lib/schema_plus/views/active_record/connection_adapters/postgresql_adapter.rb +79 -18
- data/lib/schema_plus/views/active_record/connection_adapters/sqlite3_adapter.rb +7 -6
- data/lib/schema_plus/views/active_record/migration/command_recorder.rb +3 -1
- data/lib/schema_plus/views/middleware.rb +65 -24
- data/lib/schema_plus/views/version.rb +1 -1
- data/schema_dev.yml +5 -2
- data/schema_plus_views.gemspec +4 -4
- data/spec/dumper_spec.rb +58 -11
- data/spec/introspection_spec.rb +54 -8
- data/spec/middleware_spec.rb +89 -0
- data/spec/migration_spec.rb +106 -58
- data/spec/named_schemas_spec.rb +8 -42
- data/spec/spec_helper.rb +16 -1
- metadata +25 -24
- data/gemfiles/activerecord-4.2/Gemfile.base +0 -3
- data/gemfiles/activerecord-4.2/Gemfile.mysql2 +0 -10
- data/gemfiles/activerecord-4.2/Gemfile.postgresql +0 -10
data/spec/named_schemas_spec.rb
CHANGED
@@ -6,10 +6,10 @@ describe "with multiple schemas" do
|
|
6
6
|
end
|
7
7
|
|
8
8
|
before(:each) do
|
9
|
-
newdb = case
|
10
|
-
when
|
11
|
-
when
|
12
|
-
when
|
9
|
+
newdb = case
|
10
|
+
when SchemaDev::Rspec::Helpers.mysql? then "CREATE SCHEMA IF NOT EXISTS schema_plus_views_test2"
|
11
|
+
when SchemaDev::Rspec::Helpers.postgresql? then "CREATE SCHEMA schema_plus_views_test2"
|
12
|
+
when SchemaDev::Rspec::Helpers.sqlite3? then "ATTACH ':memory:' AS schema_plus_views_test2"
|
13
13
|
end
|
14
14
|
begin
|
15
15
|
ActiveRecord::Base.connection.execute newdb
|
@@ -28,10 +28,10 @@ describe "with multiple schemas" do
|
|
28
28
|
end
|
29
29
|
|
30
30
|
connection.execute 'DROP TABLE IF EXISTS schema_plus_views_test2.users'
|
31
|
-
connection.execute 'CREATE TABLE schema_plus_views_test2.users (id ' + case
|
32
|
-
when
|
33
|
-
when
|
34
|
-
when
|
31
|
+
connection.execute 'CREATE TABLE schema_plus_views_test2.users (id ' + case
|
32
|
+
when SchemaDev::Rspec::Helpers.mysql? then "integer primary key auto_increment"
|
33
|
+
when SchemaDev::Rspec::Helpers.postgresql? then "serial primary key"
|
34
|
+
when SchemaDev::Rspec::Helpers.sqlite3? then "integer primary key autoincrement"
|
35
35
|
end + ", login varchar(255))"
|
36
36
|
end
|
37
37
|
|
@@ -60,38 +60,4 @@ describe "with multiple schemas" do
|
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
63
|
-
context "when using PostGIS", :postgresql => :only do
|
64
|
-
before(:all) do
|
65
|
-
begin
|
66
|
-
connection.execute "CREATE SCHEMA postgis"
|
67
|
-
rescue ActiveRecord::StatementInvalid => e
|
68
|
-
raise unless e.message =~ /already exists/
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
around(:each) do |example|
|
73
|
-
begin
|
74
|
-
connection.execute "SET search_path to '$user','public','postgis'"
|
75
|
-
example.run
|
76
|
-
ensure
|
77
|
-
connection.execute "SET search_path to '$user','public'"
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
before(:each) do
|
82
|
-
allow(connection).to receive(:adapter_name).and_return('PostGIS')
|
83
|
-
end
|
84
|
-
|
85
|
-
it "should hide views in postgis schema" do
|
86
|
-
begin
|
87
|
-
connection.create_view "postgis.hidden", "select 1", :force => true
|
88
|
-
connection.create_view :myview, "select 2", :force => true
|
89
|
-
expect(connection.views).to eq(["myview"])
|
90
|
-
ensure
|
91
|
-
connection.execute 'DROP VIEW postgis.hidden' rescue nil
|
92
|
-
connection.execute 'DROP VIEW myview' rescue nil
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
63
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -12,7 +12,7 @@ require 'schema_dev/rspec'
|
|
12
12
|
|
13
13
|
SchemaDev::Rspec.setup
|
14
14
|
|
15
|
-
Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f}
|
15
|
+
Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each { |f| require f }
|
16
16
|
|
17
17
|
RSpec.configure do |config|
|
18
18
|
config.warnings = true
|
@@ -21,9 +21,24 @@ RSpec.configure do |config|
|
|
21
21
|
ActiveRecord::Base.connection.tables.each do |table|
|
22
22
|
ActiveRecord::Migration.drop_table table, force: :cascade
|
23
23
|
end
|
24
|
+
ActiveRecord::Base.connection.views.each do |view|
|
25
|
+
ActiveRecord::Migration.drop_view view, force: :cascade
|
26
|
+
end
|
24
27
|
example.run
|
25
28
|
end
|
26
29
|
end
|
27
30
|
end
|
28
31
|
|
32
|
+
def apply_migration(config = {}, &block)
|
33
|
+
ActiveRecord::Schema.define do
|
34
|
+
instance_eval &block
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def build_migration(version: 5.0, &block)
|
39
|
+
Class.new(::ActiveRecord::Migration[version]) do
|
40
|
+
instance_eval &block
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
29
44
|
SimpleCov.command_name "[ruby #{RUBY_VERSION} - ActiveRecord #{::ActiveRecord::VERSION::STRING} - #{ActiveRecord::Base.connection.adapter_name}]"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: schema_plus_views
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ronen barzel
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-11-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -16,42 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '5.2'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '5.2'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: schema_plus_core
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0
|
33
|
+
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: 3.13.1
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: 3.13.1
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: simplecov
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,7 +122,7 @@ dependencies:
|
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
|
-
description:
|
125
|
+
description:
|
126
126
|
email:
|
127
127
|
- ronen@barzel.org
|
128
128
|
executables: []
|
@@ -136,10 +136,10 @@ files:
|
|
136
136
|
- README.md
|
137
137
|
- Rakefile
|
138
138
|
- gemfiles/Gemfile.base
|
139
|
-
- gemfiles/activerecord-
|
140
|
-
- gemfiles/activerecord-
|
141
|
-
- gemfiles/activerecord-
|
142
|
-
- gemfiles/activerecord-
|
139
|
+
- gemfiles/activerecord-5.2/Gemfile.base
|
140
|
+
- gemfiles/activerecord-5.2/Gemfile.mysql2
|
141
|
+
- gemfiles/activerecord-5.2/Gemfile.postgresql
|
142
|
+
- gemfiles/activerecord-5.2/Gemfile.sqlite3
|
143
143
|
- lib/schema_plus/views.rb
|
144
144
|
- lib/schema_plus/views/active_record/connection_adapters/abstract_adapter.rb
|
145
145
|
- lib/schema_plus/views/active_record/connection_adapters/mysql2_adapter.rb
|
@@ -153,6 +153,7 @@ files:
|
|
153
153
|
- schema_plus_views.gemspec
|
154
154
|
- spec/dumper_spec.rb
|
155
155
|
- spec/introspection_spec.rb
|
156
|
+
- spec/middleware_spec.rb
|
156
157
|
- spec/migration_spec.rb
|
157
158
|
- spec/named_schemas_spec.rb
|
158
159
|
- spec/sanity_spec.rb
|
@@ -161,7 +162,7 @@ homepage: https://github.com/SchemaPlus/schema_plus_views
|
|
161
162
|
licenses:
|
162
163
|
- MIT
|
163
164
|
metadata: {}
|
164
|
-
post_install_message:
|
165
|
+
post_install_message:
|
165
166
|
rdoc_options: []
|
166
167
|
require_paths:
|
167
168
|
- lib
|
@@ -176,14 +177,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
176
177
|
- !ruby/object:Gem::Version
|
177
178
|
version: '0'
|
178
179
|
requirements: []
|
179
|
-
|
180
|
-
|
181
|
-
signing_key:
|
180
|
+
rubygems_version: 3.0.8
|
181
|
+
signing_key:
|
182
182
|
specification_version: 4
|
183
183
|
summary: Adds support for views to ActiveRecord
|
184
184
|
test_files:
|
185
185
|
- spec/dumper_spec.rb
|
186
186
|
- spec/introspection_spec.rb
|
187
|
+
- spec/middleware_spec.rb
|
187
188
|
- spec/migration_spec.rb
|
188
189
|
- spec/named_schemas_spec.rb
|
189
190
|
- spec/sanity_spec.rb
|