lib/rom.rb in rom-0.4.2 vs lib/rom.rb in rom-0.5.0

- old
+ new

@@ -5,28 +5,31 @@ require 'rom/version' require 'rom/support/registry' require 'rom/header' require 'rom/relation' -require 'rom/transformer' require 'rom/mapper' require 'rom/reader' +require 'rom/processor/transproc' + require 'rom/commands' require 'rom/adapter' require 'rom/repository' + +require 'rom/config' require 'rom/env' -require 'rom/ra' +require 'rom/global' +require 'rom/setup' -require 'rom/boot' - module ROM EnvAlreadyFinalizedError = Class.new(StandardError) CommandError = Class.new(StandardError) TupleCountMismatchError = Class.new(CommandError) + NoRelationError = Class.new(StandardError) InvalidOptionError = Class.new(StandardError) do def initialize(option, valid_values) super("#{option} should be one of #{valid_values.inspect}") end @@ -34,69 +37,9 @@ Schema = Class.new(Registry) RelationRegistry = Class.new(Registry) ReaderRegistry = Class.new(Registry) - # Starts the setup process for schema, relations and mappers - # - # @param [Hash] options repository URIs - # - # @return [Boot] boot object - # - # @api public - def self.setup(options, &block) - adapters = options.each_with_object({}) do |(name, uri), hash| - hash[name] = Adapter.setup(uri) - end + EMPTY_HASH = {}.freeze - repositories = adapters.each_with_object({}) do |(name, adapter), hash| - hash[name] = Repository.new(adapter) - end - - boot = Boot.new(repositories) - - if block - boot.instance_exec(&block) - boot.finalize - else - @boot = boot - end - end - - # @api public - def self.schema(&block) - boot.schema(&block) - end - - # @api public - def self.relation(*args, &block) - boot.relation(*args, &block) - end - - # @api public - def self.commands(*args, &block) - boot.commands(*args, &block) - end - - # @api public - def self.mappers(*args, &block) - boot.mappers(*args, &block) - end - - # @api public - def self.env - @env - end - - # @api public - def self.finalize - @env = boot.finalize - @boot = nil - self - end - - # @api private - def self.boot - @boot - end - + extend Global end