Class: Array

Inherits:
Object show all
Defined in:
lib/code.rb,
lib/array/bsearch_index.rb

Instance Method Summary collapse

Instance Method Details

#bsearch_indexObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/array/bsearch_index.rb', line 3

def bsearch_index
  return to_enum(__method__) unless block_given?
  from = 0
  to = size - 1
  satisfied = nil
  while from <= to do
    midpoint = (from + to).div(2)
    cur_index = midpoint
    result = yield(cur = self[midpoint])
    case result
    when Numeric
      return cur_index if result == 0
      result = result < 0
    when true
      satisfied = cur
      satisfied_index = cur_index
    when nil, false
      # nothing to do
    else
      raise TypeError, "wrong argument type #{result.class} (must be numeric, true, false or nil)"
    end
    if result
      to = midpoint - 1
    else
      from = midpoint + 1
    end
  end
  satisfied_index
end

#join_code(delimiter = "") ⇒ Code

Parameters:

  • delimiter (Code, String) (defaults to: "")

Returns:



151
152
153
154
155
156
# File 'lib/code.rb', line 151

def join_code(delimiter = "")
  self.reduce do |r, self_i|
    code << r << delimiter << self_i
  end or
  code
end