ribhu 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/ribhu +31 -31
- data/ribhu.gemspec +1 -1
- metadata +4 -4
data/bin/ribhu
CHANGED
@@ -18,26 +18,18 @@
|
|
18
18
|
#
|
19
19
|
#
|
20
20
|
# TODO:
|
21
|
-
# allow Alt-m from left list
|
22
21
|
# when pressing enter on left list move focus to right
|
23
22
|
require 'logger'
|
24
23
|
require 'rbcurse'
|
25
24
|
require 'rbcurse/core/widgets/rlist'
|
26
25
|
require 'rbcurse/core/widgets/rtextview'
|
27
|
-
require 'rbcurse/core/include/vieditable'
|
26
|
+
#require 'rbcurse/core/include/vieditable'
|
28
27
|
require 'shellwords'
|
29
28
|
# need recent rbcurse for this 0.0.11 or higher
|
30
29
|
require 'rbcurse/core/widgets/textpad'
|
31
30
|
require 'ribhu'
|
32
31
|
|
33
32
|
|
34
|
-
# why the f are we putting in vieditable here, this is not a demo.
|
35
|
-
class RubyCurses::List
|
36
|
-
# vieditable includes listeditable which
|
37
|
-
# does bring in some functions which can crash program like x and X TODO
|
38
|
-
# also, f overrides list f mapping. TODO
|
39
|
-
include ViEditable
|
40
|
-
end
|
41
33
|
def my_help_text
|
42
34
|
<<-eos
|
43
35
|
|
@@ -58,13 +50,17 @@ def my_help_text
|
|
58
50
|
You may also press Alt-n and Alt-p to cycle through next and previously
|
59
51
|
viewed pages.
|
60
52
|
|
61
|
-
Press Alt-
|
53
|
+
Press Alt-c to enter class or method name and see details. If there is
|
62
54
|
no data returned, or options returned you may have to select from a list.
|
63
55
|
e.g. entering 'flatten' may return a list of choices to select from.
|
64
56
|
Entering 'Str' returns nothing from ri, so you have to select from classes
|
65
57
|
starting with 'Str'.
|
66
58
|
|
67
|
-
Press Alt-
|
59
|
+
Press Alt-d to get a popup of visited classes, from which you may select.
|
60
|
+
|
61
|
+
Press Alt-b to get a popup of bookmarks, from which you may select.
|
62
|
+
|
63
|
+
Press Alt-m to get a popup of methods for current class, from which you may select.
|
68
64
|
|
69
65
|
'?' displays all key binding for current object. 'Q' and 'C-q' quit.
|
70
66
|
In any popups, try 'C-q' to quit.
|
@@ -115,6 +111,11 @@ def display_text word
|
|
115
111
|
return if lines.nil? || lines.size == 0
|
116
112
|
# ansi can have overflow
|
117
113
|
w.add_content(lines, :content_type => :ansi, :title => word)
|
114
|
+
|
115
|
+
# Since i am trying without border, so need to put class on top right
|
116
|
+
header = @form.by_name["header"];
|
117
|
+
header.text_right(word)
|
118
|
+
|
118
119
|
$visited << word unless $visited.index(word)
|
119
120
|
#w.add_content(lines, :title => word)
|
120
121
|
w.buffer_last
|
@@ -273,6 +274,11 @@ if true
|
|
273
274
|
|
274
275
|
|
275
276
|
@window = VER::Window.root_window
|
277
|
+
colors = Ncurses.COLORS
|
278
|
+
back = :black
|
279
|
+
lineback = :blue
|
280
|
+
back = 234 if colors >= 256
|
281
|
+
lineback = 236 if colors >= 256
|
276
282
|
$window = @window # i need this for get_char, YUCK
|
277
283
|
$catch_alt_digits = true; # emacs like alt-1..9 numeric arguments
|
278
284
|
install_help_text my_help_text
|
@@ -300,15 +306,17 @@ if true
|
|
300
306
|
ask_bookmark ch.upcase
|
301
307
|
end
|
302
308
|
|
303
|
-
header = app_header "0.0.
|
309
|
+
header = app_header "0.0.8", :text_center => "ri Documentation Browser", :text_right =>"" , :name => "header" , :color => :white, :bgcolor => lineback , :attr => :bold
|
304
310
|
|
305
311
|
|
306
312
|
|
313
|
+
#"#[bg=236, fg=black]#[fg=yellow, bold]F1#[/end] Help | #[fg=yellow, bold]?#[/end] Keys | #[fg=yellow, bold]M-c#[/end] Ask | #[fg=yellow, bold]M-d#[/end] History | #[fg=yellow, bold]M-m#[/end] Methods | #[fg=yellow, bold]M-b#[/end] Bookmarks | Q Quit | %20s" % [$message.value]
|
314
|
+
_col = "#[fg=yellow]"
|
307
315
|
$message = Variable.new
|
308
|
-
$message.value = "
|
309
|
-
@status_line = status_line :row => Ncurses.LINES-1
|
316
|
+
$message.value = ""
|
317
|
+
@status_line = status_line :row => Ncurses.LINES-1 #, :bgcolor => :red, :color => :yellow
|
310
318
|
@status_line.command {
|
311
|
-
"F1 Help |
|
319
|
+
"#[bg=236, fg=black]#{_col}F1#[/end] Help | #{_col}?#[/end] Keys | #{_col}M-c#[/end] Ask | #{_col}M-d#[/end] History | #{_col}M-m#[/end] Methods | #{_col}M-b#[/end] Bookmarks | Q Quit | %20s" % [$message.value]
|
312
320
|
}
|
313
321
|
|
314
322
|
h = FFI::NCurses.LINES-2
|
@@ -324,12 +332,15 @@ if true
|
|
324
332
|
:list => mylist,
|
325
333
|
:selection_mode => :SINGLE,
|
326
334
|
:show_selector => true,
|
335
|
+
:suppress_borders => true,
|
336
|
+
:bgcolor => back,
|
337
|
+
:color => :white,
|
327
338
|
:title => " Ruby Classes "
|
328
339
|
#title_attrib 'reverse'
|
329
340
|
listb.one_key_selection = false # this allows us to map keys to methods
|
330
341
|
#listb.vieditable_init_listbox
|
331
342
|
# what for is Io here
|
332
|
-
include Io
|
343
|
+
#include Io
|
333
344
|
listb.bind_key(32) {|l| l.scroll_forward };
|
334
345
|
listb.bind(:PRESS) {
|
335
346
|
## select class and display riinfo for class
|
@@ -343,15 +354,13 @@ if true
|
|
343
354
|
end
|
344
355
|
## select class and display riinfo for class
|
345
356
|
}
|
346
|
-
#
|
347
|
-
#listb.unbind_key(["'","'"])
|
348
|
-
#listb.unbind_key("'")
|
357
|
+
# since keys are added at handle_key, really late, therefore unbind is of no use.
|
349
358
|
listb.bind_key(?', 'select bookmark') do
|
350
359
|
ask_bookmark
|
351
360
|
end
|
352
361
|
|
353
362
|
tv = RubyCurses::TextView.new @form, :row => r, :col => w+0, :height => h, :width => FFI::NCurses.COLS-w-0,
|
354
|
-
:name => "tv", :title => "Press Enter on Class"
|
363
|
+
:name => "tv", :title => "Press Enter on Class", :suppress_borders => true
|
355
364
|
tv.set_content ["Press Enter on list to view ri information in this area.",
|
356
365
|
"Press ENTER on method name to see details"]
|
357
366
|
require 'rbcurse/core/include/multibuffer'
|
@@ -367,22 +376,15 @@ if true
|
|
367
376
|
w = ev.word_under_cursor.strip
|
368
377
|
# check that user did not hit enter on empty area
|
369
378
|
if w != ""
|
370
|
-
#alert "wuc:#{w}:cp=#{ev.curpos},"
|
371
|
-
#if w.index("::")
|
372
|
-
#str=w
|
373
|
-
#else
|
374
379
|
str = "#{tv.title}.#{w}"
|
375
380
|
_text = try_ri(["#{str}", w])
|
376
|
-
#end
|
377
381
|
tt = tv.title
|
378
|
-
#_text = `ri -f rdoc #{str} 2>&1`
|
379
|
-
#_text = _text.split("\n")
|
380
382
|
if _text.first.index("Nothing known about")
|
381
|
-
|
383
|
+
|
382
384
|
if tt.index("::")
|
383
385
|
ix = tt.index("::")
|
384
386
|
tt = tt[0,ix]
|
385
|
-
|
387
|
+
|
386
388
|
_text = get_data "#{tt}::#{w}"
|
387
389
|
end
|
388
390
|
end
|
@@ -421,8 +423,6 @@ if true
|
|
421
423
|
meth = Ribhu::ri_full_indexed_list(values, :title => "Methods")
|
422
424
|
if meth
|
423
425
|
meth = meth.strip
|
424
|
-
#if ix
|
425
|
-
#meth = values[ix].strip
|
426
426
|
# 2013-03-23 - 00:33 shell escape required for methods like << & [] etc else error
|
427
427
|
# from shell which messes screen.
|
428
428
|
meth = Shellwords.escape(meth)
|
data/ribhu.gemspec
CHANGED
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "ribhu"
|
8
|
-
spec.version = "0.0.
|
8
|
+
spec.version = "0.0.8"
|
9
9
|
spec.authors = ["Rahul Kumar"]
|
10
10
|
spec.email = ["sentinel1879@gmail.com"]
|
11
11
|
spec.description = %q{ri documentation browser using ncurses}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ribhu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -90,7 +90,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
90
90
|
version: '0'
|
91
91
|
segments:
|
92
92
|
- 0
|
93
|
-
hash:
|
93
|
+
hash: 4082776761503125510
|
94
94
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
95
95
|
none: false
|
96
96
|
requirements:
|
@@ -99,7 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
99
99
|
version: '0'
|
100
100
|
segments:
|
101
101
|
- 0
|
102
|
-
hash:
|
102
|
+
hash: 4082776761503125510
|
103
103
|
requirements: []
|
104
104
|
rubyforge_project:
|
105
105
|
rubygems_version: 1.8.25
|