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 234
def initialize(ubound = nil) @ubound = ubound end
Instance Attribute Details
#upper_bound (rw)
[ GitHub ]# File 'lib/prime.rb', line 241
def upper_bound @ubound end
#upper_bound=(ubound) (rw)
[ GitHub ]# File 'lib/prime.rb', line 238
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 254
def next raise NotImplementedError, "need to define `next'" end
#rewind
Rewinds the internal position for enumeration.
See Enumerator#rewind.
# File 'lib/prime.rb', line 261
def rewind raise NotImplementedError, "need to define `rewind'" end
#size
[ GitHub ]# File 'lib/prime.rb', line 301
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 249
def succ raise NotImplementedError, "need to define `succ'" end
#with_index(offset = 0)
see Enumerator#with_index.
# File 'lib/prime.rb', line 283
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 294
def with_object(obj) return enum_for(:with_object, obj) { Float::INFINITY } unless block_given? each do |prime| yield prime, obj end end