Class: OklahomaMixer::Cursor
- Inherits:
-
Object
- Object
- OklahomaMixer::Cursor
- Defined in:
- lib/oklahoma_mixer/cursor.rb,
lib/oklahoma_mixer/cursor/c.rb
Overview
:nodoc:
Defined Under Namespace
Modules: C
Instance Method Summary collapse
- #delete ⇒ Object
- #free ⇒ Object
-
#initialize(b_tree_pointer, start = nil, reverse = false) ⇒ Cursor
constructor
A new instance of Cursor.
- #key ⇒ Object
- #key_and_value ⇒ Object
- #next ⇒ Object
- #value ⇒ Object
Constructor Details
#initialize(b_tree_pointer, start = nil, reverse = false) ⇒ Cursor
Returns a new instance of Cursor.
6 7 8 9 10 11 12 13 14 |
# File 'lib/oklahoma_mixer/cursor.rb', line 6 def initialize(b_tree_pointer, start = nil, reverse = false) @pointer = C.new(b_tree_pointer) @reverse = reverse if start C.jump(@pointer, *start) else C.send(@reverse ? :last : :first, @pointer) end end |
Instance Method Details
#delete ⇒ Object
38 39 40 |
# File 'lib/oklahoma_mixer/cursor.rb', line 38 def delete C.out(@pointer) end |
#free ⇒ Object
42 43 44 |
# File 'lib/oklahoma_mixer/cursor.rb', line 42 def free C.del(@pointer) end |
#key ⇒ Object
16 17 18 |
# File 'lib/oklahoma_mixer/cursor.rb', line 16 def key C.read_from_func(:key, @pointer) end |
#key_and_value ⇒ Object
24 25 26 27 28 29 30 31 32 |
# File 'lib/oklahoma_mixer/cursor.rb', line 24 def key_and_value Utilities.temp_xstr do |key| Utilities.temp_xstr do |value| if C.rec(@pointer, key.pointer, value.pointer) [key.to_s, value.to_s] end end end end |
#next ⇒ Object
34 35 36 |
# File 'lib/oklahoma_mixer/cursor.rb', line 34 def next C.send(@reverse ? :prev : :next, @pointer) end |
#value ⇒ Object
20 21 22 |
# File 'lib/oklahoma_mixer/cursor.rb', line 20 def value C.read_from_func(:val, @pointer) end |