Class: Exfuz::Candidates
- Inherits:
-
Object
- Object
- Exfuz::Candidates
- Defined in:
- lib/exfuz/candidates.rb
Constant Summary collapse
- @@queue =
Queue.new
- @@raw =
[]
Instance Method Summary collapse
- #close_push ⇒ Object
- #close_push? ⇒ Boolean
- #filter(conditions) ⇒ Object
- #group_by(keys) ⇒ Object
-
#initialize(items = []) ⇒ Candidates
constructor
A new instance of Candidates.
- #positions ⇒ Object
- #push(item) ⇒ Object
- #suspend_push ⇒ Object
Constructor Details
#initialize(items = []) ⇒ Candidates
Returns a new instance of Candidates.
8 9 10 |
# File 'lib/exfuz/candidates.rb', line 8 def initialize(items = []) @processed = items end |
Instance Method Details
#close_push ⇒ Object
24 25 26 27 |
# File 'lib/exfuz/candidates.rb', line 24 def close_push @@queue << nil @@queue.close end |
#close_push? ⇒ Boolean
20 21 22 |
# File 'lib/exfuz/candidates.rb', line 20 def close_push? @@queue.closed? end |
#filter(conditions) ⇒ Object
33 34 35 36 37 38 39 |
# File 'lib/exfuz/candidates.rb', line 33 def filter(conditions) pipeline filtered = positions.filter do |position| position.match?(conditions) end Exfuz::Candidates.new(filtered) end |
#group_by(keys) ⇒ Object
41 42 43 44 |
# File 'lib/exfuz/candidates.rb', line 41 def group_by(keys) pipeline Exfuz::Group.new(positions, keys) end |
#positions ⇒ Object
29 30 31 |
# File 'lib/exfuz/candidates.rb', line 29 def positions @processed.empty? ? @@raw : @processed end |
#push(item) ⇒ Object
12 13 14 |
# File 'lib/exfuz/candidates.rb', line 12 def push(item) @@queue << item end |
#suspend_push ⇒ Object
16 17 18 |
# File 'lib/exfuz/candidates.rb', line 16 def suspend_push @@queue << nil end |