Class: Array

Inherits:
Object
  • Object
show all
Defined in:
lib/rmmseg/rule_helper.rb

Instance Method Summary collapse

Instance Method Details

#similar_elements(index = 0) ⇒ Object

Return an array of similar elements neighbouring to each other. e.g.

[1,2,2,2,3,3,5].similar_elements(1) => [2,2,2]

and (maybe more useful example)

["Kid", "Kily", "KDE", "Foo", "Food"].similar_elements { |a, b|
  a[0] == b[0]
} => ["Kid", "Kily", "KDE"]


9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/rmmseg/rule_helper.rb', line 9

def similar_elements(index=0)
  i = index+1
  loop do
    break if i >= self.length
    if block_given?
      break unless yield(self[index], self[i])
    else
      break if self[index] == self[i]
    end
    i += 1
  end
  self[index...i]
end