Class: Enumerable::TriggerPartitions
- Defined in:
- lib/util/trigger_partition.rb
Direct Known Subclasses
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 |