ribhu 0.0.1 → 0.0.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/README.md +8 -1
- data/bin/ribhu +39 -9
- data/lib/ribhu/version.rb +1 -1
- metadata +3 -3
data/README.md
CHANGED
@@ -8,7 +8,14 @@ You may press Enter on a class to see its documention. Pressing ENTER over a met
|
|
8
8
|
fetch its details.
|
9
9
|
|
10
10
|
You may mark classes with an upper case alphabet (vim style) and access them directly using single-quote.
|
11
|
-
Several classes have been bookmarked such as Array, String, Hash, File.
|
11
|
+
Several classes have been bookmarked such as Array, String, Hash, File. You may place more in a file named "~/.ribhu.conf" in the form:
|
12
|
+
|
13
|
+
$bookmark[:Z] = "Zlib"
|
14
|
+
|
15
|
+
A list of visited classes is also maintained and can be accessed and selected from. You may prepopulate it
|
16
|
+
from the conf file as:
|
17
|
+
|
18
|
+
$visited.concat %w{Abbrev GC ARGF}
|
12
19
|
|
13
20
|
Pressing Alt-c and type in any class or method or portion. If `ri` does not return data or returns
|
14
21
|
choices, a popup will allows selection of choices.
|
data/bin/ribhu
CHANGED
@@ -59,6 +59,11 @@ def my_help_text
|
|
59
59
|
Entering 'Str' returns nothing from ri, so you have to select from classes
|
60
60
|
starting with 'Str'.
|
61
61
|
|
62
|
+
Press Alt-D to get a popup of visited classes, from which you may select.
|
63
|
+
|
64
|
+
'?' displays all key binding for current object. 'Q' and 'C-q' quit.
|
65
|
+
In any popups, try 'C-q' to quit.
|
66
|
+
|
62
67
|
=========================================================================
|
63
68
|
Bookmarks
|
64
69
|
|
@@ -90,6 +95,7 @@ def display_text word
|
|
90
95
|
return if lines.nil? || lines.size == 0
|
91
96
|
# ansi can have overflow
|
92
97
|
#w.add_content(lines, :content_type => :ansi, :title => word)
|
98
|
+
$visited << word unless $visited.index(word)
|
93
99
|
w.add_content(lines, :title => word)
|
94
100
|
w.buffer_last
|
95
101
|
end
|
@@ -116,6 +122,7 @@ def ask_classes
|
|
116
122
|
end
|
117
123
|
else
|
118
124
|
alert "Nothing came through for #{str}"
|
125
|
+
$message.value = "Nothing came through for #{str}"
|
119
126
|
end
|
120
127
|
elsif lines.first.index(".#{str} not found")
|
121
128
|
## we are returned something with some choices, lets prompt user with choices
|
@@ -132,6 +139,7 @@ def ask_classes
|
|
132
139
|
#w.add_content(lines, :content_type => :ansi, :title => str)
|
133
140
|
w.add_content(lines, :title => str)
|
134
141
|
w.buffer_last
|
142
|
+
set_focus_on str
|
135
143
|
end
|
136
144
|
end
|
137
145
|
|
@@ -154,7 +162,7 @@ def ask_bookmark
|
|
154
162
|
# set focus to that in the left list
|
155
163
|
set_focus_on str
|
156
164
|
else
|
157
|
-
|
165
|
+
$message.value = "No bookmark for #{ch}. Use m to create."
|
158
166
|
## No bookmark, jumping to first char
|
159
167
|
listb = @form.by_name["mylist"];
|
160
168
|
listb.set_selection_for_char ch
|
@@ -178,6 +186,13 @@ def try_ri arr
|
|
178
186
|
end
|
179
187
|
_text
|
180
188
|
end
|
189
|
+
def popup_history
|
190
|
+
return if $visited.size == 0
|
191
|
+
ix = popuplist($visited, :title => " History ", :bgcolor => :blue, :color => :white)
|
192
|
+
if ix
|
193
|
+
display_text $visited[ix]
|
194
|
+
end
|
195
|
+
end
|
181
196
|
|
182
197
|
|
183
198
|
#if $0 == __FILE__
|
@@ -187,9 +202,11 @@ if true
|
|
187
202
|
begin
|
188
203
|
# Initialize curses
|
189
204
|
VER::start_ncurses # this is initializing colors via ColorMap.setup
|
190
|
-
|
205
|
+
logfilename = File.join(ENV["LOGDIR"] || "./" ,"rbc13.log")
|
206
|
+
$log = Logger.new(logfilename)
|
191
207
|
$log.level = Logger::DEBUG
|
192
208
|
|
209
|
+
$visited = []
|
193
210
|
$bookmarks = {
|
194
211
|
:A => "Array",
|
195
212
|
:C => "Class",
|
@@ -198,10 +215,13 @@ if true
|
|
198
215
|
:H => "Hash",
|
199
216
|
:I => "IO",
|
200
217
|
:K => "Kernel",
|
201
|
-
:R => "RubyCurses",
|
202
|
-
:L => "RubyCurses::Link",
|
203
218
|
:S => "String"
|
204
219
|
}
|
220
|
+
config = File.expand_path("~/.ribhu.conf")
|
221
|
+
# read up any bookmarks or visited classes, they get added to the existing data
|
222
|
+
if File.exists? config
|
223
|
+
load config
|
224
|
+
end
|
205
225
|
|
206
226
|
|
207
227
|
@window = VER::Window.root_window
|
@@ -220,19 +240,29 @@ if true
|
|
220
240
|
@form.bind_key(?', 'select bookmark') do
|
221
241
|
ask_bookmark
|
222
242
|
end
|
243
|
+
@form.bind_key(?\M-d, 'View history') do
|
244
|
+
popup_history
|
245
|
+
end
|
223
246
|
|
247
|
+
header = app_header "0.0.2", :text_center => "ri Documentation Browser", :text_right =>"" #, :color => :black, :bgcolor => :white #, :attr => :bold
|
224
248
|
# this is the old style of printing something directly on the window.
|
225
249
|
# The new style is to use a header
|
226
|
-
|
250
|
+
#@form.window.printstring 0, 30, "ri documentation browser", $normalcolor, BOLD
|
227
251
|
r = 1; fc = 1;
|
228
252
|
|
229
253
|
# this is the old style of using a label at the screen bottom, you can use the status_line
|
230
254
|
|
231
255
|
v = "Q quit, F1 Help, ? Bindings, f<char>, /, Alt-c, ENTER on Class or Method"
|
232
|
-
var = RubyCurses::Label.new @form, { :text => v, :row => FFI::NCurses.LINES-2,
|
233
|
-
|
256
|
+
#var = RubyCurses::Label.new @form, { :text => v, :row => FFI::NCurses.LINES-2,
|
257
|
+
#:col => fc, :display_length => 100}
|
258
|
+
$message = Variable.new
|
259
|
+
$message.value = "Message Comes Here"
|
260
|
+
@status_line = status_line :row => Ncurses.LINES-1
|
261
|
+
@status_line.command {
|
262
|
+
"F1 Help | Q Quit | ? Keys | M-c Classes | M-d History | %20s" % [$message.value]
|
263
|
+
}
|
234
264
|
|
235
|
-
h = FFI::NCurses.LINES-
|
265
|
+
h = FFI::NCurses.LINES-2
|
236
266
|
mylist = `ri -l `.split("\n")
|
237
267
|
w = 25
|
238
268
|
|
@@ -317,7 +347,7 @@ if true
|
|
317
347
|
@window.wrefresh
|
318
348
|
Ncurses::Panel.update_panels
|
319
349
|
while((ch = @window.getchar()) != KEY_F10 )
|
320
|
-
break if ch == ?Q.ord
|
350
|
+
break if ch == ?Q.ord || ch == ?\C-q.getbyte(0)
|
321
351
|
@form.handle_key(ch)
|
322
352
|
@window.wrefresh
|
323
353
|
end
|
data/lib/ribhu/version.rb
CHANGED
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.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -91,7 +91,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
91
91
|
version: '0'
|
92
92
|
segments:
|
93
93
|
- 0
|
94
|
-
hash:
|
94
|
+
hash: -1996546408870180195
|
95
95
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
96
|
none: false
|
97
97
|
requirements:
|
@@ -100,7 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
100
100
|
version: '0'
|
101
101
|
segments:
|
102
102
|
- 0
|
103
|
-
hash:
|
103
|
+
hash: -1996546408870180195
|
104
104
|
requirements: []
|
105
105
|
rubyforge_project:
|
106
106
|
rubygems_version: 1.8.25
|