fancy_irb 1.0.2 → 1.1.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -9
- data/MIT-LICENSE.txt +1 -1
- data/README.md +12 -10
- data/fancy_irb.gemspec +2 -3
- data/lib/fancy_irb.rb +7 -5
- data/lib/fancy_irb/implementation.rb +3 -3
- data/lib/fancy_irb/size_detector.rb +1 -1
- data/lib/fancy_irb/version.rb +1 -1
- data/spec/size_detector_spec.rb +7 -9
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2a97871a844939aa181c7e03bbf1054c74d1e97e
|
4
|
+
data.tar.gz: 04ef4e6f02a68d4b4971c4264ff6521383d827d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d769722f7cfba9e17932458884fb41dfb46a498dee86dd79081ace353c59b0c4cbf0726cabe00dc6507da14eb4cee4aa6b35a5aaf1919653aa909cb09b5a9974
|
7
|
+
data.tar.gz: 0f51d36feac350499e31835c60772f48304d4f60a1b4c6cef7ca345cecf0441df6c1434a44bba565750fe74e993a9a2192e3a15c4f1bcdd6e46065c761e8bd7a
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## 1.1.0
|
4
|
+
* Rename `east_asian_width` option to `unicode_display_width` and activate by default
|
5
|
+
* Relax paint dependency
|
6
|
+
|
3
7
|
## 1.0.2
|
4
8
|
* Bump unicode-display_width to 1.0
|
5
9
|
|
@@ -12,15 +16,12 @@
|
|
12
16
|
* Recognize multi-line regexes
|
13
17
|
* Improve size detector (-> less wrongly placed rockets)
|
14
18
|
|
15
|
-
|
16
19
|
## 0.8.2
|
17
20
|
* Support objects that don't support #inspect
|
18
21
|
|
19
|
-
|
20
22
|
## 0.8.1
|
21
23
|
* Use io/console correctly, fixes bug on mingw
|
22
24
|
|
23
|
-
|
24
25
|
## 0.8.0
|
25
26
|
* Internals partly refactored
|
26
27
|
* Bump paint and unicode-display_width dependencies
|
@@ -32,28 +33,22 @@
|
|
32
33
|
* Not patching Kernel anymore
|
33
34
|
* Only path String if east_asian_width option is used
|
34
35
|
|
35
|
-
|
36
36
|
## 0.7.3
|
37
37
|
* Don't colorize stdout by default
|
38
38
|
* Deactivate rocket for common system commands
|
39
39
|
|
40
|
-
|
41
40
|
## 0.7.2
|
42
41
|
* Fix a small bug that happens if there was no last line
|
43
42
|
|
44
|
-
|
45
43
|
## 0.7.1
|
46
44
|
* Deactivate buggy input coloring :/
|
47
45
|
|
48
|
-
|
49
46
|
## 0.7.0
|
50
47
|
* Use paint gem for terminal colors
|
51
48
|
* Fix some rocket issues (when using with colored content)
|
52
49
|
|
53
|
-
|
54
50
|
## 0.6.5
|
55
51
|
* Windows support
|
56
52
|
|
57
|
-
|
58
53
|
## < 0.6.5
|
59
54
|
See https://github.com/janlelis/fancy_irb/commits/0.6.4
|
data/MIT-LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -12,11 +12,12 @@
|
|
12
12
|
You can pass an options hash. These are the default values:
|
13
13
|
|
14
14
|
DEFAULT_OPTIONS = {
|
15
|
-
:rocket_mode => true,
|
16
|
-
:rocket_prompt => '#=> ',
|
17
|
-
:result_prompt => '=> ',
|
18
|
-
:
|
19
|
-
|
15
|
+
:rocket_mode => true, # activate or deactivate #=> rocket
|
16
|
+
:rocket_prompt => '#=> ', # prompt to use for the rocket
|
17
|
+
:result_prompt => '=> ', # prompt to use for normal output
|
18
|
+
:unicode_display_width => true, # set to false if you don't want to check for proper
|
19
|
+
# string width for better performance
|
20
|
+
:colorize => { # colors hash. Set to nil to deactivate colors
|
20
21
|
:rocket_prompt => [:blue],
|
21
22
|
:result_prompt => [:blue],
|
22
23
|
:input_prompt => nil,
|
@@ -39,11 +40,12 @@ documentation](https://github.com/janlelis/paint).
|
|
39
40
|
### Windows Support
|
40
41
|
You will need [ansicon](https://github.com/adoxa/ansicon) or [ConEmu](https://code.google.com/p/conemu-maximus5/).
|
41
42
|
|
42
|
-
###
|
43
|
-
|
44
|
-
|
43
|
+
### Need More Performance?
|
44
|
+
The gem checks for the Unicode display width of characters, which requires a
|
45
|
+
lookup of every character. You can deactivate this check by setting
|
46
|
+
`:unicode_display_width` to `false`.
|
45
47
|
|
46
|
-
### Known
|
48
|
+
### Known Bugs
|
47
49
|
Not all stdin methods are patched properly to work with the rocket: The gems
|
48
50
|
focuses on the often used ones
|
49
51
|
|
@@ -51,5 +53,5 @@ focuses on the often used ones
|
|
51
53
|
## J-_-L
|
52
54
|
Inspired by the irb_rocket gem by genki.
|
53
55
|
|
54
|
-
Copyright (c) 2010-2012, 2015 Jan Lelis <http://janlelis.com> released under
|
56
|
+
Copyright (c) 2010-2012, 2015-2017 Jan Lelis <http://janlelis.com> released under
|
55
57
|
the MIT license.
|
data/fancy_irb.gemspec
CHANGED
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.required_ruby_version = '>= 1.9.3'
|
14
14
|
s.license = 'MIT'
|
15
15
|
s.requirements = ['Windows: ansicon <https://github.com/adoxa/ansicon>']
|
16
|
-
s.add_dependency 'paint', '>= 0.9', '<
|
17
|
-
s.add_dependency 'unicode-display_width', "~> 1.
|
16
|
+
s.add_dependency 'paint', '>= 0.9', '< 3.0'
|
17
|
+
s.add_dependency 'unicode-display_width', "~> 1.1"
|
18
18
|
s.add_development_dependency 'rspec', "~> 3.2"
|
19
19
|
s.add_development_dependency 'rake', "~> 10.4"
|
20
20
|
s.files = [
|
@@ -37,4 +37,3 @@ Gem::Specification.new do |s|
|
|
37
37
|
"spec/fixtures.rb",
|
38
38
|
]
|
39
39
|
end
|
40
|
-
|
data/lib/fancy_irb.rb
CHANGED
@@ -2,6 +2,7 @@ require_relative 'fancy_irb/version'
|
|
2
2
|
|
3
3
|
require 'stringio'
|
4
4
|
require 'paint'
|
5
|
+
require 'unicode/display_width'
|
5
6
|
|
6
7
|
require_relative 'fancy_irb/terminal_info'
|
7
8
|
require_relative 'fancy_irb/size_detector'
|
@@ -10,11 +11,12 @@ require_relative 'fancy_irb/implementation'
|
|
10
11
|
|
11
12
|
module FancyIrb
|
12
13
|
DEFAULT_OPTIONS = {
|
13
|
-
:rocket_mode => true,
|
14
|
-
:rocket_prompt => '#=> ',
|
15
|
-
:result_prompt => '=> ',
|
16
|
-
:
|
17
|
-
|
14
|
+
:rocket_mode => true, # activate or deactivate #=> rocket output
|
15
|
+
:rocket_prompt => '#=> ', # prompt to use for the rocket
|
16
|
+
:result_prompt => '=> ', # prompt to use for normal output
|
17
|
+
:unicode_display_width => true, # set to false if you don't want to check for proper
|
18
|
+
# string width for better performance
|
19
|
+
:colorize => { # colors hash. Set to nil to deactivate colors
|
18
20
|
:rocket_prompt => [:blue],
|
19
21
|
:result_prompt => [:blue],
|
20
22
|
:input_prompt => nil,
|
@@ -17,7 +17,6 @@ module FancyIrb
|
|
17
17
|
|
18
18
|
# hook into IRB
|
19
19
|
def extend!
|
20
|
-
require 'unicode/display_width' if @options[:east_asian_width]
|
21
20
|
require_relative 'irb_ext'
|
22
21
|
require_relative 'core_ext'
|
23
22
|
require_relative 'clean_up'
|
@@ -51,9 +50,10 @@ module FancyIrb
|
|
51
50
|
}
|
52
51
|
end
|
53
52
|
|
54
|
-
def
|
55
|
-
@options[:east_asian_width]
|
53
|
+
def unicode_display_width?
|
54
|
+
@options[:unicode_display_width] || @options[:east_asian_width]
|
56
55
|
end
|
56
|
+
alias east_asian_width? unicode_display_width?
|
57
57
|
|
58
58
|
def reset_line!
|
59
59
|
@tracked_height = 0
|
@@ -5,7 +5,7 @@ module FancyIrb
|
|
5
5
|
def width_of(data)
|
6
6
|
return 0 unless data
|
7
7
|
data = Paint.unpaint data.to_s
|
8
|
-
FancyIrb.
|
8
|
+
FancyIrb.unicode_display_width? ? Unicode::DisplayWidth.of(data) : data.length
|
9
9
|
end
|
10
10
|
|
11
11
|
def height_of(data, width)
|
data/lib/fancy_irb/version.rb
CHANGED
data/spec/size_detector_spec.rb
CHANGED
@@ -5,10 +5,9 @@ describe FancyIrb::SizeDetector do
|
|
5
5
|
include FancyIrb::SizeDetector
|
6
6
|
|
7
7
|
before do
|
8
|
-
FancyIrb.instance_variable_set(:@options, {
|
8
|
+
FancyIrb.instance_variable_set(:@options, { unicode_display_width: true })
|
9
9
|
end
|
10
10
|
|
11
|
-
|
12
11
|
describe ".width_of" do
|
13
12
|
it "returns 0 when no data given" do
|
14
13
|
expect( width_of(nil) ).to eq 0
|
@@ -22,18 +21,17 @@ describe FancyIrb::SizeDetector do
|
|
22
21
|
expect( width_of("\e[31mstring\e[0m") ).to eq 6
|
23
22
|
end
|
24
23
|
|
25
|
-
it "
|
26
|
-
expect( width_of('一') ).to eq
|
24
|
+
it "respects double-width chars by default" do
|
25
|
+
expect( width_of('一') ).to eq 2
|
27
26
|
end
|
28
27
|
|
29
|
-
context "
|
28
|
+
context "unicode_display_width? false" do
|
30
29
|
before do
|
31
|
-
|
32
|
-
FancyIrb.instance_variable_set(:@options, {east_asian_width: true})
|
30
|
+
FancyIrb.instance_variable_set(:@options, { unicode_display_width: false })
|
33
31
|
end
|
34
32
|
|
35
|
-
it "
|
36
|
-
expect( width_of('一') ).to eq
|
33
|
+
it "does not respect double-width chars" do
|
34
|
+
expect( width_of('一') ).to eq 1
|
37
35
|
end
|
38
36
|
end
|
39
37
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fancy_irb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Lelis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-03-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: paint
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: '0.9'
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
22
|
+
version: '3.0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,21 +29,21 @@ dependencies:
|
|
29
29
|
version: '0.9'
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
32
|
+
version: '3.0'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: unicode-display_width
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '1.
|
39
|
+
version: '1.1'
|
40
40
|
type: :runtime
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: '1.
|
46
|
+
version: '1.1'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -116,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
116
116
|
requirements:
|
117
117
|
- 'Windows: ansicon <https://github.com/adoxa/ansicon>'
|
118
118
|
rubyforge_project:
|
119
|
-
rubygems_version: 2.
|
119
|
+
rubygems_version: 2.6.8
|
120
120
|
signing_key:
|
121
121
|
specification_version: 4
|
122
122
|
summary: FancyIrb makes IRB friendly.
|