Sha256: bbc1e7b392c93fbf4f9401fffba315363e861d829104b98770c7ca7f2dd421b0
Contents?: true
Size: 1.62 KB
Versions: 1
Compression:
Stored size: 1.62 KB
Contents
module ROM module Rails class Configuration attr_reader :config, :setup, :env def self.build(app) config = rewrite_config(app) new(config) end def self.rewrite_config(app) root = app.config.root config = app.config.database_configuration[::Rails.env].symbolize_keys adapter = config[:adapter] database = config[:database] adapter = "sqlite" if adapter == "sqlite3" { default: "#{adapter}://#{root}/#{database}" } end def initialize(config) @config = config @setup = ROM.setup(@config.symbolize_keys) end def finalize @env = setup.finalize end end class Railtie < ::Rails::Railtie initializer "rom.configure" do |app| config.rom = ROM::Rails::Configuration.build(app) end initializer "rom.load_schema" do |app| require schema_file if schema_file.exist? end initializer "rom.load_relations" do |app| relation_files.each { |file| require file } end initializer "rom.load_mappers" do |app| mapper_files.each { |file| require file } end config.after_initialize do |app| app.config.rom.finalize ApplicationController.send(:include, ControllerExtension) end private def schema_file root.join('db/rom/schema.rb') end def relation_files Dir[root.join('app/relations/**/*.rb').to_s] end def mapper_files Dir[root.join('app/mappers/**/*.rb').to_s] end def root ::Rails.root end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rom-rails-0.0.1 | lib/rom/rails/railtie.rb |