Class: Module

Inherits:
Object
  • Object
show all
Defined in:
mrblib/00class.rb,
mrbgems/mruby-class-ext/mrblib/module.rb

Instance Method Summary collapse

Instance Method Details

#<(other) ⇒ Object

call-seq: mod < other -> true, false, or nil

Returns true if mod is a subclass of other. Returns nil if there’s no relationship between the two. (Think of the relationship in terms of the class definition: “class A < B” implies “A < B”.)


12
13
14
15
16
17
18
# File 'mrbgems/mruby-class-ext/mrblib/module.rb', line 12

def <(other)
  if self.equal?(other)
    false
  else
    self <= other
  end
end

#<=(other) ⇒ Object

call-seq: mod <= other -> true, false, or nil

Returns true if mod is a subclass of other or is the same as other. Returns nil if there’s no relationship between the two. (Think of the relationship in terms of the class definition: “class A < B” implies “A < B”.)

Raises:


29
30
31
32
33
34
35
36
# File 'mrbgems/mruby-class-ext/mrblib/module.rb', line 29

def <=(other)
  raise TypeError, 'compared with non class/module' unless other.is_a?(Module)
  if self.ancestors.include?(other)
    return true
  elsif other.ancestors.include?(self)
    return false
  end
end

#<=>(other) ⇒ Object

call-seq: module <=> other_module -> -1, 0, +1, or nil

Comparison—Returns -1, 0, +1 or nil depending on whether module includes other_module, they are the same, or if module is included by other_module.

Returns nil if module has no relationship with other_module, if other_module is not a module, or if the two values are incomparable.


81
82
83
84
85
86
87
88
# File 'mrbgems/mruby-class-ext/mrblib/module.rb', line 81

def <=>(other)
  return 0 if self.equal?(other)
  return nil unless other.is_a?(Module)
  cmp = self < other
  return -1 if cmp
  return 1 unless cmp.nil?
  return nil
end

#>(other) ⇒ Object

call-seq: mod > other -> true, false, or nil

Returns true if mod is an ancestor of other. Returns nil if there’s no relationship between the two. (Think of the relationship in terms of the class definition: “class A < B” implies “B > A”.)


47
48
49
50
51
52
53
# File 'mrbgems/mruby-class-ext/mrblib/module.rb', line 47

def >(other)
  if self.equal?(other)
    false
  else
    self >= other
  end
end

#>=(other) ⇒ Object

call-seq: mod >= other -> true, false, or nil

Returns true if mod is an ancestor of other, or the two modules are the same. Returns nil if there’s no relationship between the two. (Think of the relationship in terms of the class definition: “class A < B” implies “B > A”.)

Raises:


65
66
67
68
# File 'mrbgems/mruby-class-ext/mrblib/module.rb', line 65

def >=(other)
  raise TypeError, 'compared with non class/module' unless other.is_a?(Module)
  return other < self
end

#attr_accessor(*names) ⇒ Object

15.2.2.4.12


3
4
5
6
# File 'mrblib/00class.rb', line 3

def attr_accessor(*names)
  attr_reader(*names)
  attr_writer(*names)
end

#include(*args) ⇒ Object

15.2.2.4.27


14
15
16
17
18
19
20
# File 'mrblib/00class.rb', line 14

def include(*args)
  args.reverse.each do |m|
    m.append_features(self)
    m.included(self)
  end
  self
end

#prepend(*args) ⇒ Object


22
23
24
25
26
27
28
# File 'mrblib/00class.rb', line 22

def prepend(*args)
  args.reverse.each do |m|
    m.prepend_features(self)
    m.prepended(self)
  end
  self
end