Class: SBDB::Cursor
Constant Summary collapse
- NEXT =
Bdb::DB_NEXT
- FIRST =
Bdb::DB_FIRST
- LAST =
Bdb::DB_LAST
- PREV =
Bdb::DB_PREV
- SET =
Bdb::DB_SET
Instance Attribute Summary collapse
-
#db ⇒ Object
readonly
Returns the value of attribute db.
Class Method Summary collapse
Instance Method Summary collapse
- #bdb_object ⇒ Object
- #close ⇒ Object
- #count ⇒ Object
- #each(key = nil, val = nil, flg = nil, nxt = nil) {|ent| ... } ⇒ Object
- #first(key = nil, val = nil) ⇒ Object
- #get(key, val, flg) ⇒ Object
-
#initialize(ref) ⇒ Cursor
constructor
A new instance of Cursor.
- #last(key = nil, val = nil) ⇒ Object
- #next(key = nil, val = nil) ⇒ Object
- #prev(key = nil, val = nil) ⇒ Object
- #reverse(key = nil, val = nil, &exe) ⇒ Object
Constructor Details
#initialize(ref) ⇒ Cursor
Returns a new instance of Cursor.
46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/sbdb/cursor.rb', line 46 def initialize ref @cursor, @db = *case ref when Cursor then [ref.bdb_object.dup, ref.db] when Bdb::Db::Cursor then [ref] else [ref.bdb_object.cursor( nil, 0), ref] end if [Recno, Queue].any? {|dbt| dbt === @db } def get *ps key, val = @cursor.get( *ps) key.nil? ? nil : [key.unpack('I')[0], val] end end end |
Instance Attribute Details
#db ⇒ Object (readonly)
Returns the value of attribute db.
10 11 12 |
# File 'lib/sbdb/cursor.rb', line 10 def db @db end |
Class Method Details
.new(*ps) ⇒ Object
38 39 40 41 42 43 44 |
# File 'lib/sbdb/cursor.rb', line 38 def self.new *ps ret = obj = super( *ps) begin ret = yield obj ensure obj.close end if block_given? ret end |
Instance Method Details
#bdb_object ⇒ Object
13 14 15 |
# File 'lib/sbdb/cursor.rb', line 13 def bdb_object @cursor end |
#close ⇒ Object
16 17 18 |
# File 'lib/sbdb/cursor.rb', line 16 def close @cursor.close end |
#count ⇒ Object
22 23 24 |
# File 'lib/sbdb/cursor.rb', line 22 def count @cursor.count end |
#each(key = nil, val = nil, flg = nil, nxt = nil) {|ent| ... } ⇒ Object
64 65 66 67 68 69 70 71 72 |
# File 'lib/sbdb/cursor.rb', line 64 def each key = nil, val = nil, flg = nil, nxt = nil return Enumerator.new( self, :each, key, val, flg, nxt) unless block_given? nxt ||= NEXT ent = get key, val, flg || FIRST return unless ent yield *ent yield *ent while ent = get( key, val, nxt) nil end |
#first(key = nil, val = nil) ⇒ Object
25 26 27 |
# File 'lib/sbdb/cursor.rb', line 25 def first key = nil, val = nil get key, val, FIRST end |
#get(key, val, flg) ⇒ Object
19 20 21 |
# File 'lib/sbdb/cursor.rb', line 19 def get key, val, flg @cursor.get key, val, flg end |
#last(key = nil, val = nil) ⇒ Object
28 29 30 |
# File 'lib/sbdb/cursor.rb', line 28 def last key = nil, val = nil get key, val, LAST end |
#next(key = nil, val = nil) ⇒ Object
31 32 33 |
# File 'lib/sbdb/cursor.rb', line 31 def next key = nil, val = nil get key, val, NEXT end |
#prev(key = nil, val = nil) ⇒ Object
34 35 36 |
# File 'lib/sbdb/cursor.rb', line 34 def prev key = nil, val = nil get key, val, PREV end |
#reverse(key = nil, val = nil, &exe) ⇒ Object
60 61 62 |
# File 'lib/sbdb/cursor.rb', line 60 def reverse key = nil, val = nil, &exe each key, val, LAST, PREV, &exe end |