aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rdoc/constant.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rdoc/constant.rb')
-rw-r--r--lib/rdoc/constant.rb58
1 files changed, 58 insertions, 0 deletions
diff --git a/lib/rdoc/constant.rb b/lib/rdoc/constant.rb
new file mode 100644
index 0000000000..908990855d
--- /dev/null
+++ b/lib/rdoc/constant.rb
@@ -0,0 +1,58 @@
+require 'rdoc/code_object'
+
+##
+# A constant
+
+class RDoc::Constant < RDoc::CodeObject
+
+ ##
+ # The constant's name
+
+ attr_accessor :name
+
+ ##
+ # The constant's value
+
+ attr_accessor :value
+
+ ##
+ # Creates a new constant with +name+, +value+ and +comment+
+
+ def initialize(name, value, comment)
+ super()
+ @name = name
+ @value = value
+ self.comment = comment
+ end
+
+ ##
+ # Constants are ordered by name
+
+ def <=> other
+ return unless self.class === other
+
+ [parent_name, name] <=> [other.parent_name, other.name]
+ end
+
+ def == other
+ self.class == other.class and
+ @parent == other.parent and
+ @name == other.name
+ end
+
+ def inspect # :nodoc:
+ "#<%s:0x%x %s::%s>" % [
+ self.class, object_id,
+ parent_name, @name,
+ ]
+ end
+
+ ##
+ # Path to this constant
+
+ def path
+ "#{@parent.path}##{@name}"
+ end
+
+end
+