fix string slicing under 1.9 after short writes
[rainbows.git] / lib / rainbows / byte_slice.rb
blob09d118882b91b7d75c5ed0fdc67f9c7bf4d0a756
1 # -*- encoding: binary -*-
2 module Rainbows::ByteSlice
3   if String.method_defined?(:encoding)
4     def byte_slice(buf, range)
5       if buf.encoding != Encoding::BINARY
6         buf.dup.force_encoding(Encoding::BINARY).slice!(range)
7       else
8         buf[range]
9       end
10     end
11   else
12     def byte_slice(buf, range)
13       buf[range]
14     end
15   end
16 end