Class: Prime::PseudoPrimeGenerator
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Subclasses:
|
|
Super Chains via Extension / Inclusion / Inheritance | |
Instance Chain:
self,
Enumerable
|
|
Inherits: | Object |
Defined in: | lib/prime.rb |
Overview
An abstract class for enumerating pseudo-prime numbers.
Concrete subclasses should override succ, next, rewind.
Class Method Summary
- .new(ubound = nil) ⇒ PseudoPrimeGenerator constructor
Instance Attribute Summary
Instance Method Summary
-
#each
Iterates the given block for each prime number.
-
#next
alias of #succ.
-
#rewind
Rewinds the internal position for enumeration.
- #size
-
#succ
returns the next pseudo-prime number, and move the internal position forward.
-
#with_index(offset = 0)
see
Enumerator
#with_index. -
#with_object(obj)
see
Enumerator
#with_object.
Constructor Details
.new(ubound = nil) ⇒ PseudoPrimeGenerator
# File 'lib/prime.rb', line 233
def initialize(ubound = nil) @ubound = ubound end
Instance Attribute Details
#upper_bound (rw)
[ GitHub ]# File 'lib/prime.rb', line 240
def upper_bound @ubound end
#upper_bound=(ubound) (rw)
[ GitHub ]# File 'lib/prime.rb', line 237
def upper_bound=(ubound) @ubound = ubound end
Instance Method Details
#each
Iterates the given block for each prime number.
#next
alias of #succ.
# File 'lib/prime.rb', line 253
def next raise NotImplementedError, "need to define `next'" end
#rewind
Rewinds the internal position for enumeration.
See Enumerator
#rewind.
# File 'lib/prime.rb', line 260
def rewind raise NotImplementedError, "need to define `rewind'" end
#size
[ GitHub ]# File 'lib/prime.rb', line 300
def size Float::INFINITY end
#succ
returns the next pseudo-prime number, and move the internal position forward.
PseudoPrimeGenerator
#succ raises NotImplementedError
.
# File 'lib/prime.rb', line 248
def succ raise NotImplementedError, "need to define `succ'" end
#with_index(offset = 0)
see Enumerator
#with_index.
# File 'lib/prime.rb', line 282
def with_index(offset = 0) return enum_for(:with_index, offset) { Float::INFINITY } unless block_given? return each_with_index(&proc) if offset == 0 each do |prime| yield prime, offset offset += 1 end end
#with_object(obj)
see Enumerator
#with_object.
# File 'lib/prime.rb', line 293
def with_object(obj) return enum_for(:with_object, obj) { Float::INFINITY } unless block_given? each do |prime| yield prime, obj end end