readline-ng 0.0.9 → 0.2.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.
- data/.rvmrc +1 -1
- data/Gemfile.lock +30 -0
- data/lib/readline-ng.rb +10 -8
- data/spec/readline-ng_spec.rb +10 -0
- metadata +67 -69
data/.rvmrc
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
# development environment upon cd'ing into the directory
|
5
5
|
|
6
6
|
# First we specify our desired <ruby>[@<gemset>], the @gemset name is optional.
|
7
|
-
environment_id="ruby-1.9.3-
|
7
|
+
environment_id="ruby-1.9.3-p327"
|
8
8
|
|
9
9
|
#
|
10
10
|
# Uncomment following line if you want options to be set only for given project.
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
readline-ng (0.1.0)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: http://rubygems.org/
|
8
|
+
specs:
|
9
|
+
diff-lcs (1.1.3)
|
10
|
+
metaclass (0.0.1)
|
11
|
+
mocha (0.12.3)
|
12
|
+
metaclass (~> 0.0.1)
|
13
|
+
rake (0.9.2.2)
|
14
|
+
rspec (2.11.0)
|
15
|
+
rspec-core (~> 2.11.0)
|
16
|
+
rspec-expectations (~> 2.11.0)
|
17
|
+
rspec-mocks (~> 2.11.0)
|
18
|
+
rspec-core (2.11.1)
|
19
|
+
rspec-expectations (2.11.2)
|
20
|
+
diff-lcs (~> 1.1.3)
|
21
|
+
rspec-mocks (2.11.2)
|
22
|
+
|
23
|
+
PLATFORMS
|
24
|
+
ruby
|
25
|
+
|
26
|
+
DEPENDENCIES
|
27
|
+
mocha
|
28
|
+
rake
|
29
|
+
readline-ng!
|
30
|
+
rspec
|
data/lib/readline-ng.rb
CHANGED
@@ -7,8 +7,8 @@ module ReadlineNG
|
|
7
7
|
n = ::ReadlineNG::ChunkedString.new
|
8
8
|
|
9
9
|
VERSION_MAJOR = 0
|
10
|
-
VERSION_MINOR =
|
11
|
-
VERSION_PATCH =
|
10
|
+
VERSION_MINOR = 2
|
11
|
+
VERSION_PATCH = 0
|
12
12
|
VERSION = "#{VERSION_MAJOR}.#{VERSION_MINOR}.#{VERSION_PATCH}"
|
13
13
|
|
14
14
|
CONTROL_BS = "\x08"
|
@@ -58,10 +58,8 @@ module ReadlineNG
|
|
58
58
|
end
|
59
59
|
|
60
60
|
def wait(n)
|
61
|
-
(
|
62
|
-
|
63
|
-
sleep 1.0/polling_resolution
|
64
|
-
end
|
61
|
+
to_read, _, _ = IO.select([STDIN], [], [], n)
|
62
|
+
tick unless to_read.empty?
|
65
63
|
end
|
66
64
|
|
67
65
|
def puts_above(string)
|
@@ -101,8 +99,12 @@ module ReadlineNG
|
|
101
99
|
# TODO This method is getting monolithic, think about how to modularise it
|
102
100
|
case c
|
103
101
|
when "\r"
|
104
|
-
@
|
105
|
-
|
102
|
+
if @buf[@index-1] == ?\\
|
103
|
+
@buf[@index-1] = "\n"
|
104
|
+
else
|
105
|
+
@lines += [@buf]
|
106
|
+
reset
|
107
|
+
end
|
106
108
|
when CONTROL_INT
|
107
109
|
raise Interrupt
|
108
110
|
when KB_BS
|
data/spec/readline-ng_spec.rb
CHANGED
@@ -83,6 +83,16 @@ describe ReadlineNG do
|
|
83
83
|
@reader.get_line.should == "'''"
|
84
84
|
end
|
85
85
|
|
86
|
+
it "should insert a newline from a trailing backslash" do
|
87
|
+
STDIN.stub(:read_nonblock).and_return("rawr", ?\\, "\r", "thing", "\r")
|
88
|
+
@reader.get_line.should == "rawr\nthing"
|
89
|
+
end
|
90
|
+
|
91
|
+
it "Shouldn't explode if you backspace beyond the start of the line" do
|
92
|
+
STDIN.stub(:read_nonblock).and_return("rawr", "\x7F"*14, "rawr\r")
|
93
|
+
@reader.get_line.should == "rawr"
|
94
|
+
end
|
95
|
+
|
86
96
|
# TODO it "should erase the displayed line when input is terminated" do
|
87
97
|
|
88
98
|
end
|
metadata
CHANGED
@@ -1,71 +1,75 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: readline-ng
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 0
|
8
|
-
- 9
|
9
|
-
version: 0.0.9
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
7
|
+
authors:
|
12
8
|
- Rich Healey
|
13
9
|
autorequire:
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
dependencies:
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2013-01-07 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: rspec
|
22
|
-
|
23
|
-
|
24
|
-
requirements:
|
25
|
-
- -
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
|
28
|
-
- 0
|
29
|
-
version: "0"
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
30
22
|
type: :development
|
31
|
-
version_requirements: *id001
|
32
|
-
- !ruby/object:Gem::Dependency
|
33
|
-
name: mocha
|
34
23
|
prerelease: false
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: mocha
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
42
38
|
type: :development
|
43
|
-
version_requirements: *id002
|
44
|
-
- !ruby/object:Gem::Dependency
|
45
|
-
name: rake
|
46
39
|
prerelease: false
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rake
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
54
|
type: :development
|
55
|
-
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
56
62
|
description: Essentially, readline++
|
57
|
-
email:
|
63
|
+
email:
|
58
64
|
- richo@psych0tik.net
|
59
65
|
executables: []
|
60
|
-
|
61
66
|
extensions: []
|
62
|
-
|
63
67
|
extra_rdoc_files: []
|
64
|
-
|
65
|
-
files:
|
68
|
+
files:
|
66
69
|
- .rvmrc
|
67
70
|
- .travis.yml
|
68
71
|
- Gemfile
|
72
|
+
- Gemfile.lock
|
69
73
|
- Gemfile.travis
|
70
74
|
- README.md
|
71
75
|
- Rakefile
|
@@ -74,35 +78,29 @@ files:
|
|
74
78
|
- readline-ng.gemspec
|
75
79
|
- readline.rb
|
76
80
|
- spec/readline-ng_spec.rb
|
77
|
-
has_rdoc: true
|
78
81
|
homepage: http://github.com/richo/readline-ng
|
79
82
|
licenses: []
|
80
|
-
|
81
83
|
post_install_message:
|
82
84
|
rdoc_options: []
|
83
|
-
|
84
|
-
require_paths:
|
85
|
+
require_paths:
|
85
86
|
- lib
|
86
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
requirements:
|
95
|
-
- -
|
96
|
-
- !ruby/object:Gem::Version
|
97
|
-
|
98
|
-
- 0
|
99
|
-
version: "0"
|
87
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
88
|
+
none: false
|
89
|
+
requirements:
|
90
|
+
- - ! '>='
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '0'
|
93
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
100
99
|
requirements: []
|
101
|
-
|
102
100
|
rubyforge_project:
|
103
|
-
rubygems_version: 1.
|
101
|
+
rubygems_version: 1.8.24
|
104
102
|
signing_key:
|
105
103
|
specification_version: 3
|
106
104
|
summary: Essentially, readline++
|
107
|
-
test_files:
|
105
|
+
test_files:
|
108
106
|
- spec/readline-ng_spec.rb
|