aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/gems/rdoc-2.4.3/lib/rdoc/attr.rb
diff options
context:
space:
mode:
authorRobin Houston <robin@lenny.robin>2011-08-24 18:09:33 +0100
committerRobin Houston <robin@lenny.robin>2011-08-24 18:09:33 +0100
commit95ed2bc24312699cfce9bb6f9bc1418b15718bb1 (patch)
tree6639e8b140b0d74a8f93c2ab00d7a7faba41d6d7 /vendor/gems/rdoc-2.4.3/lib/rdoc/attr.rb
parent68a5989094f63a7e32fd6745b1c5739e038339f3 (diff)
Add rdoc 2.4.3 to vendor/gems
Diffstat (limited to 'vendor/gems/rdoc-2.4.3/lib/rdoc/attr.rb')
-rw-r--r--vendor/gems/rdoc-2.4.3/lib/rdoc/attr.rb79
1 files changed, 79 insertions, 0 deletions
diff --git a/vendor/gems/rdoc-2.4.3/lib/rdoc/attr.rb b/vendor/gems/rdoc-2.4.3/lib/rdoc/attr.rb
new file mode 100644
index 000000000..235a5ab23
--- /dev/null
+++ b/vendor/gems/rdoc-2.4.3/lib/rdoc/attr.rb
@@ -0,0 +1,79 @@
+require 'rdoc/code_object'
+
+##
+# An attribute created by \#attr, \#attr_reader, \#attr_writer or
+# \#attr_accessor
+
+class RDoc::Attr < RDoc::CodeObject
+
+ ##
+ # Name of the attribute
+
+ attr_accessor :name
+
+ ##
+ # Is the attribute readable, writable or both?
+
+ attr_accessor :rw
+
+ ##
+ # Source file token stream
+
+ attr_accessor :text
+
+ ##
+ # public, protected, private
+
+ attr_accessor :visibility
+
+ def initialize(text, name, rw, comment)
+ super()
+ @text = text
+ @name = name
+ @rw = rw
+ @visibility = :public
+ self.comment = comment
+ end
+
+ ##
+ # Attributes are ordered by name
+
+ def <=>(other)
+ self.name <=> other.name
+ end
+
+ ##
+ # An HTML id-friendly representation of #name
+
+ def html_name
+ @name.gsub(/[^a-z]+/, '-')
+ end
+
+ def inspect # :nodoc:
+ attr = case rw
+ when 'RW' then :attr_accessor
+ when 'R' then :attr_reader
+ when 'W' then :attr_writer
+ else
+ " (#{rw})"
+ end
+
+ "#<%s:0x%x %s.%s :%s>" % [
+ self.class, object_id,
+ parent_name, attr, @name,
+ ]
+ end
+
+ ##
+ # URL path for this attribute
+
+ def path
+ "#{@parent.path}##{@name}"
+ end
+
+ def to_s # :nodoc:
+ "attr: #{self.name} #{self.rw}\n#{self.comment}"
+ end
+
+end
+