Class: LocalConnectionCache
- Inherits:
-
Object
- Object
- LocalConnectionCache
- Defined in:
- lib/dropzone/command.rb
Overview
This speeds up the CLI considerably, without any opportunity cost, so it’s included for the sake of convenience
Instance Method Summary collapse
-
#initialize ⇒ LocalConnectionCache
constructor
A new instance of LocalConnectionCache.
- #invalidate_listtransactions! ⇒ Object
- #listtransactions(*key) ⇒ Object
- #listtransactions!(addr, is_confirmed, value, is_testing) ⇒ Object
- #tx_by_id(id, is_testing) ⇒ Object
- #tx_by_id!(id, hash, is_testing) ⇒ Object
Constructor Details
#initialize ⇒ LocalConnectionCache
Returns a new instance of LocalConnectionCache.
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/dropzone/command.rb', line 6 def initialize config_dir = File.join(Dir.home, ".dropzone") Dir.mkdir config_dir, 0700 unless Dir.exists? config_dir @persistence = Sequel.connect 'sqlite://%s/cache.db' % config_dir @persistence.create_table :transactions do primary_key :id String :txid String :receiver_addr String :sender_addr File :data Boolean :is_testing Integer :block_height end unless @persistence.table_exists?(:transactions) @transactions = @persistence[:transactions] @listtransactions = {} end |
Instance Method Details
#invalidate_listtransactions! ⇒ Object
46 47 48 |
# File 'lib/dropzone/command.rb', line 46 def invalidate_listtransactions! @listtransactions = {} end |
#listtransactions(*key) ⇒ Object
38 39 40 |
# File 'lib/dropzone/command.rb', line 38 def listtransactions(*key) @listtransactions.has_key?(key) ? @listtransactions[key] : nil end |
#listtransactions!(addr, is_confirmed, value, is_testing) ⇒ Object
42 43 44 |
# File 'lib/dropzone/command.rb', line 42 def listtransactions!(addr, is_confirmed, value, is_testing) @listtransactions[ [addr, is_confirmed, is_testing] ] = value end |
#tx_by_id(id, is_testing) ⇒ Object
26 27 28 |
# File 'lib/dropzone/command.rb', line 26 def tx_by_id(id, is_testing) record_to_tx transactions.where(txid: id, is_testing: is_testing).first end |
#tx_by_id!(id, hash, is_testing) ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/dropzone/command.rb', line 30 def tx_by_id!(id, hash, is_testing) transactions.insert(hash.tap{ |et| et[:data] = Sequel.blob et[:data] et[:txid] = id et[:is_testing] = is_testing }).to_s end |