ribhu 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/bin/ribhu +42 -17
  2. data/ribhu.gemspec +1 -1
  3. metadata +4 -4
data/bin/ribhu CHANGED
@@ -87,18 +87,41 @@ def my_help_text
87
87
  eos
88
88
  end
89
89
 
90
+ def convert_man_to_ansi file
91
+ lines = file.split "\n"
92
+ l = nil
93
+ lines.each_with_index do |line, ix|
94
+ # convert underlined words to yellow or one color, these are usually params
95
+ line.gsub!(/((_[^ ])+)/,'\1')
96
+ line.gsub!(/_/,'')
97
+ # convert bold words to red or one color, these are usually headers and other words
98
+ l= line.gsub(/(([^ ][^ ])+)/,'\1').gsub(/[^ ]/,'').gsub(//,'')
99
+ lines[ix] = l
100
+ end
101
+ lines
102
+ end
90
103
  ##
91
104
  # display the ridoc for given word (class or method or part)
92
105
  def display_text word
93
106
  w = @form.by_name["tv"];
94
- lines = `ri -f rdoc #{word}`.split("\n")
107
+ lines = get_data word
108
+ #file = `ri -f bs #{word}`
109
+ #lines = convert_man_to_ansi file
95
110
  return if lines.nil? || lines.size == 0
96
111
  # ansi can have overflow
97
- #w.add_content(lines, :content_type => :ansi, :title => word)
112
+ w.add_content(lines, :content_type => :ansi, :title => word)
98
113
  $visited << word unless $visited.index(word)
99
- w.add_content(lines, :title => word)
114
+ #w.add_content(lines, :title => word)
100
115
  w.buffer_last
101
116
  end
117
+ ## retrieve data in ansi format.
118
+ # NOTE that ri returns <t>CLEAR</tt> without the 0. So rbcurse-core does not catch that
119
+ # it expects a zero there. So i've replaced [[m with [[0m.
120
+ # @param String class or method name to fetch ri info for
121
+ # @ returns Array of lines, containing ansi format data
122
+ def get_data str
123
+ lines = `ri -f ansi #{str} 2>&1`.gsub('','').split("\n")
124
+ end
102
125
 
103
126
  ##
104
127
  # prompt user for a class name and show ri doc for same, can be method too
@@ -107,7 +130,8 @@ def ask_classes
107
130
  format="rdoc"
108
131
  str = get_string_with_history("Enter a class name: ")
109
132
  if str && str != ""
110
- lines = `ri -f #{format} #{str}`.split("\n")
133
+ #lines = `ri -f #{format} #{str}`.split("\n")
134
+ lines = get_data str
111
135
  if lines.size == 0
112
136
  alert "Nothing came through for #{str}"
113
137
  ## Nothing returned, lets see if we can match something from the class list
@@ -118,7 +142,8 @@ def ask_classes
118
142
  ix = popuplist(values)
119
143
  if ix
120
144
  str = values[ix]
121
- lines = `ri -f #{format} #{str}`.split("\n")
145
+ #lines = `ri -f #{format} #{str}`.split("\n")
146
+ lines = get_data str
122
147
  end
123
148
  else
124
149
  alert "Nothing came through for #{str}"
@@ -131,13 +156,14 @@ def ask_classes
131
156
  ix = popuplist(lines)
132
157
  if ix
133
158
  str = lines[ix]
134
- lines = `ri -f #{format} #{str}`.split("\n")
159
+ #lines = `ri -f #{format} #{str}`.split("\n")
160
+ lines = get_data str
135
161
  end
136
162
  end
137
163
  return if lines.size == 0
138
164
  w = @form.by_name["tv"];
139
- #w.add_content(lines, :content_type => :ansi, :title => str)
140
- w.add_content(lines, :title => str)
165
+ w.add_content(lines, :content_type => :ansi, :title => str)
166
+ #w.add_content(lines, :title => str)
141
167
  w.buffer_last
142
168
  set_focus_on str
143
169
  end
@@ -178,7 +204,8 @@ end
178
204
  def try_ri arr
179
205
  _text = nil
180
206
  arr.each do |w|
181
- _text = `ri -f rdoc #{w} 2>&1`.split("\n")
207
+ #_text = `ri -f rdoc #{w} 2>&1`.split("\n")
208
+ _text = get_data w
182
209
  if _text.first.index("Nothing known about")
183
210
  else
184
211
  break
@@ -257,7 +284,7 @@ if true
257
284
  popup_history
258
285
  end
259
286
 
260
- header = app_header "0.0.2", :text_center => "ri Documentation Browser", :text_right =>"" #, :color => :black, :bgcolor => :white #, :attr => :bold
287
+ header = app_header "0.0.5", :text_center => "ri Documentation Browser", :text_right =>"" #, :color => :black, :bgcolor => :white #, :attr => :bold
261
288
  # this is the old style of printing something directly on the window.
262
289
  # The new style is to use a header
263
290
  #@form.window.printstring 0, 30, "ri documentation browser", $normalcolor, BOLD
@@ -265,9 +292,6 @@ if true
265
292
 
266
293
  # this is the old style of using a label at the screen bottom, you can use the status_line
267
294
 
268
- v = "Q quit, F1 Help, ? Bindings, f<char>, /, Alt-c, ENTER on Class or Method"
269
- #var = RubyCurses::Label.new @form, { :text => v, :row => FFI::NCurses.LINES-2,
270
- #:col => fc, :display_length => 100}
271
295
  $message = Variable.new
272
296
  $message.value = "Message Comes Here"
273
297
  @status_line = status_line :row => Ncurses.LINES-1
@@ -314,7 +338,7 @@ if true
314
338
  end
315
339
 
316
340
  tv = RubyCurses::TextView.new @form, :row => r, :col => w+1, :height => h, :width => FFI::NCurses.COLS-w-1,
317
- :name => "tv", :title => "Press Enter on method"
341
+ :name => "tv", :title => "Press Enter on Class"
318
342
  tv.set_content ["Press Enter on list to view ri information in this area.",
319
343
  "Press ENTER on method name to see details"]
320
344
  require 'rbcurse/core/include/multibuffer'
@@ -345,12 +369,13 @@ if true
345
369
  if tt.index("::")
346
370
  ix = tt.index("::")
347
371
  tt = tt[0,ix]
348
- _text = `ri -f rdoc #{tt}::#{w} 2>&1`.split("\n")
372
+ #_text = `ri -f ansi #{tt}::#{w} 2>&1`.gsub('','').split("\n")
373
+ _text = get_data "#{tt}::#{w}"
349
374
  end
350
375
  end
351
376
  if _text && _text.size != 0
352
- #view(_text, :content_type => :ansi)
353
- view(_text)
377
+ view(_text, :content_type => :ansi)
378
+ #view(_text)
354
379
  end
355
380
  end
356
381
  }
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.4"
8
+ spec.version = "0.0.5"
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
4
+ version: 0.0.5
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-07 00:00:00.000000000 Z
12
+ date: 2013-03-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -89,7 +89,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
89
89
  version: '0'
90
90
  segments:
91
91
  - 0
92
- hash: -2514237222482059383
92
+ hash: -1291920242593968261
93
93
  required_rubygems_version: !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
@@ -98,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
98
  version: '0'
99
99
  segments:
100
100
  - 0
101
- hash: -2514237222482059383
101
+ hash: -1291920242593968261
102
102
  requirements: []
103
103
  rubyforge_project:
104
104
  rubygems_version: 1.8.25