Class: RubyModKit::OffsetDiff
- Inherits:
-
Object
- Object
- RubyModKit::OffsetDiff
- Defined in:
- lib/ruby_mod_kit/offset_diff.rb
Overview
The class of offset differences.
Instance Method Summary collapse
Constructor Details
#initialize ⇒ void
13 14 15 16 |
# File 'lib/ruby_mod_kit/offset_diff.rb', line 13 def initialize @diffs = {} @offsets = [] end |
Instance Method Details
#[](src_offset) ⇒ Integer
22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/ruby_mod_kit/offset_diff.rb', line 22 def [](src_offset) dst_offset = src_offset @offsets.each do |offset| diff = @diffs[offset] break if offset > src_offset break if offset == src_offset && diff < 0 dst_offset += diff end dst_offset end |
#insert(src_offset, new_diff) ⇒ void
This method returns an undefined value.
40 41 42 43 44 45 46 47 |
# File 'lib/ruby_mod_kit/offset_diff.rb', line 40 def insert(src_offset, new_diff) if @diffs[src_offset] @diffs[src_offset] += new_diff else @diffs[src_offset] = new_diff @offsets.insert(@offsets.bsearch_index { _1 > src_offset } || -1, src_offset) end end |