fancy_irb 0.6.4 → 0.6.5
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.
- data/CHANGELOG.rdoc +5 -0
- data/README.rdoc +4 -0
- data/VERSION +1 -1
- data/fancy_irb.gemspec +4 -2
- data/lib/fancy_irb/irb_ext.rb +18 -12
- data/lib/fancy_irb.rb +24 -1
- metadata +9 -24
data/CHANGELOG.rdoc
ADDED
data/README.rdoc
CHANGED
@@ -70,6 +70,10 @@ You can modify how to get and display the input. The <tt>result_proc</tt> is a p
|
|
70
70
|
end
|
71
71
|
}
|
72
72
|
|
73
|
+
== FancyIrb on Windows?
|
74
|
+
|
75
|
+
You need ansicon[https://github.com/adoxa/ansicon] and everything will be fine :D
|
76
|
+
|
73
77
|
== Example configurations
|
74
78
|
|
75
79
|
=== Default
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.6.
|
1
|
+
0.6.5
|
data/fancy_irb.gemspec
CHANGED
@@ -14,13 +14,15 @@ Gem::Specification.new do |s|
|
|
14
14
|
#s.files = Dir.glob(%w[{lib,test}/**/*.rb bin/* [A-Z]*.{txt,rdoc} ext/**/*.{rb,c} **/deps.rip]) + %w{Rakefile .gemspec}
|
15
15
|
s.extra_rdoc_files = ["README.rdoc", "LICENSE"]
|
16
16
|
s.license = 'MIT'
|
17
|
-
s.
|
18
|
-
s.add_dependency('
|
17
|
+
s.requirements = ['On Windows, you need ansicon: https://github.com/adoxa/ansicon']
|
18
|
+
s.add_dependency('wirb', '>= 0.2.4')
|
19
|
+
s.add_dependency('unicode-display_width', ">= 0.1.1")
|
19
20
|
s.files = [
|
20
21
|
"LICENSE",
|
21
22
|
"README.rdoc",
|
22
23
|
"Rakefile",
|
23
24
|
"VERSION",
|
25
|
+
"CHANGELOG.rdoc",
|
24
26
|
"fancy_irb.gemspec",
|
25
27
|
"lib/fancy_irb.rb",
|
26
28
|
"lib/fancy_irb/irb_ext.rb"
|
data/lib/fancy_irb/irb_ext.rb
CHANGED
@@ -8,12 +8,21 @@ end
|
|
8
8
|
|
9
9
|
module IRB
|
10
10
|
class Irb
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
11
|
+
if FancyIrb.win?
|
12
|
+
TPUT = {
|
13
|
+
:sc => "\e[s",
|
14
|
+
:rc => "\e[u",
|
15
|
+
:cuu1 => "\e[1A",
|
16
|
+
:cuf1 => "\e[1C",
|
17
|
+
}
|
18
|
+
else
|
19
|
+
TPUT = {
|
20
|
+
:sc => `tput sc`,
|
21
|
+
:rc => `tput rc`,
|
22
|
+
:cuu1 => `tput cuu1`,
|
23
|
+
:cuf1 => `tput cuf1`,
|
24
|
+
}
|
25
|
+
end
|
17
26
|
|
18
27
|
def colorize(string, color)
|
19
28
|
if defined?(::Wirb) && color
|
@@ -49,8 +58,8 @@ module IRB
|
|
49
58
|
last_input = @scanner.instance_variable_get( :@line )
|
50
59
|
last_line_without_prompt = last_input.split("\n").last
|
51
60
|
offset = last_line_without_prompt.display_size + FancyIrb.real_lengths[:input_prompt] + 1
|
52
|
-
screen_length =
|
53
|
-
screen_lines
|
61
|
+
screen_length = FancyIrb.current_length
|
62
|
+
screen_lines = FancyIrb.current_lines
|
54
63
|
output_length = FancyIrb.real_lengths[:output]
|
55
64
|
rocket_length = FancyIrb[:rocket_prompt].size
|
56
65
|
stdout_lines = FancyIrb.get_height
|
@@ -181,9 +190,6 @@ class << $stdin
|
|
181
190
|
}
|
182
191
|
end
|
183
192
|
|
184
|
-
# reset
|
185
|
-
END{
|
186
|
-
print `tput sgr0`
|
187
|
-
}
|
193
|
+
END{ print "\e[0;0m" } # reset colors when exiting
|
188
194
|
|
189
195
|
# J-_-L
|
data/lib/fancy_irb.rb
CHANGED
@@ -107,7 +107,7 @@ class << FancyIrb
|
|
107
107
|
def track_height(data)
|
108
108
|
lines = data.to_s.count("\n")
|
109
109
|
long_lines = data.to_s.split("\n").inject(0){ |sum, line|
|
110
|
-
sum + (line.display_size /
|
110
|
+
sum + (line.display_size / current_length)
|
111
111
|
}
|
112
112
|
@height_counter << lines + long_lines
|
113
113
|
end
|
@@ -125,4 +125,27 @@ class << FancyIrb
|
|
125
125
|
end
|
126
126
|
)
|
127
127
|
end
|
128
|
+
|
129
|
+
def win?
|
130
|
+
RbConfig::CONFIG['host_os'] =~ /mswin|mingw/
|
131
|
+
end
|
132
|
+
|
133
|
+
if FancyIrb.win?
|
134
|
+
raise LoadError, 'FancyIrb needs ansicon on windows, see https://github.com/adoxa/ansicon' unless ENV['ANSICON']
|
135
|
+
def current_length
|
136
|
+
ENV['ANSICON'][/\((.*)x/, 1].to_i
|
137
|
+
end
|
138
|
+
|
139
|
+
def current_lines
|
140
|
+
ENV['ANSICON'][/\(.*x(.*)\)/, 1].to_i
|
141
|
+
end
|
142
|
+
else
|
143
|
+
def current_length
|
144
|
+
`tput cols`.to_i
|
145
|
+
end
|
146
|
+
|
147
|
+
def current_lines
|
148
|
+
`tput lines`.to_i
|
149
|
+
end
|
150
|
+
end
|
128
151
|
end
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fancy_irb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 6
|
8
|
-
- 4
|
9
|
-
version: 0.6.4
|
4
|
+
prerelease:
|
5
|
+
version: 0.6.5
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Jan Lelis
|
@@ -14,7 +10,7 @@ autorequire:
|
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
|
17
|
-
date: 2011-
|
13
|
+
date: 2011-02-24 00:00:00 +01:00
|
18
14
|
default_executable:
|
19
15
|
dependencies:
|
20
16
|
- !ruby/object:Gem::Dependency
|
@@ -25,9 +21,7 @@ dependencies:
|
|
25
21
|
requirements:
|
26
22
|
- - ">="
|
27
23
|
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
- 0
|
30
|
-
version: "0"
|
24
|
+
version: 0.2.4
|
31
25
|
type: :runtime
|
32
26
|
version_requirements: *id001
|
33
27
|
- !ruby/object:Gem::Dependency
|
@@ -38,9 +32,7 @@ dependencies:
|
|
38
32
|
requirements:
|
39
33
|
- - ">="
|
40
34
|
- !ruby/object:Gem::Version
|
41
|
-
|
42
|
-
- 0
|
43
|
-
version: "0"
|
35
|
+
version: 0.1.1
|
44
36
|
type: :runtime
|
45
37
|
version_requirements: *id002
|
46
38
|
description: "FancyIrb patches your IRB to create a smooth output experience. You can colorize the prompts, irb errors, stderr and stdout. Results can be putted as #=> (rocket). Furthermore, it's possible to apply filter procs to your output value."
|
@@ -57,6 +49,7 @@ files:
|
|
57
49
|
- README.rdoc
|
58
50
|
- Rakefile
|
59
51
|
- VERSION
|
52
|
+
- CHANGELOG.rdoc
|
60
53
|
- fancy_irb.gemspec
|
61
54
|
- lib/fancy_irb.rb
|
62
55
|
- lib/fancy_irb/irb_ext.rb
|
@@ -74,25 +67,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
74
67
|
requirements:
|
75
68
|
- - ">="
|
76
69
|
- !ruby/object:Gem::Version
|
77
|
-
segments:
|
78
|
-
- 1
|
79
|
-
- 8
|
80
|
-
- 7
|
81
70
|
version: 1.8.7
|
82
71
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
83
72
|
none: false
|
84
73
|
requirements:
|
85
74
|
- - ">="
|
86
75
|
- !ruby/object:Gem::Version
|
87
|
-
segments:
|
88
|
-
- 1
|
89
|
-
- 3
|
90
|
-
- 6
|
91
76
|
version: 1.3.6
|
92
|
-
requirements:
|
93
|
-
|
77
|
+
requirements:
|
78
|
+
- "On Windows, you need ansicon: https://github.com/adoxa/ansicon"
|
94
79
|
rubyforge_project:
|
95
|
-
rubygems_version: 1.
|
80
|
+
rubygems_version: 1.5.2
|
96
81
|
signing_key:
|
97
82
|
specification_version: 3
|
98
83
|
summary: FancyIrb patches your IRB to create a smooth output experience.
|