Sha256: 580e2d220ccbac06784fa3153fd29f8ecaa783f91c5ee45d9d858217fabd543a
Contents?: true
Size: 1.94 KB
Versions: 1
Compression:
Stored size: 1.94 KB
Contents
# frozen_string_literal: true require "sdbm" require "securerandom" require "date" require "csv" require "ostruct" require "fileutils" require "oj" require "msgpack" require "thread" require_relative "dddr/sdbm" require_relative "dddr/sequel" require_relative "dddr/version" module Dddr ENTITIES = [] def self.configuration @configuration ||= OpenStruct.new end class MessagePack def self.load(obj) ::MessagePack.unpack(obj) end def self.dump(obj) obj.to_msgpack end end class Serializer def initialize(engine) @engine = engine end def dump(obj) @engine.dump(obj) end def load(obj) @engine.load(obj) end end def self.configure configuration.env = ENV["DDDR_ENV"] || "development" configuration.data_dir = "/var/dddr" configuration.engine = :sdbm configuration.serializer = MessagePack configuration.container = nil yield(configuration) if block_given? end class Error < StandardError; end module Entity def self.create_properties(*names) names.each do |name| attr_accessor name end end def self.included(base) if Dddr.configuration.engine == :sdbm Dddr::ENTITIES << base include Dddr::Sdbm base.extend(Dddr::Sdbm::ClassMethods) end if Dddr.configuration.engine == :sequel include Dddr::Sequel base.extend(Dddr::Sequel::ClassMethods) end end def to_hash instance_variables.each_with_object({}) do |var, hash| hash[var.to_s.delete("@").to_sym] = instance_variable_get(var) end end def from_hash(uid, data_hash) self.uid = uid data_hash.each do |attribute, value| send(:"#{attribute}=", value) if respond_to?(:"#{attribute}=") end end attr_accessor :uid, :created_at, :last_updated_at, :deleted, :deleted_at def new? created_at.nil? end end end Dddr.configure
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dddr-2.6.0 | lib/dddr.rb |