1# -*- mode:ruby; indent-tabs-mode:nil; coding:utf-8 -*- 2# 3# ri_entry.rb 4# CocoaRepl 5# 6# Created by Fujimoto Hisa on 07/03/01. 7# Copyright (c) 2007 FUJIMOTO Hisa. All rights reserved. 8# 9require 'rdoc/ri/ri_writer' 10require 'rdoc/ri/ri_descriptions' 11require 'rdoc/markup/simple_markup/to_flow' 12require 'ri_text_display' 13 14module TextDescriptionStuff 15 def displayer 16 @displayer || @displayer = RiTextDisplay.new 17 end 18end 19 20module OSXEntry 21 def osx? 22 (/^OSX::/ =~ full_name) ? true : false 23 end 24end 25 26class RI::ClassEntry 27 include OSXEntry 28 include TextDescriptionStuff 29 30 attr_reader :in_class, :class_methods, :instance_methods, :inferior_classes 31 32 def description 33 result = nil 34 path_names.each do |path| 35 path = RI::RiWriter.class_desc_path(path, self) 36 desc = File.open(path) {|f| RI::Description.deserialize(f) } 37 if result 38 result.merge_in(desc) 39 else 40 result = desc 41 end 42 end 43 result 44 end 45 46 def text 47 displayer.display_class_info(description, nil) 48 end 49end 50 51class RI::MethodEntry 52 include OSXEntry 53 include TextDescriptionStuff 54 55 attr_reader :is_class_method, :in_class 56 57 def description 58 path = path_name 59 File.open(path) { |f| RI::Description.deserialize(f) } 60 end 61 62 def text 63 displayer.display_method_info(description) 64 end 65end 66