def guise_of(source_class_name)
      options = Guise.registry[source_class_name]

      default_scope GuiseOfScope.new(name, options)
      after_initialize SourceCallback.new(name, options.attribute)
    end
def guise_of(source_class_name)
      options = Guise.registry[source_class_name]

      default_scope GuiseOfScope.new(name, options)
      after_initialize SourceCallback.new(name, options.attribute)
    end
Specifies that the model is a subclass of a model configured with
 {#has_guises} specified by `class_name`.

 Configures the caller with the correct `default_scope`. Given the
 following definition with `has_guises`:

 ```ruby
 class User < ActiveRecord::Base
   has_guises :DeskWorker, :MailForwarder, association: :roles, attribute: :title
 end
 ```

 The following call to `guise_of`:

 class DeskWorker < User
   guise_of :User
 end
 ```

 Is equivalent to:

 ```ruby
 class DeskWorker < User
   default_scope -> { desk_workers }

   after_initialize do
     self.guises.build(title: 'DeskWorker')
   end

   after_create do
     self.guises.create(title: 'DeskWorker')
   end
 end
 ```

 @param [String, Symbol] source_class_name name of the superclass
   configured with {#has_guises}.