Skip to content

Commit 2fad60a

Browse files
committed
Fix ask_simply patch because it uses global and not the Thor instances
1 parent f0a10ed commit 2fad60a

2 files changed

Lines changed: 37 additions & 0 deletions

File tree

.claude/settings.local.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"permissions": {
3+
"allow": [
4+
"Bash(gem which:*)",
5+
"Bash(gem list:*)"
6+
]
7+
}
8+
}

gem/terminalwire-server/lib/terminalwire/server/thor.rb

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,35 @@ def initialize(context, *, **, &)
1616
@context = context
1717
super(*,**,&)
1818
end
19+
20+
protected
21+
22+
# Override ask_simply to use the Terminalwire context's stdin/stdout
23+
# instead of Thor::LineEditor, which hardcodes $stdin/$stdout globals.
24+
# This fixes ask, yes?, no?, and file_collision.
25+
def ask_simply(statement, color, options)
26+
default = options[:default]
27+
message = [statement, ("(#{default})" if default), nil].uniq.join(" ")
28+
message = prepare_message(message, *color)
29+
30+
stdout.print(message)
31+
32+
result = if options.fetch(:echo, true)
33+
stdin.gets
34+
else
35+
stdin.getpass
36+
end
37+
38+
return unless result
39+
40+
result = result.strip
41+
42+
if default && result == ""
43+
default
44+
else
45+
result
46+
end
47+
end
1948
end
2049

2150
def self.included(base)

0 commit comments

Comments
 (0)