Sha256: 996f8131ea97a12d11a37ebd97c484e4aec9bb878eb080e287a28c5c6a40c4c9
Contents?: true
Size: 1.62 KB
Versions: 1
Compression:
Stored size: 1.62 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_prepended?(schema_name, super) super else "#{schema_name}.#{super}" end end end def sequence_name unless abstract_class? if schema_name_prepended?(schema_name, super) super else "#{schema_name}.#{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_prepended?(name, super_klass) !(name && (super_klass =~ /^#{name}\./).nil?) end 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.1 | lib/bcdatabase/active_record/schema_qualified_tables_override_getters.rb |