Module: Remedy::Console
- Defined in:
- lib/remedy/console.rb,
lib/remedy/console_resize.rb
Defined Under Namespace
Modules: Resize
Classes: UnknownConsoleSize
Constant Summary
collapse
- TIOCGWINSZ =
case RbConfig::CONFIG['host_os']
when /darwin|mac os/
0x40087468
when /linux/
0x5413
else
0x00
end
Class Method Summary
collapse
Class Method Details
.columns ⇒ Object
Also known as:
width
52
53
54
|
# File 'lib/remedy/console.rb', line 52
def columns
size.cols
end
|
.cooked! ⇒ Object
47
48
49
50
|
# File 'lib/remedy/console.rb', line 47
def cooked!
input.echo = true
input.cooked!
end
|
18
19
20
|
# File 'lib/remedy/console.rb', line 18
def input
@input ||= $stdin
end
|
26
27
28
|
# File 'lib/remedy/console.rb', line 26
def input= new_input
@input = new_input
end
|
.interactive? ⇒ Boolean
77
78
79
|
# File 'lib/remedy/console.rb', line 77
def interactive?
input.isatty
end
|
.output ⇒ Object
22
23
24
|
# File 'lib/remedy/console.rb', line 22
def output
@output ||= $stdout
end
|
.output=(new_output) ⇒ Object
30
31
32
|
# File 'lib/remedy/console.rb', line 30
def output= new_output
@output = new_output
end
|
.raw ⇒ Object
34
35
36
37
38
39
40
|
# File 'lib/remedy/console.rb', line 34
def raw
raw!
result = yield
ensure
cooked!
return result
end
|
.raw! ⇒ Object
42
43
44
45
|
# File 'lib/remedy/console.rb', line 42
def raw!
input.echo = false
input.raw!
end
|
.rows ⇒ Object
Also known as:
height
57
58
59
|
# File 'lib/remedy/console.rb', line 57
def rows
size.rows
end
|
.set_console_resized_hook! ⇒ Object
.size ⇒ Object
62
63
64
65
66
67
68
69
70
71
|
# File 'lib/remedy/console.rb', line 62
def size
return @size_override if @size_override
str = [0, 0, 0, 0].pack('SSSS')
if input.respond_to?(:ioctl) && input.ioctl(TIOCGWINSZ, str) >= 0 then
Size.new str.unpack('SSSS').first 2
else
raise UnknownConsoleSize, "Unable to get console size"
end
end
|
.size_override=(new_size) ⇒ Object
73
74
75
|
# File 'lib/remedy/console.rb', line 73
def size_override= new_size
@size_override = new_size
end
|