Sha256: a799ef41b2e8b2257681fecdc661dbb72dc59b8c3202d726f1fb72ece1a15333
Contents?: true
Size: 1.48 KB
Versions: 1
Compression:
Stored size: 1.48 KB
Contents
require 'active_record' module Bcdatabase module ActiveRecord module SchemaQualifiedTables def self.included(clz) clz.instance_eval do extend ClassMethods if self.respond_to?(:class_attribute) class_attribute :schema elsif self.respond_to?(:class_inheritable_accessor) class_inheritable_accessor :schema else fail "schema_qualified_tables is apparently not compatible with this version of ActiveRecord. Please report this as a bug." end end end module ClassMethods attr_accessor :schemas attr_writer :schema def table_name unless abstract_class? if schema_name "#{schema_name}.#{super}" else super end end end def sequence_name unless abstract_class? if schema_name && (super =~ /^#{schema_name}\./).nil? "#{schema_name}.#{super}" else super end end end # Support pre-rails 3.2 style setter def set_schema(schema) self.schema = schema end def schemas @schemas ||= { } end protected def schema_name ::ActiveRecord::Base.schemas[self.schema] || self.schema end end end end end ::ActiveRecord::Base.send(:include, Bcdatabase::ActiveRecord::SchemaQualifiedTables)
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
schema_qualified_tables-1.1.0 | lib/bcdatabase/active_record/schema_qualified_tables_override_getters.rb |