Module: DS::ArrayX

Defined in:
lib/ds/ext/array_x.rb

Instance Method Summary collapse

Instance Method Details

#duplications?Boolean

Checks if array has duplicates.

Returns:

  • (Boolean)


26
27
28
# File 'lib/ds/ext/array_x.rb', line 26

def duplications?
  size != uniq.size 
end

#sorted?(order = :any) ⇒ Boolean

Checks if array is already sorted.

Returns:

  • (Boolean)


5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/ds/ext/array_x.rb', line 5

def sorted?(order=:any)
  return true if size < 2
  
  if size == 2
    return false if self[0] > self[1] and order == :asc
    return false if self[0] < self[1] and order == :desc
  else
    case order
    when :asc
      (size-2).times{ |i| return false if self[i] > self[i+1] }
    when :desc
      (size-2).times{ |i| return false if self[i] < self[i+1] }
    else
      return (self[0] < self[1])? sorted?(:asc) : sorted?(:desc) 
    end
  end

  true
end

#tailObject

Returns array tail.



31
32
33
# File 'lib/ds/ext/array_x.rb', line 31

def tail
  self[1..-1]
end