Class: Grit::GitRuby::Internal::FileWindow
- Inherits:
-
Object
- Object
- Grit::GitRuby::Internal::FileWindow
- Defined in:
- lib/grit/git-ruby/internal/file_window.rb
Instance Method Summary collapse
- #[](*idx) ⇒ Object
-
#initialize(file, version = 1) ⇒ FileWindow
constructor
A new instance of FileWindow.
- #unmap ⇒ Object
Constructor Details
#initialize(file, version = 1) ⇒ FileWindow
Returns a new instance of FileWindow.
16 17 18 19 20 21 22 23 24 |
# File 'lib/grit/git-ruby/internal/file_window.rb', line 16 def initialize(file, version = 1) @file = file @offset = nil if version == 2 @global_offset = 8 else @global_offset = 0 end end |
Instance Method Details
#[](*idx) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/grit/git-ruby/internal/file_window.rb', line 30 def [](*idx) idx = idx[0] if idx.length == 1 case idx when Range offset = idx.first len = idx.last - idx.first + idx.exclude_end? ? 0 : 1 when Fixnum offset = idx len = nil when Array offset, len = idx else raise RuntimeError, "invalid index param: #{idx.class}" end if @offset != offset @file.seek(offset + @global_offset) end @offset = offset + len ? len : 1 if not len @file.read(1).getord(0) else @file.read(len) end end |
#unmap ⇒ Object
26 27 28 |
# File 'lib/grit/git-ruby/internal/file_window.rb', line 26 def unmap @file = nil end |