Sha256: a62a81508de07ab951c7140ace58c5ac2bcae86a5f3eef08003386b0d3aaf232

Contents?: true

Size: 1 KB

Versions: 3

Compression:

Stored size: 1 KB

Contents

module Arcade

  # Arcade::Init.connect  environment
  #  --------------------------------
  # initializes the database connection
  # and returns the active database handle
  #
  # The database cannot switched later
  #
  #
  # Arcade::Init.db
  #  --------------
  # returns an instance of the database handle
  #
  class Init
    extend Dry::Core::ClassAttributes
    defines :db    # database handle

    def self.connect e= :development

      env =  if e.to_s =~ /^p/
               :production
             elsif e.to_s =~ /^t/
               :test
             else
               :development
             end
      #      set the class attribute

      db Database.new(env)
    end
  end

  # Provides method  `db` to every Model class
  class Base
    def self.db
      Init.db
    end
    # expose db  to instance methods as well
    private  define_method :db, &method(:db)
    private_class_method  :db
  end
  # Provides method  `db` to every Query-Object
  class Query
    def db
      Init.db
    end
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
arcadedb-0.5.0 lib/arcade/init.rb
arcadedb-0.4 lib/init.rb
arcadedb-0.3.3 lib/init.rb