orichalcum 0.5.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/doc/README +2 -0
- data/lib/compatible-readline/readline.rb +60 -0
- metadata +52 -0
data/doc/README
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'readline'
|
2
|
+
require 'dl/import'
|
3
|
+
|
4
|
+
#This really locks text-interpreter down to Linux, maybe Unix-like
|
5
|
+
#platforms, I'm thinking. A more flexible way of doing this would rock,
|
6
|
+
#regardless of length.
|
7
|
+
module Readline
|
8
|
+
begin
|
9
|
+
extend DL::Importable
|
10
|
+
found_libreadline = false
|
11
|
+
ls_so_dirs = [
|
12
|
+
%w{lib},
|
13
|
+
%w{usr lib},
|
14
|
+
%w{usr local lib}
|
15
|
+
].each{|path| path.unshift("")}
|
16
|
+
|
17
|
+
begin
|
18
|
+
File::open("/etc/ld.so.conf", "r") do |ld_so_conf|
|
19
|
+
ld_so_conf.each do |line|
|
20
|
+
unless /^#/ =~ line or /^%s*$/ =~ line
|
21
|
+
ls_so_dirs << line.chomp.split(File::Separator)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
rescue Exception
|
26
|
+
end
|
27
|
+
|
28
|
+
libreadline_names = %w{libreadline.so libreadline.dylib libreadline.dll}
|
29
|
+
|
30
|
+
libreadline_paths = ls_so_dirs.inject([]) do |list, dir|
|
31
|
+
list + libreadline_names.map do |name|
|
32
|
+
File::join(*(dir + [name]))
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
libreadline_paths.each do |path|
|
37
|
+
begin
|
38
|
+
dlload path
|
39
|
+
RLLB = symbol("rl_line_buffer")
|
40
|
+
found_libreadline = true
|
41
|
+
break
|
42
|
+
rescue RuntimeError
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
raise RuntimeError,"couldn't find libreadline" unless found_libreadline
|
47
|
+
|
48
|
+
def self.line_buffer
|
49
|
+
p = RLLB.ptr
|
50
|
+
if p.nil?
|
51
|
+
return p
|
52
|
+
else
|
53
|
+
return p.to_s
|
54
|
+
end
|
55
|
+
end
|
56
|
+
rescue RuntimeError => rte
|
57
|
+
warn "Couldn't find libreadline - tab-completion will be unpredictable at best."
|
58
|
+
warn "The problem was: " + rte.message
|
59
|
+
end
|
60
|
+
end
|
metadata
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.9.4
|
3
|
+
specification_version: 1
|
4
|
+
name: orichalcum
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: 0.5.0
|
7
|
+
date: 2008-03-10 00:00:00 -07:00
|
8
|
+
summary: A wrapper for readline, with a little extra features, and more compatibility
|
9
|
+
require_paths:
|
10
|
+
- lib
|
11
|
+
email: nyarly@gmail.com
|
12
|
+
homepage:
|
13
|
+
rubyforge_project:
|
14
|
+
description: Readline is a really useful library for textual user interfaces. Unfortunately, the Ruby interface has very limited functionality. This gem adds access to the full line buffer during completion. The biggest milestone before 1.0 is to similarly wrap jline for jRuby, and do it such that client code doesn't need to determine it's platform ahead of time.
|
15
|
+
autorequire:
|
16
|
+
default_executable:
|
17
|
+
bindir: bin
|
18
|
+
has_rdoc: true
|
19
|
+
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.0.0
|
24
|
+
version:
|
25
|
+
platform: ruby
|
26
|
+
signing_key:
|
27
|
+
cert_chain:
|
28
|
+
post_install_message: Another tidy package brought to you by Judson
|
29
|
+
authors:
|
30
|
+
- Judson Lester
|
31
|
+
files:
|
32
|
+
- lib/compatible-readline
|
33
|
+
- lib/compatible-readline/readline.rb
|
34
|
+
- doc/README
|
35
|
+
test_files: []
|
36
|
+
|
37
|
+
rdoc_options:
|
38
|
+
- --inline-source
|
39
|
+
- --main
|
40
|
+
- doc/README
|
41
|
+
- --title
|
42
|
+
- orichalcum-0.5.0 RDoc
|
43
|
+
extra_rdoc_files:
|
44
|
+
- doc/README
|
45
|
+
executables: []
|
46
|
+
|
47
|
+
extensions: []
|
48
|
+
|
49
|
+
requirements: []
|
50
|
+
|
51
|
+
dependencies: []
|
52
|
+
|