Class: Enumerable::TriggerPartitions

Inherits:
Object
  • Object
show all
Defined in:
lib/util/trigger_partition.rb

Direct Known Subclasses

SignPartitions

Class Method Summary collapse

Class Method Details

.continue?(p, e) ⇒ Boolean



47
48
49
# File 'lib/util/trigger_partition.rb', line 47

def self.continue?(p, e)
  true
end

.emit(e) ⇒ Object



50
51
52
# File 'lib/util/trigger_partition.rb', line 50

def self.emit(e)
  [e]
end

.fill(p, e) ⇒ Object



53
54
55
# File 'lib/util/trigger_partition.rb', line 53

def self.fill(p, e)
  p << e
end

.partition(list) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/util/trigger_partition.rb', line 33

def self.partition(list)
  partitions = []
  p = list.inject(nil) do |part, elem|
    if part && continue?(part, elem)
      fill(part, elem)
      part
    else
      partitions << part if part
      emit(elem)
    end
  end
  partitions << p if p
  partitions
end