lib/extensible/extension_kernel.rb in extensible-0.1.1 vs lib/extensible/extension_kernel.rb in extensible-0.1.2

- old
+ new

@@ -6,18 +6,26 @@ # A custom ExtensionKernelTemplate clone that is extended by Extensible to make it, well, extensible. ExtensionKernel = ExtensionKernelTemplate.clone.module_eval do private def extended(submodule) + raise_type_error_if_submodule_is_not_a_module(submodule) + super unless Utils.own_const_defined?(submodule, :ExtensionKernel) kernel = ExtensionKernelTemplate.clone submodule.const_set(:ExtensionKernel, kernel) submodule.extend kernel end self + end + + def raise_type_error_if_submodule_is_not_a_module(submodule) + return if submodule.class == Module + raise TypeError, "expected to extend object of type `Module` with module `#{name}`, got `#{submodule.class}` " \ + "instead" end self end end