Sha256: 33dc9204de3de9150cded5dff3f3aa33fb2a3c12ea738228a04ac39e6318c2a0
Contents?: true
Size: 1.66 KB
Versions: 2
Compression:
Stored size: 1.66 KB
Contents
# frozen_string_literal: true require "logger" module Ezframe class Database attr_accessor :sequel def initialize(dbfile = nil) @dbfile = dbfile connect end def connect @dbfile ||= ENV["EZFRAME_DB"] || Config[:database] || "sqlite://db/devel.sqlite" # puts "Database.connect: dbfile=#{@dbfile}" @sequel = Sequel.connect(@dbfile, loggers: [Logger.new($stdout)]) end def exec(sql) @sequel.run(sql) end def dataset(table_name) @sequel[table_name.to_sym] end def create_table(table_name, dbtype_h) %w[id created_at updated_at].each do |key| dbtype_h.delete(key.to_sym) end # puts "create_table: #{table_name}" if @dbfile.index("postgres") @sequel.create_table(table_name) do primary_key :id, identity: true dbtype_h.each do |key, dbtype| column(key, dbtype) end column(:created_at, :timestamp, default: Sequel::CURRENT_TIMESTAMP) column(:updated_at, :timestamp, default: Sequel::CURRENT_TIMESTAMP) end else @sequel.create_table(table_name) do primary_key :id, auto_increment: true dbtype_h.each do |key, dbtype| column(key, dbtype) end column(:created_at, :timestamp, default: Sequel::CURRENT_TIMESTAMP) column(:updated_at, :timestamp, default: Sequel::CURRENT_TIMESTAMP) end end end def insert(table_name, val_h) dataset(table_name).insert(val_h) end def update(dataset, val_h) val_h.update({ updated_at: Time.now() }) dataset.update(val_h) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ezframe-0.1.1 | lib/ezframe/database.rb |
ezframe-0.1.0 | lib/ezframe/database.rb |