Sha256: 3621fd8f4730fecc1a0903d43ee9291c28d6e69846003c26a32b9e71a9d332a4

Contents?: true

Size: 1.07 KB

Versions: 1

Compression:

Stored size: 1.07 KB

Contents

# frozen_string_literal: true

module Ezframe
  class Model
    class << self

      def init_column_sets
        @base_column_sets = ColumnSets.new
        @base_column_sets.load_files('./columns')
      end  

      def init_db
        @base_db = Database.new
      end

      def init
        unless @base_column_sets
          init_column_sets
          init_db
        end
      end

      def get_clone
        
        new(@base_column_sets.deep_dup, @base_db)
      end
    end

    attr_accessor :column_sets, :db

    def initialize(column_sets, db)
      @column_sets, @db = column_sets, db
      @column_sets.model = self
    end

    def create_tables
      @column_sets.tables.each do |table_name, column_set|
        begin
          create_one_table(table_name, column_set)
        rescue => e
          mylog("*** #{e.inspect}\n#{$@.inspect}")
        end
      end
    end

    def create_one_table(table_name, column_set)
      col_h = column_set.get_hash(:db_type)
      mylog "create_one_table: col_h=#{col_h.inspect}"
      @db.create_table(table_name, col_h)
    end  
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ezframe-0.1.1 lib/ezframe/model.rb