File tree Expand file tree Collapse file tree 3 files changed +39
-0
lines changed Expand file tree Collapse file tree 3 files changed +39
-0
lines changed Original file line number Diff line number Diff line change @@ -101,6 +101,8 @@ def generate_signature(uri) #: void
101
101
case path . to_s
102
102
when "db/schema.rb"
103
103
generate_all_model_signatures
104
+ when %r{^config/(routes\. rb|routes/.*\. rb)$}
105
+ generate_path_helpers_signature
104
106
else
105
107
klass = constantize ( path )
106
108
return unless klass
@@ -118,6 +120,15 @@ def generate_all_model_signatures #: void
118
120
end
119
121
end
120
122
123
+ def generate_path_helpers_signature #: void
124
+ rbs_path = config . signature_root_dir / "path_helpers.rbs"
125
+ rbs_path . dirname . mkpath
126
+
127
+ sig = ::RbsRails ::PathHelpers . generate
128
+ rbs_path . write sig
129
+ logger . info ( "Updated RBS signature: #{ rbs_path } " )
130
+ end
131
+
121
132
# @rbs klass: Class
122
133
def generate_signature0 ( klass ) #: void
123
134
return unless klass < ::ActiveRecord ::Base
Original file line number Diff line number Diff line change @@ -44,6 +44,8 @@ module RubyLsp
44
44
45
45
def generate_all_model_signatures : () -> void
46
46
47
+ def generate_path_helpers_signature : () -> void
48
+
47
49
# @rbs klass: Class
48
50
def generate_signature0 : (Class klass) -> void
49
51
Original file line number Diff line number Diff line change 116
116
end
117
117
end
118
118
119
+ context "when config/routes.rb is created" do
120
+ let ( :filename ) { "config/routes.rb" }
121
+ let ( :rbs_path ) { Pathname . new ( "#{ workspace_path } /sig/rbs_rails/path_helpers.rbs" ) }
122
+
123
+ it "generates path_helpers.rbs" do
124
+ subject
125
+
126
+ expect ( rbs_path ) . to exist
127
+ content = rbs_path . read
128
+ expect ( content ) . to include ( "interface ::_RbsRailsPathHelpers" )
129
+ end
130
+ end
131
+
132
+ context "when config/routes/*.rb is created" do
133
+ let ( :filename ) { "config/routes/api.rb" }
134
+ let ( :rbs_path ) { Pathname . new ( "#{ workspace_path } /sig/rbs_rails/path_helpers.rbs" ) }
135
+
136
+ it "generates path_helpers.rbs" do
137
+ subject
138
+
139
+ expect ( rbs_path ) . to exist
140
+ content = rbs_path . read
141
+ expect ( content ) . to include ( "interface ::_RbsRailsPathHelpers" )
142
+ end
143
+ end
144
+
119
145
context "when any other file is created" do
120
146
let ( :filename ) { "app/controllers/users_controller.rb" }
121
147
You can’t perform that action at this time.
0 commit comments