The active_module gem: Modules (or classes) as first class AR objects and object based enums

I have just published a new version of the active_module gem.

This gem allows storing Module or Class objects in active_record fields.

It also allows to deal with these fields are if they are C#/Java-like enums, whose values can respond to method calls.

class MyARObject < ActiveRecord::Base
  attribute :module_field,
            :active_module,
            possible_modules: [MyModule1, MyClass, Nested::Module]

  # optional, just for enum-like behaviour
  active_module_enum :module_field
end

# Assignment

object.module_field = Nested::Module
object.module_field = :Module
object.module_field = "Module"
object.module_field = :nested_module
object.module_field # => Nested::Module

# Querying

MyARObject.where(module_field: Nested::Module)
MyARObject.where(module_field: :Module)
MyARObject.where(module_field: "Module")
MyARObject.where(module_field: :nested_module) # underscored nested name

# Comparision
module MyNameSpace
  using ActiveModule::Comparison

  object.module_field =~ :Module
  object.module_field =~ "Module"
  object.module_field =~ :nested_module     # underscored nested name
end

# Enum-like behaviour provided by the active_module_enum invocation

MyARObject.fields # => { MyModule1 => "::MyModule1", MyClass => "::MyClass", Nested::Module => "::MyNestedModule" }

MyARObject.with_my_class.where(..)

object.my_class!

object.my_class?

Looking for feedback and comments. Please let me know what do you think about it.