rb-readline 0.5.3 → 0.5.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c4d13c41012b1013ec975862515264f6fd631054
4
- data.tar.gz: 346bac63e5dbb35e44c9874f7709145dfc293072
3
+ metadata.gz: 62e9f284762457dd7a3623ef60c95024ae96d513
4
+ data.tar.gz: 190b43ef9f6d15da4921f48c923776c305c3bfef
5
5
  SHA512:
6
- metadata.gz: b95940171a294f7380b325363a01dbb2489c5c701b5909cac3de86dc038fbb2263c3b1620209cf3ff86a01cf7821097d86833a1d72ed1c94153658bd62e44a48
7
- data.tar.gz: f8717f77149f38446ba5947edf8578facad9e53685880237fdd9e02fa1899dc8b5441ac29ceb0494d37c1a290cfa25bfd91662ab671954005c029c21071e7cc6
6
+ metadata.gz: 587ae50714415826ec7b09435b6e98ef6b8b82888144e6d8a5b2e99d68fc3dbbff527af117323829aeceb0a8b06fd3cbf525288734557c205f15b23efacdcad7
7
+ data.tar.gz: 3ea8429737a5b37c40900ae813632a8bb7646a7b0c164ac3c301dfbd30111aac357360d91c99a7bc4f520cbaa97f74fdcecf9fffd9afbfed524bc4ed950511dc
@@ -1,28 +1,38 @@
1
- = Description
1
+ # Description
2
2
 
3
3
  The readline library provides a pure Ruby implementation of the GNU
4
4
  readline C library, as well as the Readline extension that ships as part
5
5
  of the standard library.
6
6
 
7
- = Synopsis
7
+ ## Installation
8
8
 
9
- require 'readline'
9
+ gem install rb-readline
10
+
11
+ Or in a `Gemfile`:
12
+
13
+ gem 'rb-readline'
10
14
 
11
- loop do
12
- line = Readline::readline('> ')
13
- break if line.nil? || line == 'quit'
14
- Readline::HISTORY.push(line)
15
- puts "You typed: #{line}"
16
- end
15
+ ## Synopsis
17
16
 
18
- = Compatibility
17
+ ```ruby
18
+ require 'readline'
19
+
20
+ loop do
21
+ line = Readline::readline('> ')
22
+ break if line.nil? || line == 'quit'
23
+ Readline::HISTORY.push(line)
24
+ puts "You typed: #{line}"
25
+ end
26
+ ```
27
+
28
+ ## Compatibility
19
29
 
20
30
  rb-readline should work on all Unix-like systems and Windows. It is regularly
21
31
  used with MRI 1.8/1.9 and Rubinius. JRuby is not supported and there are no
22
32
  plans to support it in the future - it comes bundled with a Java implementation
23
33
  of Readline.
24
34
 
25
- = Motivation
35
+ ## Motivation
26
36
 
27
37
  First, building the GNU readline library on MS Windows with Visual C++ is
28
38
  almost impossible. However, certain libraries depend on readline. By providing
@@ -47,7 +57,7 @@ weak, and only provides a very limited subset of the actual GNU readline
47
57
  library. By providing a pure Ruby implementation we allow 3rd party library
48
58
  authors to write their own interface as they see fit.
49
59
 
50
- = Tutorial
60
+ ## Tutorial
51
61
 
52
62
  For an excellent tutorial on how to use Readline in practice, please see
53
63
  Joseph Pecoraro's examples at http://bogojoker.com/readline/.
@@ -55,14 +65,14 @@ Joseph Pecoraro's examples at http://bogojoker.com/readline/.
55
65
  You can also take a look at Ruby 1.9 stdlib Readline documentation located
56
66
  at http://rubydoc.info/stdlib/readline/1.9.2/frames
57
67
 
58
- = Alternatives
68
+ ## Alternatives
59
69
 
60
70
  See Rawline for a library that began life in pure Ruby and provides an
61
71
  interface that's probably more comfortable to Ruby programmer. It has certain
62
72
  features that Readline does not. In addition, it provides a Readline
63
73
  compatibility mode.
64
74
 
65
- = Authors
75
+ ## Authors
66
76
 
67
77
  * Park Heesob (C translation, code donated as part of bounty)
68
78
  * Daniel Berger (Documentation and testing)
data/Rakefile CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'rubygems/package_task'
2
2
  require 'rake/testtask'
3
+ require 'bundler/gem_tasks'
3
4
 
4
5
  spec = Gem::Specification.load "rb-readline.gemspec"
5
6
 
@@ -10,7 +10,7 @@
10
10
 
11
11
  require "rbreadline/version"
12
12
 
13
- class Fixnum
13
+ class Integer
14
14
  def ord; self; end
15
15
  end
16
16
 
@@ -2392,9 +2392,54 @@ module RbReadline
2392
2392
  nil
2393
2393
  end
2394
2394
 
2395
+ def rl_translate_keyseq(seq)
2396
+ require 'strscan'
2397
+
2398
+ ss = StringScanner.new(seq)
2399
+ new_seq = ''
2400
+
2401
+ until ss.eos?
2402
+ char = ss.getch
2403
+ next new_seq << char unless char == '\\'
2404
+
2405
+ char = ss.getch
2406
+ new_seq << case char
2407
+ when 'a'
2408
+ "\007"
2409
+ when 'b'
2410
+ "\b"
2411
+ when 'd'
2412
+ RUBOUT
2413
+ when 'e'
2414
+ ESC
2415
+ when 'f'
2416
+ "\f"
2417
+ when 'n'
2418
+ NEWLINE
2419
+ when 'r'
2420
+ RETURN
2421
+ when 't'
2422
+ TAB
2423
+ when 'v'
2424
+ 0x0B
2425
+ when '\\'
2426
+ '\\'
2427
+ when 'x'
2428
+ ss.scan(/\d\d/).to_i(16).chr
2429
+ when '0'..'7'
2430
+ ss.pos -= 1
2431
+ ss.scan(/\d\d\d/).to_i(8).chr
2432
+ else
2433
+ char
2434
+ end
2435
+ end
2436
+
2437
+ new_seq
2438
+ end
2439
+
2395
2440
  # Bind KEY to FUNCTION. Returns non-zero if KEY is out of range.
2396
2441
  def rl_bind_key(key, function)
2397
- @_rl_keymap[key] = function
2442
+ @_rl_keymap[rl_translate_keyseq(key)] = function
2398
2443
  @rl_binding_keymap = @_rl_keymap
2399
2444
  0
2400
2445
  end
@@ -2648,7 +2693,7 @@ module RbReadline
2648
2693
  end
2649
2694
 
2650
2695
  def vis_pos(line)
2651
- @vis_lbreaks[line]
2696
+ @vis_lbreaks[line] || 0
2652
2697
  end
2653
2698
 
2654
2699
  def vis_line(line)
@@ -4022,7 +4067,7 @@ module RbReadline
4022
4067
  def _rl_isearch_dispatch(cxt, c)
4023
4068
  f = nil
4024
4069
 
4025
- if c.class == Fixnum && c < 0
4070
+ if c.is_a?(Integer) && c < 0
4026
4071
  cxt.sflags |= SF_FAILED
4027
4072
  cxt.history_pos = cxt.last_found_line
4028
4073
  return -1
@@ -5615,7 +5660,7 @@ module RbReadline
5615
5660
  c = rl_read_key()
5616
5661
  rl_unsetstate(RL_STATE_MOREINPUT)
5617
5662
 
5618
- if c.class == Fixnum && c < 0
5663
+ if c.is_a?(Integer) && c < 0
5619
5664
  return -1
5620
5665
  end
5621
5666
 
@@ -6494,7 +6539,7 @@ module RbReadline
6494
6539
  end
6495
6540
 
6496
6541
  def _rl_internal_pager(lines)
6497
- @rl_outstream.puts "--More--"
6542
+ @rl_outstream.write("--More--")
6498
6543
  @rl_outstream.flush
6499
6544
  i = get_y_or_n(1)
6500
6545
  _rl_erase_entire_line()
@@ -6610,7 +6655,7 @@ module RbReadline
6610
6655
  if (c == 'n' || c == 'N' || c == RUBOUT)
6611
6656
  return (0)
6612
6657
  end
6613
- if (c == ABORT_CHAR || (c.class == Fixnum && c < 0))
6658
+ if (c == ABORT_CHAR || (c.is_a?(Integer) && c < 0))
6614
6659
  _rl_abort_internal()
6615
6660
  end
6616
6661
  if (for_pager && (c == NEWLINE || c == RETURN))
@@ -7592,7 +7637,7 @@ module RbReadline
7592
7637
  mbchar = ''
7593
7638
  mb_len = _rl_read_mbchar(mbchar, MB_LEN_MAX)
7594
7639
 
7595
- if (mbchar.class == Fixnum && c < 0) || mbchar == 0.chr
7640
+ if (mbchar.is_a?(Integer) && c < 0) || mbchar == 0.chr
7596
7641
  return -1
7597
7642
  end
7598
7643
 
@@ -7777,7 +7822,7 @@ module RbReadline
7777
7822
  rl_restore_prompt()
7778
7823
  rl_clear_message()
7779
7824
  rl_unsetstate(RL_STATE_NUMERICARG)
7780
- if key.class == Fixnum && key < 0
7825
+ if key.is_a?(Integer) && key < 0
7781
7826
  return -1
7782
7827
  end
7783
7828
  return (_rl_dispatch(key, @_rl_keymap))
@@ -8735,7 +8780,7 @@ module RbReadline
8735
8780
  c = rl_read_key()
8736
8781
  rl_unsetstate(RL_STATE_MOREINPUT)
8737
8782
 
8738
- break if c.class == Fixnum && c < 0
8783
+ break if c.is_a?(Integer) && c < 0
8739
8784
 
8740
8785
  mbchar << c
8741
8786
  mb_len += 1
@@ -8765,7 +8810,7 @@ module RbReadline
8765
8810
  # Read more for multibyte character
8766
8811
  rl_setstate(RL_STATE_MOREINPUT)
8767
8812
  c = rl_read_key()
8768
- break if c.class == Fixnum && c < 0
8813
+ break if c.is_a?(Integer) && c < 0
8769
8814
  rl_unsetstate(RL_STATE_MOREINPUT)
8770
8815
  else
8771
8816
  break
@@ -1,3 +1,3 @@
1
1
  module RbReadline
2
- RB_READLINE_VERSION = "0.5.3"
2
+ RB_READLINE_VERSION = "0.5.4"
3
3
  end
@@ -455,7 +455,7 @@ module Readline
455
455
 
456
456
  end
457
457
 
458
- HISTORY = History
458
+ HISTORY = History unless const_defined? :HISTORY
459
459
 
460
460
  # The Fcomp class provided to encapsulate typical filename completion
461
461
  # procedure. You will not typically use this directly, but will instead
@@ -483,7 +483,7 @@ module Readline
483
483
  end
484
484
  end
485
485
 
486
- FILENAME_COMPLETION_PROC = Fcomp
486
+ FILENAME_COMPLETION_PROC = Fcomp unless const_defined? :FILENAME_COMPLETION_PROC
487
487
 
488
488
  # The Ucomp class provided to encapsulate typical filename completion
489
489
  # procedure. You will not typically use this directly, but will instead
@@ -514,13 +514,13 @@ module Readline
514
514
  end
515
515
  end
516
516
 
517
- USERNAME_COMPLETION_PROC = Ucomp
517
+ USERNAME_COMPLETION_PROC = Ucomp unless const_defined? :USERNAME_COMPLETION_PROC
518
518
 
519
519
  RbReadline.rl_readline_name = "Ruby"
520
520
 
521
521
  RbReadline.using_history()
522
522
 
523
- VERSION = RbReadline.rl_library_version
523
+ VERSION = RbReadline.rl_library_version unless const_defined? :VERSION
524
524
 
525
525
  module_function :readline
526
526
 
@@ -34,7 +34,7 @@ spec = Gem::Specification.new do |s|
34
34
  # components, files and paths
35
35
  s.files = Dir[
36
36
  "{bench,examples,lib,test}/**/*.rb",
37
- "README.rdoc",
37
+ "README.md",
38
38
  "LICENSE",
39
39
  "CHANGES",
40
40
  "Rakefile",
@@ -45,7 +45,7 @@ spec = Gem::Specification.new do |s|
45
45
  s.require_path = 'lib'
46
46
 
47
47
  # documentation
48
- s.rdoc_options << '--main' << 'README.rdoc' << '--title' << 'Rb-Readline - Documentation'
48
+ s.rdoc_options << '--main' << 'README.md' << '--title' << 'Rb-Readline - Documentation'
49
49
 
50
- s.extra_rdoc_files = %w(README.rdoc LICENSE CHANGES)
50
+ s.extra_rdoc_files = %w(README.md LICENSE CHANGES)
51
51
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rb-readline
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Park Heesob
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2015-06-03 00:00:00.000000000 Z
14
+ date: 2017-02-10 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rake
@@ -52,13 +52,13 @@ email:
52
52
  executables: []
53
53
  extensions: []
54
54
  extra_rdoc_files:
55
- - README.rdoc
55
+ - README.md
56
56
  - LICENSE
57
57
  - CHANGES
58
58
  files:
59
59
  - CHANGES
60
60
  - LICENSE
61
- - README.rdoc
61
+ - README.md
62
62
  - Rakefile
63
63
  - bench/_rl_adjust_point.rb
64
64
  - examples/example_readline.rb
@@ -83,7 +83,7 @@ metadata: {}
83
83
  post_install_message:
84
84
  rdoc_options:
85
85
  - "--main"
86
- - README.rdoc
86
+ - README.md
87
87
  - "--title"
88
88
  - Rb-Readline - Documentation
89
89
  require_paths:
@@ -100,7 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
100
  version: 1.3.5
101
101
  requirements: []
102
102
  rubyforge_project:
103
- rubygems_version: 2.2.2
103
+ rubygems_version: 2.5.1
104
104
  signing_key:
105
105
  specification_version: 4
106
106
  summary: Pure-Ruby Readline Implementation