lib/gepub/sorted_array.rb
class SortedArray < Array
def initialize(*args, &sort_by)
@sort_by = sort_by || Proc.new { |x,y| x <=> y }
super(*args)
self.sort!() &sort_by
end
def insert(_i, v)
insert_before = index(find { |x| @sort_by.call(x, v) == 1 })
super(insert_before ? insert_before : -1, v)
end
def <<(v)
insert(0, v)
end
alias push <<
alias unshift <<
end