Module: Integral
- Included in:
- Integer
- Defined in:
- ext/enterprise_script_service/mruby/mrblib/numeric.rb
Overview
Integral
mruby special - module to share methods between Floats and Integers
to make them compatible
Instance Method Summary collapse
-
#downto(num, &block) ⇒ Object
Calls the given block once for each Integer from
self
downtonum
. -
#next ⇒ Object
(also: #succ)
Returns self + 1.
-
#step(num = nil, step = 1, &block) ⇒ Object
Calls the given block from
self
tonum
incremented bystep
(default 1). -
#times(&block) ⇒ Object
Calls the given block
self
times. -
#upto(num, &block) ⇒ Object
Calls the given block once for each Integer from
self
uptonum
.
Instance Method Details
#downto(num, &block) ⇒ Object
Calls the given block once for each Integer from self
downto num
.
ISO 15.2.8.3.15
47 48 49 50 51 52 53 54 55 56 |
# File 'ext/enterprise_script_service/mruby/mrblib/numeric.rb', line 47 def downto(num, &block) return to_enum(:downto, num) unless block i = self.to_i while i >= num block.call(i) i -= 1 end self end |
#next ⇒ Object Also known as: succ
Returns self + 1
ISO 15.2.8.3.19
62 63 64 |
# File 'ext/enterprise_script_service/mruby/mrblib/numeric.rb', line 62 def next self + 1 end |
#step(num = nil, step = 1, &block) ⇒ Object
Calls the given block from self
to num
incremented by step
(default 1).
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
# File 'ext/enterprise_script_service/mruby/mrblib/numeric.rb', line 103 def step(num=nil, step=1, &block) raise ArgumentError, "step can't be 0" if step == 0 return to_enum(:step, num, step) unless block i = __coerce_step_counter(num, step) if num == self || step.infinite? block.call(i) if step > 0 && i <= (num||i) || step < 0 && i >= (num||-i) elsif num == nil while true block.call(i) i += step end elsif step > 0 while i <= num block.call(i) i += step end else while i >= num block.call(i) i += step end end self end |
#times(&block) ⇒ Object
Calls the given block self
times.
ISO 15.2.8.3.22
72 73 74 75 76 77 78 79 80 81 |
# File 'ext/enterprise_script_service/mruby/mrblib/numeric.rb', line 72 def times &block return to_enum :times unless block i = 0 while i < self block.call i i += 1 end self end |
#upto(num, &block) ⇒ Object
Calls the given block once for each Integer from self
upto num
.
ISO 15.2.8.3.27
88 89 90 91 92 93 94 95 96 97 |
# File 'ext/enterprise_script_service/mruby/mrblib/numeric.rb', line 88 def upto(num, &block) return to_enum(:upto, num) unless block i = self.to_i while i <= num block.call(i) i += 1 end self end |