readline_buffer 0.9.1 → 0.9.2
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/CHANGES.md +5 -0
- data/README.md +5 -16
- data/ext/readline_buffer_ext/extconf.rb +4 -5
- data/ext/readline_buffer_ext/readline_buffer_ext.c +4 -5
- data/lib/readline_buffer.rb +6 -0
- data/lib/readline_buffer/version.rb +1 -1
- data/readline_buffer.gemspec +23 -30
- data/task/gemgem.rb +97 -16
- metadata +8 -12
- data/README +0 -44
data/CHANGES.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# readline_buffer CHANGES
|
2
2
|
|
3
|
+
## readline_buffer 0.9.2 -- 2011-12-14
|
4
|
+
|
5
|
+
* Puts a warning for Editline (libedit) instead of failing to install it.
|
6
|
+
If you're using Editline, then readline_buffer would do nothing at all.
|
7
|
+
|
3
8
|
## readline_buffer 0.9.1 -- 2011-08-19
|
4
9
|
|
5
10
|
* Fixed a segfault whenever rl_line_buffer is NULL
|
data/README.md
CHANGED
@@ -9,13 +9,13 @@ by Lin Jen-Shin ([godfat](http://godfat.org))
|
|
9
9
|
|
10
10
|
## DESCRIPTION:
|
11
11
|
|
12
|
-
Let you manipulate Readline.line_buffer
|
12
|
+
Let you manipulate `Readline.line_buffer`
|
13
13
|
|
14
|
-
Note, only GNU Readline is supported
|
14
|
+
Note, only GNU Readline is supported at the moment.
|
15
15
|
|
16
16
|
## REQUIREMENTS:
|
17
17
|
|
18
|
-
* GNU Readline, not
|
18
|
+
* GNU Readline, not Editline
|
19
19
|
|
20
20
|
## INSTALLATION:
|
21
21
|
|
@@ -27,18 +27,7 @@ Note, only GNU Readline is supported
|
|
27
27
|
|
28
28
|
## LICENSE:
|
29
29
|
|
30
|
-
|
30
|
+
GPL 3 if you're compiling against Readline,
|
31
|
+
otherwise Apache License 2.0
|
31
32
|
|
32
33
|
Copyright (c) 2011, Lin Jen-Shin (godfat)
|
33
|
-
|
34
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
35
|
-
you may not use this file except in compliance with the License.
|
36
|
-
You may obtain a copy of the License at
|
37
|
-
|
38
|
-
<http://www.apache.org/licenses/LICENSE-2.0>
|
39
|
-
|
40
|
-
Unless required by applicable law or agreed to in writing, software
|
41
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
42
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
43
|
-
See the License for the specific language governing permissions and
|
44
|
-
limitations under the License.
|
@@ -4,11 +4,10 @@ dir_config('readline')
|
|
4
4
|
have_library('readline')
|
5
5
|
|
6
6
|
if have_header('readline/readline.h')
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
end
|
7
|
+
# editline (libedit) doesn't have rl_delete_text
|
8
|
+
have_func('rl_delete_text', 'readline/readline.h')
|
9
|
+
create_makefile 'readline_buffer_ext'
|
10
|
+
|
12
11
|
else
|
13
12
|
abort 'Readline not found'
|
14
13
|
end
|
@@ -1,8 +1,5 @@
|
|
1
1
|
|
2
|
-
#ifdef HAVE_READLINE_READLINE_H
|
3
2
|
#include "ruby.h"
|
4
|
-
#include <errno.h>
|
5
|
-
#include <stdio.h>
|
6
3
|
#include <readline/readline.h>
|
7
4
|
|
8
5
|
static VALUE readline_buffer_ext(VALUE self, VALUE str){
|
@@ -12,7 +9,11 @@ static VALUE readline_buffer_ext(VALUE self, VALUE str){
|
|
12
9
|
if(rl_line_buffer == NULL)
|
13
10
|
return Qnil;
|
14
11
|
|
12
|
+
#ifdef HAVE_RL_DELETE_TEXT
|
15
13
|
rl_delete_text(0, rl_end);
|
14
|
+
#else
|
15
|
+
rl_line_buffer[rl_end = 0] = '\0';
|
16
|
+
#endif
|
16
17
|
rl_insert_text(RSTRING_PTR(str));
|
17
18
|
rl_redisplay();
|
18
19
|
|
@@ -24,5 +25,3 @@ void Init_readline_buffer_ext() {
|
|
24
25
|
"line_buffer=",
|
25
26
|
readline_buffer_ext, 1);
|
26
27
|
}
|
27
|
-
|
28
|
-
#endif
|
data/lib/readline_buffer.rb
CHANGED
@@ -1,3 +1,9 @@
|
|
1
1
|
|
2
2
|
require 'readline'
|
3
3
|
require 'readline_buffer_ext'
|
4
|
+
|
5
|
+
if Readline::VERSION =~ /EditLine/i
|
6
|
+
puts "WARN: Editline (libedit) doesn't work with readline_buffer."
|
7
|
+
puts " A working patch is wanted, please submit to:"
|
8
|
+
puts " https://github.com/godfat/readline_buffer Thanks!!"
|
9
|
+
end
|
data/readline_buffer.gemspec
CHANGED
@@ -1,39 +1,32 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
|
-
s.name =
|
5
|
-
s.version = "0.9.
|
4
|
+
s.name = "readline_buffer"
|
5
|
+
s.version = "0.9.2"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
-
s.authors = [
|
9
|
-
s.date =
|
10
|
-
s.description =
|
11
|
-
|
12
|
-
|
13
|
-
s.email = [%q{godfat (XD) godfat.org}]
|
14
|
-
s.extensions = [%q{ext/readline_buffer_ext/extconf.rb}]
|
15
|
-
s.extra_rdoc_files = [%q{CHANGES.md}]
|
8
|
+
s.authors = ["Lin Jen-Shin (godfat)"]
|
9
|
+
s.date = "2011-12-14"
|
10
|
+
s.description = "Let you manipulate `Readline.line_buffer`\n\nNote, only GNU Readline is supported at the moment."
|
11
|
+
s.email = ["godfat (XD) godfat.org"]
|
12
|
+
s.extensions = ["ext/readline_buffer_ext/extconf.rb"]
|
16
13
|
s.files = [
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
s.
|
31
|
-
s.
|
32
|
-
|
33
|
-
%q{README}]
|
34
|
-
s.require_paths = [%q{lib}]
|
35
|
-
s.rubygems_version = %q{1.8.7}
|
36
|
-
s.summary = %q{Let you manipulate Readline.line_buffer}
|
14
|
+
".gitignore",
|
15
|
+
".gitmodules",
|
16
|
+
"CHANGES.md",
|
17
|
+
"README.md",
|
18
|
+
"Rakefile",
|
19
|
+
"ext/readline_buffer_ext/extconf.rb",
|
20
|
+
"ext/readline_buffer_ext/readline_buffer_ext.c",
|
21
|
+
"lib/readline_buffer.rb",
|
22
|
+
"lib/readline_buffer/version.rb",
|
23
|
+
"readline_buffer.gemspec",
|
24
|
+
"task/.gitignore",
|
25
|
+
"task/gemgem.rb"]
|
26
|
+
s.homepage = "https://github.com/godfat/readline_buffer"
|
27
|
+
s.require_paths = ["lib"]
|
28
|
+
s.rubygems_version = "1.8.12"
|
29
|
+
s.summary = "Let you manipulate `Readline.line_buffer`"
|
37
30
|
|
38
31
|
if s.respond_to? :specification_version then
|
39
32
|
s.specification_version = 3
|
data/task/gemgem.rb
CHANGED
@@ -12,17 +12,9 @@ module Gemgem
|
|
12
12
|
s.authors = ['Lin Jen-Shin (godfat)']
|
13
13
|
s.email = ['godfat (XD) godfat.org']
|
14
14
|
|
15
|
-
description = File.read("#{Gemgem.dir}/README").
|
16
|
-
match(/DESCRIPTION:\n\n(.+?)(?=\n\n[^\n]+:\n)/m)[1].
|
17
|
-
lines.to_a
|
18
|
-
|
19
15
|
s.description = description.join
|
20
16
|
s.summary = description.first
|
21
17
|
|
22
|
-
s.extra_rdoc_files = %w[CHANGES TODO CONTRIBUTORS LICENSE
|
23
|
-
CHANGES.md TODO.md CONTRIBUTORS].select{ |f|
|
24
|
-
File.exist?(f) }
|
25
|
-
s.rdoc_options = %w[--main README]
|
26
18
|
s.rubygems_version = Gem::VERSION
|
27
19
|
s.date = Time.now.strftime('%Y-%m-%d')
|
28
20
|
s.files = gem_files
|
@@ -34,6 +26,72 @@ module Gemgem
|
|
34
26
|
spec
|
35
27
|
end
|
36
28
|
|
29
|
+
def readme
|
30
|
+
path = %w[README.md README].find{ |name|
|
31
|
+
File.exist?("#{Gemgem.dir}/#{name}")
|
32
|
+
}
|
33
|
+
@readme ||=
|
34
|
+
if path
|
35
|
+
ps = File.read(path).scan(/#+[^\n]+\n\n.+?(?=\n\n#+[^\n]+\n)/m)
|
36
|
+
ps.inject({'HEADER' => ps.first}){ |r, s, i|
|
37
|
+
r[s[/\w+/]] = s
|
38
|
+
r
|
39
|
+
}
|
40
|
+
else
|
41
|
+
{}
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def description
|
46
|
+
@description ||= (readme['DESCRIPTION']||'').sub(/.+\n\n/, '').lines.to_a
|
47
|
+
end
|
48
|
+
|
49
|
+
def changes
|
50
|
+
path = %w[CHANGES.md CHANGES].find{ |name|
|
51
|
+
File.exist?("#{Gemgem.dir}/#{name}")
|
52
|
+
}
|
53
|
+
@changes ||=
|
54
|
+
if path
|
55
|
+
date = '\d+{4}\-\d+{2}\-\d{2}'
|
56
|
+
File.read(path).match(
|
57
|
+
/([^\n]+#{date}\n\n(.+?))(?=\n\n[^\n]+#{date}\n|\Z)/m)[1]
|
58
|
+
else
|
59
|
+
''
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def ann_md
|
64
|
+
"##{readme['HEADER'].sub(/([\w\-]+)/, "[\\1](#{spec.homepage})")}\n\n" \
|
65
|
+
"##{readme['DESCRIPTION'][/[^\n]+\n\n[^\n]+/]}\n\n" \
|
66
|
+
"### CHANGES:\n\n" \
|
67
|
+
"###{changes}\n\n" \
|
68
|
+
"##{readme['INSTALLATION']}\n\n" +
|
69
|
+
if readme['SYNOPSIS'] then "##{readme['SYNOPSIS']}" else '' end
|
70
|
+
end
|
71
|
+
|
72
|
+
def ann_html
|
73
|
+
gem 'nokogiri'
|
74
|
+
gem 'kramdown'
|
75
|
+
|
76
|
+
IO.popen('kramdown', 'r+') do |md|
|
77
|
+
md.puts Gemgem.ann_md
|
78
|
+
md.close_write
|
79
|
+
require 'nokogiri'
|
80
|
+
html = Nokogiri::XML.parse("<gemgem>#{md.read}</gemgem>")
|
81
|
+
html.css('*').each{ |n| n.delete('id') }
|
82
|
+
html.root.children.to_html
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
def ann_email
|
87
|
+
"#{readme['HEADER'].sub(/([\w\-]+)/, "\\1 <#{spec.homepage}>")}\n\n" \
|
88
|
+
"#{readme['DESCRIPTION']}\n\n" \
|
89
|
+
"#{readme['INSTALLATION']}\n\n" +
|
90
|
+
if readme['SYNOPSIS'] then "##{readme['SYNOPSIS']}\n\n" else '' end +
|
91
|
+
"## CHANGES:\n\n" \
|
92
|
+
"##{changes}\n\n"
|
93
|
+
end
|
94
|
+
|
37
95
|
def gem_tag
|
38
96
|
"#{spec.name}-#{spec.version}"
|
39
97
|
end
|
@@ -88,7 +146,7 @@ module Gemgem
|
|
88
146
|
|
89
147
|
def ignore_patterns
|
90
148
|
@ignore_files ||= expand_patterns(
|
91
|
-
|
149
|
+
gitignore.split("\n").reject{ |pattern|
|
92
150
|
pattern.strip == ''
|
93
151
|
}).map{ |pattern| %r{^([^/]+/)*?#{Regexp.escape(pattern)}(/[^/]+)*?$} }
|
94
152
|
end
|
@@ -105,6 +163,14 @@ module Gemgem
|
|
105
163
|
end
|
106
164
|
}.flatten
|
107
165
|
end
|
166
|
+
|
167
|
+
def gitignore
|
168
|
+
if File.exist?(path = "#{dir}/.gitignore")
|
169
|
+
File.read(path)
|
170
|
+
else
|
171
|
+
''
|
172
|
+
end
|
173
|
+
end
|
108
174
|
end
|
109
175
|
|
110
176
|
namespace :gem do
|
@@ -133,14 +199,14 @@ task :check do
|
|
133
199
|
ver = Gemgem.spec.version.to_s
|
134
200
|
|
135
201
|
if ENV['VERSION'].nil?
|
136
|
-
puts("\
|
137
|
-
"\
|
202
|
+
puts("\e[35mExpected " \
|
203
|
+
"\e[33mVERSION\e[35m=\e[33m#{ver}\e[0m")
|
138
204
|
exit(1)
|
139
205
|
|
140
206
|
elsif ENV['VERSION'] != ver
|
141
|
-
puts("\
|
142
|
-
"\
|
143
|
-
"\
|
207
|
+
puts("\e[35mExpected \e[33mVERSION\e[35m=\e[33m#{ver} " \
|
208
|
+
"\e[35mbut got\n " \
|
209
|
+
"\e[33mVERSION\e[35m=\e[33m#{ENV['VERSION']}\e[0m")
|
144
210
|
exit(2)
|
145
211
|
end
|
146
212
|
end
|
@@ -153,7 +219,7 @@ task :test do
|
|
153
219
|
Bacon.extend(Bacon::TestUnitOutput)
|
154
220
|
Bacon.summary_on_exit
|
155
221
|
$LOAD_PATH.unshift('lib')
|
156
|
-
Dir['test/**/test_*.rb'].each{ |file|
|
222
|
+
Dir['./test/**/test_*.rb'].each{ |file| require file[0..-4] }
|
157
223
|
end
|
158
224
|
|
159
225
|
desc 'Run tests with shell'
|
@@ -166,13 +232,28 @@ task 'test:shell', :RUBY_OPTS do |t, args|
|
|
166
232
|
sh(cmd.compact.join(' '))
|
167
233
|
end
|
168
234
|
|
235
|
+
desc 'Generate ann markdown'
|
236
|
+
task 'ann:md' => ['gem:spec'] do
|
237
|
+
puts Gemgem.ann_md
|
238
|
+
end
|
239
|
+
|
240
|
+
desc 'Generate ann html'
|
241
|
+
task 'ann:html' => ['gem:spec'] do
|
242
|
+
puts Gemgem.ann_html
|
243
|
+
end
|
244
|
+
|
245
|
+
desc 'Generate ann email'
|
246
|
+
task 'ann:email' => ['gem:spec'] do
|
247
|
+
puts Gemgem.ann_email
|
248
|
+
end
|
249
|
+
|
169
250
|
desc 'Generate rdoc'
|
170
251
|
task :doc => ['gem:spec'] do
|
171
252
|
sh("yardoc -o rdoc --main README.md" \
|
172
253
|
" --files #{Gemgem.spec.extra_rdoc_files.join(',')}")
|
173
254
|
end
|
174
255
|
|
175
|
-
desc '
|
256
|
+
desc 'Remove ignored files'
|
176
257
|
task :clean => ['gem:spec'] do
|
177
258
|
trash = "~/.Trash/#{Gemgem.spec.name}/"
|
178
259
|
sh "mkdir -p #{trash}" unless File.exist?(File.expand_path(trash))
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: readline_buffer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,24 +9,22 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-12-14 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
|
-
description: ! 'Let you manipulate Readline.line_buffer
|
14
|
+
description: ! 'Let you manipulate `Readline.line_buffer`
|
15
15
|
|
16
16
|
|
17
|
-
Note, only GNU Readline is supported'
|
17
|
+
Note, only GNU Readline is supported at the moment.'
|
18
18
|
email:
|
19
19
|
- godfat (XD) godfat.org
|
20
20
|
executables: []
|
21
21
|
extensions:
|
22
22
|
- ext/readline_buffer_ext/extconf.rb
|
23
|
-
extra_rdoc_files:
|
24
|
-
- CHANGES.md
|
23
|
+
extra_rdoc_files: []
|
25
24
|
files:
|
26
25
|
- .gitignore
|
27
26
|
- .gitmodules
|
28
27
|
- CHANGES.md
|
29
|
-
- README
|
30
28
|
- README.md
|
31
29
|
- Rakefile
|
32
30
|
- ext/readline_buffer_ext/extconf.rb
|
@@ -39,9 +37,7 @@ files:
|
|
39
37
|
homepage: https://github.com/godfat/readline_buffer
|
40
38
|
licenses: []
|
41
39
|
post_install_message:
|
42
|
-
rdoc_options:
|
43
|
-
- --main
|
44
|
-
- README
|
40
|
+
rdoc_options: []
|
45
41
|
require_paths:
|
46
42
|
- lib
|
47
43
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -58,8 +54,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
58
54
|
version: '0'
|
59
55
|
requirements: []
|
60
56
|
rubyforge_project:
|
61
|
-
rubygems_version: 1.8.
|
57
|
+
rubygems_version: 1.8.12
|
62
58
|
signing_key:
|
63
59
|
specification_version: 3
|
64
|
-
summary: Let you manipulate Readline.line_buffer
|
60
|
+
summary: Let you manipulate `Readline.line_buffer`
|
65
61
|
test_files: []
|
data/README
DELETED
@@ -1,44 +0,0 @@
|
|
1
|
-
# readline_buffer
|
2
|
-
|
3
|
-
by Lin Jen-Shin ([godfat](http://godfat.org))
|
4
|
-
|
5
|
-
## LINKS:
|
6
|
-
|
7
|
-
* [github](https://github.com/godfat/readline_buffer)
|
8
|
-
* [rubygems](http://rubygems.org/gems/readline_buffer)
|
9
|
-
|
10
|
-
## DESCRIPTION:
|
11
|
-
|
12
|
-
Let you manipulate Readline.line_buffer
|
13
|
-
|
14
|
-
Note, only GNU Readline is supported
|
15
|
-
|
16
|
-
## REQUIREMENTS:
|
17
|
-
|
18
|
-
* GNU Readline, not EditLine
|
19
|
-
|
20
|
-
## INSTALLATION:
|
21
|
-
|
22
|
-
gem install readline_buffer
|
23
|
-
|
24
|
-
## SYNOPSIS:
|
25
|
-
|
26
|
-
Readline.line_buffer = 'p "replace rl_line_buffer"'
|
27
|
-
|
28
|
-
## LICENSE:
|
29
|
-
|
30
|
-
Apache License 2.0
|
31
|
-
|
32
|
-
Copyright (c) 2011, Lin Jen-Shin (godfat)
|
33
|
-
|
34
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
35
|
-
you may not use this file except in compliance with the License.
|
36
|
-
You may obtain a copy of the License at
|
37
|
-
|
38
|
-
<http://www.apache.org/licenses/LICENSE-2.0>
|
39
|
-
|
40
|
-
Unless required by applicable law or agreed to in writing, software
|
41
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
42
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
43
|
-
See the License for the specific language governing permissions and
|
44
|
-
limitations under the License.
|