module DataStore

Constants

VERSION

Public Class Methods

configuration() click to toggle source

The configuration object. See {Configuration}

# File lib/data_store.rb, line 54
def configuration
  @configuration ||= Configuration.new
end
configure() { |configuration| ... } click to toggle source

Configure DataStore

Example

DataStore.configure |config|
  config.prefix   = 'data_store_'
  config.database = :postgres
end
# File lib/data_store.rb, line 48
def configure
  yield(configuration)
  define_base_class
end
create_data_stores() click to toggle source

Definition of the data_stores table

# File lib/data_store/definitions.rb, line 4
def self.create_data_stores
  Sequel.migration do
    change do
      create_table(:data_stores) do
        primary_key :id
        Integer     :identifier, unique: true, null: false
        String      :name, null: false
        String      :type, null: false
        String      :description
        String      :data_type
        String      :compression_schema
        Integer     :frequency
        Integer     :maximum_datapoints
        DateTime    :created_at
        DateTime    :updated_at
        index       :identifier
      end
    end
  end
end
create_table(settings) click to toggle source
# File lib/data_store/definitions.rb, line 25
def self.create_table(settings)
  name           = settings[:name]
  original_value = settings[:original_value] || false
  data_type      = settings[:data_type]

  Sequel.migration do
    change do
      create_table(name) do
        primary_key :id
        column :value, data_type
        column :original_value, data_type if original_value
        column :created, :double
        index  :created
      end
    end
  end
end

Private Class Methods

define_base_class() click to toggle source
# File lib/data_store.rb, line 60
def define_base_class
  connector = DataStore::Connector.new
  set_logger(connector.database)
  connector.create_table!
  suppress_warnings { self.const_set(:Base, Class.new(Sequel::Model(connector.dataset)))}
  load 'base.rb'
  connector.database.disconnect
end
set_logger(db) click to toggle source
# File lib/data_store.rb, line 69
def set_logger(db)
  if configuration.enable_logging
    logger = Logger.new(configuration.log_file)
    logger.level = configuration.log_level
    db.logger = logger
  end
end