Class: Class

Inherits:
Object show all
Defined in:
lib/ruby_us/extensions/class.rb

Instance Method Summary collapse

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

#attributesObject



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

#descendantsObject



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

Returns:

  • (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

Returns:

  • (Boolean)


35
36
37
# File 'lib/ruby_us/extensions/class.rb', line 35

def is_extended_by? constant
  descendants.include? constant
end