Class: Helm::Persister

Inherits:
Object
  • Object
show all
Defined in:
lib/helm/persister.rb

Direct Known Subclasses

Helm::Persisters::Server

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(db_string) ⇒ Persister

Returns a new instance of Persister.



5
6
7
# File 'lib/helm/persister.rb', line 5

def initialize(db_string)
  @db = Helm.databases[db_string]
end

Instance Attribute Details

#dbObject

Returns the value of attribute db.



8
9
10
# File 'lib/helm/persister.rb', line 8

def db
  @db
end

Instance Method Details

#datasetObject



19
20
21
# File 'lib/helm/persister.rb', line 19

def dataset
  @db[table_name]
end

#insert_or_update(row) ⇒ Object



23
24
25
# File 'lib/helm/persister.rb', line 23

def insert_or_update(row)
  dataset.replace(slice(row))
end

#slice(hash) ⇒ Object



10
11
12
13
14
15
16
17
# File 'lib/helm/persister.rb', line 10

def slice(hash)
  Hash[
    columns.zip(
      hash.values_at(*columns).zip(
        hash.values_at(*(columns.map(&:to_s)))
  ).map{|sym_val, str_val| sym_val || str_val })
  ]
end