Sha256: aebd14c650a1f60d5cc66ea33ba638f5e817bd4fd51bb1f82e5db03e3a24e594

Contents?: true

Size: 1.05 KB

Versions: 16

Compression:

Stored size: 1.05 KB

Contents

# encoding: utf-8

module Rango
  module ORM
    class Adapter
      def initialize
        Project.orm = self
      end

      # @return [String] "datamapper"
      def name
        self.class.name.split("::").last
      end

      def load
        raise NotImplementedError, "You have to implement Adapter#load method!"
      end

      def connect
        raise NotImplementedError, "You have to implement Adapter#connect method!"
      end

      # DB[:table]
      attr_reader :connection

      def form_for(*)
        raise NotImplementedError
      end

      def finish
        Rango.logger.info("Database connection established with #{Project.orm} and database #{path}")
      end

      protected
      def try_connect(&block)
        adapter  = Project.settings.database_adapter
        database = Project.settings.database_name
        block.call(adapter, database)
      rescue Exception => exception
        Rango.logger.exception(exception)
        Rango.logger.fatal("Database connection can't be established, exiting")
        exit 1
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
rango-0.1.1.2.10 lib/rango/orm/adapter.rb
rango-0.1.1.2.9 lib/rango/orm/adapter.rb
rango-0.1.1.2.8 lib/rango/orm/adapter.rb
rango-0.1.1.2.7 lib/rango/orm/adapter.rb
rango-0.1.1.2.6 lib/rango/orm/adapter.rb
rango-0.1.1.2.5 lib/rango/orm/adapter.rb
rango-0.1.1.2.4 lib/rango/orm/adapter.rb
rango-0.1.1.2.3 lib/rango/orm/adapter.rb
rango-0.1.1.2.2 lib/rango/orm/adapter.rb
rango-0.1.1.2.1 lib/rango/orm/adapter.rb
rango-0.1.1.2 lib/rango/orm/adapter.rb
rango-0.1.1.1 lib/rango/orm/adapter.rb
rango-0.1.1 lib/rango/orm/adapter.rb
rango-0.1.0 lib/rango/orm/adapter.rb
rango-0.0.6 lib/rango/orm/adapter.rb
rango-0.1.pre lib/rango/orm/adapter.rb