summaryrefslogtreecommitdiff
path: root/jni/ruby/lib/rdoc/require.rb
diff options
context:
space:
mode:
Diffstat (limited to 'jni/ruby/lib/rdoc/require.rb')
-rw-r--r--jni/ruby/lib/rdoc/require.rb51
1 files changed, 51 insertions, 0 deletions
diff --git a/jni/ruby/lib/rdoc/require.rb b/jni/ruby/lib/rdoc/require.rb
new file mode 100644
index 0000000..a3d4bd1
--- /dev/null
+++ b/jni/ruby/lib/rdoc/require.rb
@@ -0,0 +1,51 @@
+##
+# A file loaded by \#require
+
+class RDoc::Require < RDoc::CodeObject
+
+ ##
+ # Name of the required file
+
+ attr_accessor :name
+
+ ##
+ # Creates a new Require that loads +name+ with +comment+
+
+ def initialize(name, comment)
+ super()
+ @name = name.gsub(/'|"/, "") #'
+ @top_level = nil
+ self.comment = comment
+ end
+
+ def inspect # :nodoc:
+ "#<%s:0x%x require '%s' in %s>" % [
+ self.class,
+ object_id,
+ @name,
+ parent_file_name,
+ ]
+ end
+
+ def to_s # :nodoc:
+ "require #{name} in: #{parent}"
+ end
+
+ ##
+ # The RDoc::TopLevel corresponding to this require, or +nil+ if not found.
+
+ def top_level
+ @top_level ||= begin
+ tl = RDoc::TopLevel.all_files_hash[name + '.rb']
+
+ if tl.nil? and RDoc::TopLevel.all_files.first.full_name =~ %r(^lib/) then
+ # second chance
+ tl = RDoc::TopLevel.all_files_hash['lib/' + name + '.rb']
+ end
+
+ tl
+ end
+ end
+
+end
+