Class: Module

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

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”.)

[View source]

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:

[View source]

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.

[View source]

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”.)

[View source]

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:

[View source]

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

[View source]

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

[View source]

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

[View source]

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