Class: Class
Instance Method Summary collapse
- #attr_accessor(*vars) ⇒ Object
- #attr_reader(*vars) ⇒ Object
- #attr_writer(*vars) ⇒ Object
- #attributes ⇒ Object
- #descendants ⇒ Object
- #extend?(constant) ⇒ Boolean
- #is_extended_by?(constant) ⇒ Boolean
Instance Method Details
#attr_accessor(*vars) ⇒ Object
3 4 5 6 7 |
# File 'lib/ruby_us/extensions/class.rb', line 3 def attr_accessor *vars @attributes ||= [] @attributes.concat vars super *vars end |
#attr_reader(*vars) ⇒ Object
9 10 11 12 13 |
# File 'lib/ruby_us/extensions/class.rb', line 9 def attr_reader *vars @attributes ||= [] @attributes.concat vars super *vars end |
#attr_writer(*vars) ⇒ Object
15 16 17 18 19 |
# File 'lib/ruby_us/extensions/class.rb', line 15 def attr_writer *vars @attributes ||= [] @attributes.concat vars super *vars end |
#attributes ⇒ Object
21 22 23 |
# File 'lib/ruby_us/extensions/class.rb', line 21 def attributes @attributes.nil? ? self.new.instance_variables : (self.new.instance_variables | @attributes) end |
#descendants ⇒ Object
29 30 31 32 33 |
# File 'lib/ruby_us/extensions/class.rb', line 29 def descendants ObjectSpace.each_object(Class).select do |c| c.extend? self end end |
#extend?(constant) ⇒ Boolean
25 26 27 |
# File 'lib/ruby_us/extensions/class.rb', line 25 def extend? constant (ancestors - [self]).include? constant end |
#is_extended_by?(constant) ⇒ Boolean
35 36 37 |
# File 'lib/ruby_us/extensions/class.rb', line 35 def is_extended_by? constant descendants.include? constant end |