scenic-cascade 0.1.1 → 0.1.2
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/CHANGELOG.md +10 -1
- data/Gemfile +2 -1
- data/Gemfile.lock +25 -19
- data/Steepfile +4 -1
- data/lib/generators/scenic/view/cascade/cascade_generator.rb +11 -2
- data/lib/scenic/cascade/definition_finder.rb +16 -5
- data/lib/scenic/cascade/version.rb +1 -1
- data/rbs_collection.lock.yaml +124 -24
- data/rbs_collection.yaml +3 -8
- data/sig/generators/scenic/view/cascade/cascade_generator.rbs +4 -0
- data/sig/generators/scenic/view/view_generator.rbs +8 -3
- data/sig/scenic/cascade/definition_finder.rbs +1 -1
- data/sig/scenic/cascade/view.rbs +2 -0
- data/sig/scenic/cascade/view_with_version.rbs +4 -0
- data/sig/scenic/cascade.rbs +1 -1
- data/sig/scenic/definition.rbs +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9d210342197b949abc4156e8fcdc63ad74b04f1fde40fb207e35dc15b13e1efd
|
|
4
|
+
data.tar.gz: 60c19c6113bc29ebc57c068ef16d744661f33f9bdd06a763807b807e41d3f66f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9040765c0fdadb9778139f634883a09466ddf80d8b63bf28c8b358150e0d4e6eb45556bb3d926c9e458c7e3fd8bf9deb7b8863d6a80694163f6b73643654ee09
|
|
7
|
+
data.tar.gz: 05ea8516e444b9c07cba0a8813af3985295897ce11c90790ca407eb5aa81d5d250e937d334269f5b87c797ee932a2ae7e1e09cff92d82c9a7041f89c35cbd06e
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,14 @@ and this project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.ht
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.1.2] - 2026-11-01
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- Select the latest existing dependent view definition when SQL version numbers have gaps.
|
|
15
|
+
- Report noncanonical numeric view definition filenames instead of silently selecting an older definition.
|
|
16
|
+
- Leave view definition files untouched when a dependent view has no Scenic definition.
|
|
17
|
+
|
|
10
18
|
## [0.1.1] - 2026-10-30
|
|
11
19
|
|
|
12
20
|
### Fixed
|
|
@@ -19,6 +27,7 @@ and this project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.ht
|
|
|
19
27
|
|
|
20
28
|
- Initial release of the cascading Scenic view migration generator.
|
|
21
29
|
|
|
22
|
-
[Unreleased]: https://github.com/akiomik/scenic-cascade/compare/v0.1.
|
|
30
|
+
[Unreleased]: https://github.com/akiomik/scenic-cascade/compare/v0.1.2...HEAD
|
|
31
|
+
[0.1.2]: https://github.com/akiomik/scenic-cascade/compare/v0.1.1...v0.1.2
|
|
23
32
|
[0.1.1]: https://github.com/akiomik/scenic-cascade/compare/v0.1.0...v0.1.1
|
|
24
33
|
[0.1.0]: https://github.com/akiomik/scenic-cascade/releases/tag/v0.1.0
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
scenic-cascade (0.1.
|
|
4
|
+
scenic-cascade (0.1.2)
|
|
5
5
|
scenic (~> 1.0)
|
|
6
6
|
|
|
7
7
|
GEM
|
|
8
8
|
remote: https://rubygems.org/
|
|
9
9
|
specs:
|
|
10
|
-
abbrev (0.1.1)
|
|
11
10
|
actionpack (7.1.6)
|
|
12
11
|
actionview (= 7.1.6)
|
|
13
12
|
activesupport (= 7.1.6)
|
|
@@ -58,7 +57,7 @@ GEM
|
|
|
58
57
|
concurrent-ruby (1.3.7)
|
|
59
58
|
connection_pool (2.4.1)
|
|
60
59
|
crass (1.0.8)
|
|
61
|
-
csv (3.
|
|
60
|
+
csv (3.3.7)
|
|
62
61
|
database_cleaner-active_record (2.1.0)
|
|
63
62
|
activerecord (>= 5.a)
|
|
64
63
|
database_cleaner-core (~> 2.0.0)
|
|
@@ -68,8 +67,10 @@ GEM
|
|
|
68
67
|
drb (2.2.0)
|
|
69
68
|
ruby2_keywords
|
|
70
69
|
erubi (1.12.0)
|
|
71
|
-
ffi (1.
|
|
72
|
-
|
|
70
|
+
ffi (1.17.4-aarch64-linux-musl)
|
|
71
|
+
ffi (1.17.4-arm64-darwin)
|
|
72
|
+
ffi (1.17.4-x86_64-linux-gnu)
|
|
73
|
+
fileutils (1.8.1)
|
|
73
74
|
i18n (1.14.1)
|
|
74
75
|
concurrent-ruby (~> 1.0)
|
|
75
76
|
io-console (0.6.0)
|
|
@@ -77,8 +78,9 @@ GEM
|
|
|
77
78
|
rdoc
|
|
78
79
|
reline (>= 0.3.8)
|
|
79
80
|
json (2.7.1)
|
|
80
|
-
language_server-protocol (3.17.0.
|
|
81
|
-
listen (3.
|
|
81
|
+
language_server-protocol (3.17.0.6)
|
|
82
|
+
listen (3.10.1)
|
|
83
|
+
logger
|
|
82
84
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
|
83
85
|
rb-inotify (~> 0.9, >= 0.9.10)
|
|
84
86
|
logger (1.6.0)
|
|
@@ -86,7 +88,7 @@ GEM
|
|
|
86
88
|
crass (~> 1.0.2)
|
|
87
89
|
nokogiri (>= 1.12.0)
|
|
88
90
|
minitest (5.20.0)
|
|
89
|
-
mutex_m (0.
|
|
91
|
+
mutex_m (0.3.0)
|
|
90
92
|
nokogiri (1.18.10-aarch64-linux-musl)
|
|
91
93
|
racc (~> 1.4)
|
|
92
94
|
nokogiri (1.18.10-arm64-darwin)
|
|
@@ -129,10 +131,11 @@ GEM
|
|
|
129
131
|
rainbow (3.1.1)
|
|
130
132
|
rake (13.1.0)
|
|
131
133
|
rb-fsevent (0.11.2)
|
|
132
|
-
rb-inotify (0.
|
|
134
|
+
rb-inotify (0.11.1)
|
|
133
135
|
ffi (~> 1.0)
|
|
134
|
-
rbs (3.
|
|
135
|
-
|
|
136
|
+
rbs (3.10.4)
|
|
137
|
+
logger
|
|
138
|
+
tsort
|
|
136
139
|
rdoc (6.6.3.1)
|
|
137
140
|
psych (>= 4.0.0)
|
|
138
141
|
regexp_parser (2.8.3)
|
|
@@ -201,31 +204,34 @@ GEM
|
|
|
201
204
|
simplecov (~> 0.19)
|
|
202
205
|
simplecov-html (0.12.3)
|
|
203
206
|
simplecov_json_formatter (0.1.4)
|
|
204
|
-
steep (1.
|
|
207
|
+
steep (1.10.0)
|
|
205
208
|
activesupport (>= 5.1)
|
|
206
209
|
concurrent-ruby (>= 1.1.10)
|
|
207
210
|
csv (>= 3.0.9)
|
|
208
211
|
fileutils (>= 1.1.0)
|
|
209
212
|
json (>= 2.1.0)
|
|
210
|
-
language_server-protocol (>= 3.
|
|
213
|
+
language_server-protocol (>= 3.17.0.4, < 4.0)
|
|
211
214
|
listen (~> 3.0)
|
|
212
215
|
logger (>= 1.3.0)
|
|
216
|
+
mutex_m (>= 0.3.0)
|
|
213
217
|
parser (>= 3.1)
|
|
214
218
|
rainbow (>= 2.2.2, < 4.0)
|
|
215
|
-
rbs (
|
|
219
|
+
rbs (~> 3.9)
|
|
216
220
|
securerandom (>= 0.1)
|
|
217
221
|
strscan (>= 1.0.0)
|
|
218
|
-
terminal-table (>= 2, <
|
|
222
|
+
terminal-table (>= 2, < 5)
|
|
223
|
+
uri (>= 0.12.0)
|
|
219
224
|
stringio (3.2.0)
|
|
220
|
-
strscan (3.1.
|
|
221
|
-
terminal-table (
|
|
222
|
-
unicode-display_width (>= 1.1.1, <
|
|
225
|
+
strscan (3.1.8)
|
|
226
|
+
terminal-table (4.0.0)
|
|
227
|
+
unicode-display_width (>= 1.1.1, < 4)
|
|
223
228
|
thor (1.4.0)
|
|
224
229
|
timeout (0.4.1)
|
|
225
230
|
tsort (0.2.0)
|
|
226
231
|
tzinfo (2.0.6)
|
|
227
232
|
concurrent-ruby (~> 1.0)
|
|
228
233
|
unicode-display_width (2.5.0)
|
|
234
|
+
uri (1.1.2)
|
|
229
235
|
webrick (1.8.2)
|
|
230
236
|
zeitwerk (2.6.12)
|
|
231
237
|
|
|
@@ -250,7 +256,7 @@ DEPENDENCIES
|
|
|
250
256
|
scenic-cascade!
|
|
251
257
|
simplecov
|
|
252
258
|
simplecov-cobertura (~> 3.2)
|
|
253
|
-
steep
|
|
259
|
+
steep (~> 1.10)
|
|
254
260
|
|
|
255
261
|
BUNDLED WITH
|
|
256
262
|
2.4.22
|
data/Steepfile
CHANGED
|
@@ -11,6 +11,11 @@ module Scenic
|
|
|
11
11
|
class CascadeGenerator < Scenic::Generators::ViewGenerator
|
|
12
12
|
source_root File.expand_path('templates', __dir__ || '.')
|
|
13
13
|
|
|
14
|
+
def create_view_definition
|
|
15
|
+
dependents unless destroying? || creating_new_view?
|
|
16
|
+
super
|
|
17
|
+
end
|
|
18
|
+
|
|
14
19
|
def create_migration_file
|
|
15
20
|
if creating_new_view? || destroying_initial_view?
|
|
16
21
|
migration_template('db/migrate/create_view.rb.erb',
|
|
@@ -24,7 +29,8 @@ module Scenic
|
|
|
24
29
|
private
|
|
25
30
|
|
|
26
31
|
def dependents
|
|
27
|
-
|
|
32
|
+
cached_dependents = @dependents
|
|
33
|
+
return cached_dependents unless cached_dependents.nil?
|
|
28
34
|
|
|
29
35
|
deps = Scenic::Cascade.view_dependents_of(plural_name, recursive: true)
|
|
30
36
|
views = deps.map { |dep| view_with_version_for(dep) }
|
|
@@ -34,7 +40,10 @@ module Scenic
|
|
|
34
40
|
|
|
35
41
|
def view_with_version_for(dep)
|
|
36
42
|
name = dep.from.name
|
|
37
|
-
|
|
43
|
+
definition = Scenic::Cascade.find_definitions_of(name).last
|
|
44
|
+
raise ArgumentError, "Dependent view #{name} has no Scenic definition file" if definition.nil?
|
|
45
|
+
|
|
46
|
+
version = definition.version.to_i
|
|
38
47
|
Scenic::Cascade::ViewWithVersion.new(name: name, version: version, materialized: dep.from.materialized?)
|
|
39
48
|
end
|
|
40
49
|
end
|
|
@@ -14,7 +14,13 @@ module Scenic
|
|
|
14
14
|
# Provides class methods to injected class
|
|
15
15
|
module ClassMethods
|
|
16
16
|
def find_definitions_of(view_name)
|
|
17
|
-
|
|
17
|
+
first_path = Scenic::Definition.new(view_name, 1).full_path
|
|
18
|
+
directory = first_path.dirname
|
|
19
|
+
return [] unless directory.directory?
|
|
20
|
+
|
|
21
|
+
prefix = first_path.basename.to_s.sub(/\d+\.sql\z/, '')
|
|
22
|
+
directory.children.map { |path| definition_at(path, view_name, prefix) }
|
|
23
|
+
.compact.sort_by { |definition| definition.version.to_i }
|
|
18
24
|
end
|
|
19
25
|
|
|
20
26
|
def find_latest_definition_of(view_name)
|
|
@@ -29,11 +35,16 @@ module Scenic
|
|
|
29
35
|
|
|
30
36
|
private
|
|
31
37
|
|
|
32
|
-
def
|
|
33
|
-
|
|
34
|
-
|
|
38
|
+
def definition_at(path, view_name, prefix)
|
|
39
|
+
return unless path.file?
|
|
40
|
+
|
|
41
|
+
match = /\A#{Regexp.escape(prefix)}(?<version>\d+)\.sql\z/.match(path.basename.to_s)
|
|
42
|
+
return unless match && match[:version].to_i.positive?
|
|
43
|
+
|
|
44
|
+
definition = Scenic::Definition.new(view_name, match[:version].to_i)
|
|
45
|
+
return definition if definition.full_path == path
|
|
35
46
|
|
|
36
|
-
|
|
47
|
+
raise ArgumentError, "Noncanonical view definition #{path}; expected #{definition.full_path}"
|
|
37
48
|
end
|
|
38
49
|
end
|
|
39
50
|
end
|
data/rbs_collection.lock.yaml
CHANGED
|
@@ -6,7 +6,7 @@ gems:
|
|
|
6
6
|
source:
|
|
7
7
|
type: git
|
|
8
8
|
name: ruby/gem_rbs_collection
|
|
9
|
-
revision:
|
|
9
|
+
revision: 9e17daa08b1710667699a208981cffd21dbf15f6
|
|
10
10
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
11
11
|
repo_dir: gems
|
|
12
12
|
- name: actionview
|
|
@@ -14,47 +14,67 @@ gems:
|
|
|
14
14
|
source:
|
|
15
15
|
type: git
|
|
16
16
|
name: ruby/gem_rbs_collection
|
|
17
|
-
revision:
|
|
17
|
+
revision: 9e17daa08b1710667699a208981cffd21dbf15f6
|
|
18
18
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
19
19
|
repo_dir: gems
|
|
20
20
|
- name: activemodel
|
|
21
|
-
version: '
|
|
21
|
+
version: '7.1'
|
|
22
22
|
source:
|
|
23
23
|
type: git
|
|
24
24
|
name: ruby/gem_rbs_collection
|
|
25
|
-
revision:
|
|
25
|
+
revision: 9e17daa08b1710667699a208981cffd21dbf15f6
|
|
26
26
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
27
27
|
repo_dir: gems
|
|
28
28
|
- name: activerecord
|
|
29
|
-
version: '
|
|
29
|
+
version: '7.1'
|
|
30
30
|
source:
|
|
31
31
|
type: git
|
|
32
32
|
name: ruby/gem_rbs_collection
|
|
33
|
-
revision:
|
|
33
|
+
revision: 9e17daa08b1710667699a208981cffd21dbf15f6
|
|
34
34
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
35
35
|
repo_dir: gems
|
|
36
36
|
- name: activesupport
|
|
37
|
-
version: '
|
|
37
|
+
version: '7.0'
|
|
38
38
|
source:
|
|
39
39
|
type: git
|
|
40
40
|
name: ruby/gem_rbs_collection
|
|
41
|
-
revision:
|
|
41
|
+
revision: 9e17daa08b1710667699a208981cffd21dbf15f6
|
|
42
42
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
43
43
|
repo_dir: gems
|
|
44
44
|
- name: base64
|
|
45
|
+
version: '0.1'
|
|
46
|
+
source:
|
|
47
|
+
type: git
|
|
48
|
+
name: ruby/gem_rbs_collection
|
|
49
|
+
revision: 9e17daa08b1710667699a208981cffd21dbf15f6
|
|
50
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
51
|
+
repo_dir: gems
|
|
52
|
+
- name: benchmark
|
|
45
53
|
version: '0'
|
|
46
54
|
source:
|
|
47
55
|
type: stdlib
|
|
48
56
|
- name: bigdecimal
|
|
49
|
-
version: '
|
|
57
|
+
version: '3.1'
|
|
50
58
|
source:
|
|
51
|
-
type:
|
|
59
|
+
type: git
|
|
60
|
+
name: ruby/gem_rbs_collection
|
|
61
|
+
revision: 9e17daa08b1710667699a208981cffd21dbf15f6
|
|
62
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
63
|
+
repo_dir: gems
|
|
64
|
+
- name: cgi
|
|
65
|
+
version: '0.5'
|
|
66
|
+
source:
|
|
67
|
+
type: git
|
|
68
|
+
name: ruby/gem_rbs_collection
|
|
69
|
+
revision: 9e17daa08b1710667699a208981cffd21dbf15f6
|
|
70
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
71
|
+
repo_dir: gems
|
|
52
72
|
- name: concurrent-ruby
|
|
53
73
|
version: '1.1'
|
|
54
74
|
source:
|
|
55
75
|
type: git
|
|
56
76
|
name: ruby/gem_rbs_collection
|
|
57
|
-
revision:
|
|
77
|
+
revision: 9e17daa08b1710667699a208981cffd21dbf15f6
|
|
58
78
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
59
79
|
repo_dir: gems
|
|
60
80
|
- name: connection_pool
|
|
@@ -62,7 +82,7 @@ gems:
|
|
|
62
82
|
source:
|
|
63
83
|
type: git
|
|
64
84
|
name: ruby/gem_rbs_collection
|
|
65
|
-
revision:
|
|
85
|
+
revision: 9e17daa08b1710667699a208981cffd21dbf15f6
|
|
66
86
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
67
87
|
repo_dir: gems
|
|
68
88
|
- name: date
|
|
@@ -73,6 +93,26 @@ gems:
|
|
|
73
93
|
version: '0'
|
|
74
94
|
source:
|
|
75
95
|
type: stdlib
|
|
96
|
+
- name: delegate
|
|
97
|
+
version: '0'
|
|
98
|
+
source:
|
|
99
|
+
type: stdlib
|
|
100
|
+
- name: diff-lcs
|
|
101
|
+
version: '1.5'
|
|
102
|
+
source:
|
|
103
|
+
type: git
|
|
104
|
+
name: ruby/gem_rbs_collection
|
|
105
|
+
revision: 9e17daa08b1710667699a208981cffd21dbf15f6
|
|
106
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
107
|
+
repo_dir: gems
|
|
108
|
+
- name: digest
|
|
109
|
+
version: '0'
|
|
110
|
+
source:
|
|
111
|
+
type: stdlib
|
|
112
|
+
- name: erb
|
|
113
|
+
version: '0'
|
|
114
|
+
source:
|
|
115
|
+
type: stdlib
|
|
76
116
|
- name: fileutils
|
|
77
117
|
version: '0'
|
|
78
118
|
source:
|
|
@@ -82,7 +122,7 @@ gems:
|
|
|
82
122
|
source:
|
|
83
123
|
type: git
|
|
84
124
|
name: ruby/gem_rbs_collection
|
|
85
|
-
revision:
|
|
125
|
+
revision: 9e17daa08b1710667699a208981cffd21dbf15f6
|
|
86
126
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
87
127
|
repo_dir: gems
|
|
88
128
|
- name: io-console
|
|
@@ -94,25 +134,33 @@ gems:
|
|
|
94
134
|
source:
|
|
95
135
|
type: stdlib
|
|
96
136
|
- name: minitest
|
|
97
|
-
version: '
|
|
137
|
+
version: '5.25'
|
|
98
138
|
source:
|
|
99
|
-
type:
|
|
139
|
+
type: git
|
|
140
|
+
name: ruby/gem_rbs_collection
|
|
141
|
+
revision: 9e17daa08b1710667699a208981cffd21dbf15f6
|
|
142
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
143
|
+
repo_dir: gems
|
|
100
144
|
- name: monitor
|
|
101
145
|
version: '0'
|
|
102
146
|
source:
|
|
103
147
|
type: stdlib
|
|
104
148
|
- name: mutex_m
|
|
105
|
-
version:
|
|
149
|
+
version: 0.3.0
|
|
106
150
|
source:
|
|
107
|
-
type:
|
|
151
|
+
type: rubygems
|
|
108
152
|
- name: nokogiri
|
|
109
153
|
version: '1.11'
|
|
110
154
|
source:
|
|
111
155
|
type: git
|
|
112
156
|
name: ruby/gem_rbs_collection
|
|
113
|
-
revision:
|
|
157
|
+
revision: 9e17daa08b1710667699a208981cffd21dbf15f6
|
|
114
158
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
115
159
|
repo_dir: gems
|
|
160
|
+
- name: openssl
|
|
161
|
+
version: '0'
|
|
162
|
+
source:
|
|
163
|
+
type: stdlib
|
|
116
164
|
- name: pathname
|
|
117
165
|
version: '0'
|
|
118
166
|
source:
|
|
@@ -125,12 +173,20 @@ gems:
|
|
|
125
173
|
version: '0'
|
|
126
174
|
source:
|
|
127
175
|
type: stdlib
|
|
176
|
+
- name: racc
|
|
177
|
+
version: '1.8'
|
|
178
|
+
source:
|
|
179
|
+
type: git
|
|
180
|
+
name: ruby/gem_rbs_collection
|
|
181
|
+
revision: 9e17daa08b1710667699a208981cffd21dbf15f6
|
|
182
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
183
|
+
repo_dir: gems
|
|
128
184
|
- name: rack
|
|
129
|
-
version: 2.2
|
|
185
|
+
version: '2.2'
|
|
130
186
|
source:
|
|
131
187
|
type: git
|
|
132
188
|
name: ruby/gem_rbs_collection
|
|
133
|
-
revision:
|
|
189
|
+
revision: 9e17daa08b1710667699a208981cffd21dbf15f6
|
|
134
190
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
135
191
|
repo_dir: gems
|
|
136
192
|
- name: rails-dom-testing
|
|
@@ -138,7 +194,15 @@ gems:
|
|
|
138
194
|
source:
|
|
139
195
|
type: git
|
|
140
196
|
name: ruby/gem_rbs_collection
|
|
141
|
-
revision:
|
|
197
|
+
revision: 9e17daa08b1710667699a208981cffd21dbf15f6
|
|
198
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
199
|
+
repo_dir: gems
|
|
200
|
+
- name: rails-html-sanitizer
|
|
201
|
+
version: '1.6'
|
|
202
|
+
source:
|
|
203
|
+
type: git
|
|
204
|
+
name: ruby/gem_rbs_collection
|
|
205
|
+
revision: 9e17daa08b1710667699a208981cffd21dbf15f6
|
|
142
206
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
143
207
|
repo_dir: gems
|
|
144
208
|
- name: railties
|
|
@@ -146,7 +210,7 @@ gems:
|
|
|
146
210
|
source:
|
|
147
211
|
type: git
|
|
148
212
|
name: ruby/gem_rbs_collection
|
|
149
|
-
revision:
|
|
213
|
+
revision: 9e17daa08b1710667699a208981cffd21dbf15f6
|
|
150
214
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
151
215
|
repo_dir: gems
|
|
152
216
|
- name: rake
|
|
@@ -154,23 +218,39 @@ gems:
|
|
|
154
218
|
source:
|
|
155
219
|
type: git
|
|
156
220
|
name: ruby/gem_rbs_collection
|
|
157
|
-
revision:
|
|
221
|
+
revision: 9e17daa08b1710667699a208981cffd21dbf15f6
|
|
158
222
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
159
223
|
repo_dir: gems
|
|
160
224
|
- name: rdoc
|
|
161
225
|
version: '0'
|
|
162
226
|
source:
|
|
163
227
|
type: stdlib
|
|
228
|
+
- name: securerandom
|
|
229
|
+
version: '0'
|
|
230
|
+
source:
|
|
231
|
+
type: stdlib
|
|
164
232
|
- name: singleton
|
|
165
233
|
version: '0'
|
|
166
234
|
source:
|
|
167
235
|
type: stdlib
|
|
236
|
+
- name: socket
|
|
237
|
+
version: '0'
|
|
238
|
+
source:
|
|
239
|
+
type: stdlib
|
|
240
|
+
- name: stringio
|
|
241
|
+
version: '0'
|
|
242
|
+
source:
|
|
243
|
+
type: stdlib
|
|
244
|
+
- name: tempfile
|
|
245
|
+
version: '0'
|
|
246
|
+
source:
|
|
247
|
+
type: stdlib
|
|
168
248
|
- name: thor
|
|
169
249
|
version: '1.2'
|
|
170
250
|
source:
|
|
171
251
|
type: git
|
|
172
252
|
name: ruby/gem_rbs_collection
|
|
173
|
-
revision:
|
|
253
|
+
revision: 9e17daa08b1710667699a208981cffd21dbf15f6
|
|
174
254
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
175
255
|
repo_dir: gems
|
|
176
256
|
- name: time
|
|
@@ -185,4 +265,24 @@ gems:
|
|
|
185
265
|
version: '0'
|
|
186
266
|
source:
|
|
187
267
|
type: stdlib
|
|
268
|
+
- name: tzinfo
|
|
269
|
+
version: '2.0'
|
|
270
|
+
source:
|
|
271
|
+
type: git
|
|
272
|
+
name: ruby/gem_rbs_collection
|
|
273
|
+
revision: 9e17daa08b1710667699a208981cffd21dbf15f6
|
|
274
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
275
|
+
repo_dir: gems
|
|
276
|
+
- name: uri
|
|
277
|
+
version: '0'
|
|
278
|
+
source:
|
|
279
|
+
type: stdlib
|
|
280
|
+
- name: zeitwerk
|
|
281
|
+
version: '2.8'
|
|
282
|
+
source:
|
|
283
|
+
type: git
|
|
284
|
+
name: ruby/gem_rbs_collection
|
|
285
|
+
revision: 9e17daa08b1710667699a208981cffd21dbf15f6
|
|
286
|
+
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
287
|
+
repo_dir: gems
|
|
188
288
|
gemfile_lock_path: Gemfile.lock
|
data/rbs_collection.yaml
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
sources:
|
|
3
3
|
- name: ruby/gem_rbs_collection
|
|
4
4
|
remote: https://github.com/ruby/gem_rbs_collection.git
|
|
5
|
-
|
|
5
|
+
# To refresh upstream signatures, update this SHA, then run:
|
|
6
|
+
# bundle exec rbs collection update && bundle exec rbs collection install
|
|
7
|
+
revision: 9e17daa08b1710667699a208981cffd21dbf15f6
|
|
6
8
|
repo_dir: gems
|
|
7
9
|
|
|
8
10
|
# A directory to install the downloaded RBSs
|
|
@@ -13,10 +15,3 @@ gems:
|
|
|
13
15
|
# It's unnecessary if you don't use rbs as a library.
|
|
14
16
|
- name: rbs
|
|
15
17
|
ignore: true
|
|
16
|
-
# Racc is not used directly, and its current signatures require a newer RBS parser.
|
|
17
|
-
- name: racc
|
|
18
|
-
ignore: true
|
|
19
|
-
# The CGI gem's signatures depend on StringIO signatures absent from RBS 3.3.2.
|
|
20
|
-
# CGI is not used by this library directly.
|
|
21
|
-
- name: cgi
|
|
22
|
-
ignore: true
|
|
@@ -2,11 +2,15 @@ module Scenic
|
|
|
2
2
|
module Generators
|
|
3
3
|
module View
|
|
4
4
|
class CascadeGenerator < Scenic::Generators::ViewGenerator
|
|
5
|
+
@dependents: Array[Scenic::Cascade::ViewWithVersion]?
|
|
6
|
+
|
|
7
|
+
def create_view_definition: -> void
|
|
5
8
|
def create_migration_file: -> void
|
|
6
9
|
|
|
7
10
|
private
|
|
8
11
|
|
|
9
12
|
def dependents: -> Array[Scenic::Cascade::ViewWithVersion]
|
|
13
|
+
def view_with_version_for: (Scenic::Cascade::Dependency) -> Scenic::Cascade::ViewWithVersion
|
|
10
14
|
end
|
|
11
15
|
end
|
|
12
16
|
end
|
|
@@ -2,13 +2,18 @@ module Scenic
|
|
|
2
2
|
module Generators
|
|
3
3
|
class ViewGenerator
|
|
4
4
|
def self.source_root: (String?) -> void
|
|
5
|
-
def plural_name: -> String
|
|
6
|
-
def plural_file_name: -> String
|
|
7
5
|
def migration_template: (String, String) -> void
|
|
8
6
|
|
|
7
|
+
def create_view_definition: -> void
|
|
8
|
+
def version: -> Integer
|
|
9
|
+
|
|
10
|
+
private
|
|
11
|
+
|
|
12
|
+
def plural_name: -> String
|
|
13
|
+
def plural_file_name: -> String
|
|
9
14
|
def creating_new_view?: -> bool
|
|
15
|
+
def destroying?: -> bool
|
|
10
16
|
def destroying_initial_view?: -> bool
|
|
11
|
-
def version: -> String
|
|
12
17
|
end
|
|
13
18
|
end
|
|
14
19
|
end
|
data/sig/scenic/cascade/view.rbs
CHANGED
data/sig/scenic/cascade.rbs
CHANGED
|
@@ -2,7 +2,7 @@ module Scenic
|
|
|
2
2
|
module Cascade
|
|
3
3
|
VERSION: String
|
|
4
4
|
|
|
5
|
-
def self.find_definitions_of: (String) -> Scenic::Definition
|
|
5
|
+
def self.find_definitions_of: (String) -> Array[Scenic::Definition]
|
|
6
6
|
def self.find_latest_definition_of: (String) -> Scenic::Definition
|
|
7
7
|
|
|
8
8
|
def self.view_dependents_of: (String, ?recursive: bool) -> Array[Dependency]
|
data/sig/scenic/definition.rbs
CHANGED