Class: Ezframe::Database
Instance Attribute Summary collapse
-
#sequel ⇒ Object
Returns the value of attribute sequel.
Instance Method Summary collapse
- #connect ⇒ Object
- #create_table(table_name, dbtype_h) ⇒ Object
- #dataset(table_name) ⇒ Object
- #exec(sql) ⇒ Object
-
#initialize(dbfile = nil) ⇒ Database
constructor
A new instance of Database.
- #insert(table_name, val_h) ⇒ Object
- #update(dataset, val_h) ⇒ Object
Constructor Details
#initialize(dbfile = nil) ⇒ Database
Returns a new instance of Database.
8 9 10 11 |
# File 'lib/ezframe/database.rb', line 8 def initialize(dbfile = nil) @dbfile = dbfile connect end |
Instance Attribute Details
#sequel ⇒ Object
Returns the value of attribute sequel.
6 7 8 |
# File 'lib/ezframe/database.rb', line 6 def sequel @sequel end |
Instance Method Details
#connect ⇒ Object
13 14 15 16 17 |
# File 'lib/ezframe/database.rb', line 13 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 |
#create_table(table_name, dbtype_h) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/ezframe/database.rb', line 27 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 |
#dataset(table_name) ⇒ Object
23 24 25 |
# File 'lib/ezframe/database.rb', line 23 def dataset(table_name) @sequel[table_name.to_sym] end |
#exec(sql) ⇒ Object
19 20 21 |
# File 'lib/ezframe/database.rb', line 19 def exec(sql) @sequel.run(sql) end |
#insert(table_name, val_h) ⇒ Object
53 54 55 |
# File 'lib/ezframe/database.rb', line 53 def insert(table_name, val_h) dataset(table_name).insert(val_h) end |