Class: LocalConnectionCache

Inherits:
Object
  • Object
show all
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

Constructor Details

#initializeLocalConnectionCache

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