Sha256: 54f330e8d69b4e118f3e5d9b81ace0ae3c4499413b15d0469fd8d347de4c52cb
Contents?: true
Size: 1.24 KB
Versions: 1
Compression:
Stored size: 1.24 KB
Contents
module RemoteDb module Concerns module Configurable extend ActiveSupport::Concern module ClassMethods def configure(config_hash = nil) if config_hash config_hash.each do |k,v| setter = "#{k}=" if configuration.respond_to?(setter ) configuration.send(setter , v) end end end yield(configuration) if block_given? end def configuration @configuration ||= RemoteDb::Configuration.new end def load_models! define_base_record send(:require_models) if respond_to?(:require_models) end private def define_base_record connection_spec = configuration.connection_spec klass = Class.new(ActiveRecord::Base) do self.abstract_class = true # Connect via custom db settings establish_connection(connection_spec) # Force model to be ready-only include Concerns::ReadOnlyModel # Scope which columns are exposed include Concerns::RestrictedColumns end self.const_set 'BaseRecord', klass end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
remote_db-0.0.1 | lib/remote_db/concerns/configurable.rb |