Class: DataStore::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/data_store.rb,
lib/data_store/base.rb

Overview

Base class will be redefined during configure In order to assign Sequel::Model behaviour to it with the correctly defined (or configured) database connector

Instance Method Summary collapse

Instance Method Details

#after_createObject



15
16
17
18
# File 'lib/data_store/base.rb', line 15

def after_create
  drop_tables!
  create_tables!
end

#before_destroyObject



20
21
22
# File 'lib/data_store/base.rb', line 20

def before_destroy
  drop_tables!
end

#before_saveObject

Set the default values with the globally defined values

* :compression_schema
* :frequency
* :maximum_datapoints
* :data_type

See Configuration



11
12
13
# File 'lib/data_store/base.rb', line 11

def before_save
  set_default_values  
end

#compression_schemaObject

Convert serialized compression schema as a string back into the array object itself. For example: “(5,4,3)” => [5,4,3]



26
27
28
29
30
31
32
33
34
# File 'lib/data_store/base.rb', line 26

def compression_schema
 value = self.values[:compression_schema]
 if value.nil?
   value = []
 else
   value = value.gsub(/\[|\]|\(|\)/,'').split(',').map(&:to_i) unless value.is_a?(Array)
 end
 value
end

#table_namesObject



36
37
38
39
40
41
42
43
44
# File 'lib/data_store/base.rb', line 36

def table_names
  names  = [table_name]
  factor = 1
  compression_schema.each do |compression|
    factor = (factor * compression)
    names << (table_name.to_s + '_' + factor.to_s).to_sym
  end
  names
end

#time_bordersObject



46
47
48
49
50
51
52
53
54
# File 'lib/data_store/base.rb', line 46

def time_borders
  width = time_width
  borders = [width]
  compression_schema.each do |compression|
    width =  width * compression
    borders << width
  end
  borders
end

#time_widthObject



56
57
58
# File 'lib/data_store/base.rb', line 56

def time_width
  frequency * maximum_datapoints
end