Class: Aspire::Enumerator::Base Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/aspire/enumerator/base.rb

Overview

This class is abstract.

Subclasses must implement #enumerate accepting the parameters passed to #enumerator and yielding values to self.yielder

The abstract base class for enumerator classes

Direct Known Subclasses

ReportEnumerator

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#yielderEnumerator::Yielder

Returns the yielder instance from an Enumerator.

Returns:

  • (Enumerator::Yielder)

    the yielder instance from an Enumerator



11
12
13
# File 'lib/aspire/enumerator/base.rb', line 11

def yielder
  @yielder
end

Instance Method Details

#enumerate(*args, **kwargs) ⇒ Object

This method is abstract.

Subclasses must implement this method

Enumerates the data passed in its arguments

Raises:

  • (NotImplementedError)


15
16
17
# File 'lib/aspire/enumerator/base.rb', line 15

def enumerate(*args, **kwargs)
  raise NotImplementedError
end

#enumerator(*args, **kwargs) ⇒ Enumerator

Returns an enumerator enumerating property/value pairs of JSON data

Returns:



21
22
23
24
25
26
# File 'lib/aspire/enumerator/base.rb', line 21

def enumerator(*args, **kwargs)
  ::Enumerator.new do |yielder|
    self.yielder = yielder
    enumerate(*args, **kwargs)
  end
end