Class: XRBP::NodeStore::SQLDB::Ledgers

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/xrbp/nodestore/sqldb.rb

Instance Method Summary collapse

Constructor Details

#initialize(sql_db) ⇒ Ledgers

Returns a new instance of Ledgers.



34
35
36
# File 'lib/xrbp/nodestore/sqldb.rb', line 34

def initialize(sql_db)
  @sql_db = sql_db
end

Instance Method Details

#allObject

TODO: remove memoization, define first(n), last(n) methods



66
67
68
69
# File 'lib/xrbp/nodestore/sqldb.rb', line 66

def all
  @all ||= @sql_db.ledger_db.execute("select * from ledgers order by LedgerSeq asc")
                            .collect { |row| from_db(row) }
end

#between(before, after) ⇒ Object



38
39
40
41
42
43
# File 'lib/xrbp/nodestore/sqldb.rb', line 38

def between(before, after)
  @sql_db.ledger_db.execute("select * from ledgers where ClosingTime >= ? and ClosingTime <= ?",
                                                                             before.to_xrp_time,
                                                                              after.to_xrp_time)
                   .collect { |row| from_db(row) }
end

#eachObject



55
56
57
58
59
# File 'lib/xrbp/nodestore/sqldb.rb', line 55

def each
  all.each do |row|
    yield row
  end
end

#hash_for_seq(seq) ⇒ Object



45
46
47
# File 'lib/xrbp/nodestore/sqldb.rb', line 45

def hash_for_seq(seq)
  @sql_db.ledger_db.execute("select LedgerHash from ledgers where LedgerSeq = ?", seq).first.first
end

#lastObject



61
62
63
# File 'lib/xrbp/nodestore/sqldb.rb', line 61

def last
  all.last
end

#sizeObject Also known as: count



49
50
51
# File 'lib/xrbp/nodestore/sqldb.rb', line 49

def size
  @sql_db.ledger_db.execute("select count(*) from ledgers").first.first
end