File tree 3 files changed +32
-1
lines changed
3 files changed +32
-1
lines changed Original file line number Diff line number Diff line change @@ -104,8 +104,14 @@ def generate(fallback = nil)
104
104
fallback = "require 'bundler/setup'\n " \
105
105
"load Gem.bin_path('#{ command . gem_name } ', '#{ command . exec_name } ')\n "
106
106
end
107
+ if prelude = command . binstub_prelude
108
+ formatted_prelude = prelude . chomp . gsub ( /^(?!$)/ , ' ' )
109
+ loader = LOADER . sub ( /^end$/ , "else\n #{ formatted_prelude } \n end" )
110
+ else
111
+ loader = LOADER
112
+ end
107
113
108
- File . write ( command . binstub , "#!/usr/bin/env ruby\n #{ LOADER } #{ fallback } " )
114
+ File . write ( command . binstub , "#!/usr/bin/env ruby\n #{ loader } #{ fallback } " )
109
115
command . binstub . chmod 0755
110
116
end
111
117
Original file line number Diff line number Diff line change @@ -69,6 +69,12 @@ def binstub_name
69
69
"bin/#{ name } "
70
70
end
71
71
72
+ def binstub_prelude
73
+ if command . respond_to? ( :binstub_prelude )
74
+ command . binstub_prelude
75
+ end
76
+ end
77
+
72
78
def exec
73
79
if binstub . exist?
74
80
binstub . to_s
Original file line number Diff line number Diff line change @@ -188,6 +188,25 @@ def exec_name
188
188
assert_success "bin/rake -T" , stdout : "rake db:migrate"
189
189
end
190
190
191
+ test "binstub with prelude code" do
192
+ prelude = "Prelude code line 1\n Prelude code line 2\n "
193
+
194
+ File . write ( app . spring_config , <<-CODE )
195
+ class PreludeCode
196
+ def binstub_prelude
197
+ "#{ prelude } "
198
+ end
199
+ end
200
+
201
+ Spring.register_command "prelude", PreludeCode.new
202
+ CODE
203
+
204
+ assert_success "bin/spring binstub prelude"
205
+ prelude . each_line do |line |
206
+ assert app . path ( "bin/prelude" ) . read . include? ( line ) , "'#{ line } ' not found in bin/prelude"
207
+ end
208
+ end
209
+
191
210
test "binstub when spring is uninstalled" do
192
211
app . run! "gem uninstall --ignore-dependencies spring"
193
212
File . write ( app . gemfile , app . gemfile . read . gsub ( /gem 'spring.*/ , "" ) )
You can’t perform that action at this time.
0 commit comments