lib/industrialist/manufacturable.rb in industrialist-0.3.0 vs lib/industrialist/manufacturable.rb in industrialist-0.4.0
- old
+ new
@@ -1,16 +1,15 @@
require 'industrialist/factory'
require 'industrialist/warning_helper'
module Industrialist
module Manufacturable
- extend WarningHelper
+ ALREADY_INCLUDED_WARNING_MESSAGE = 'warning: overriding previously defined factory on this class hierarchy'.freeze
+ MULTIPLE_DEFAULT_WARNING_MESSAGE = 'warning: overriding a previously registered default class'.freeze
- ALREADY_INCLUDED_WARNING_MESSAGE = 'warning: a factory is already defined on this class hierarchy'.freeze
-
def self.included(base)
- warning(ALREADY_INCLUDED_WARNING_MESSAGE) if base.class_variable_defined?(:@@factory)
+ WarningHelper.warning(ALREADY_INCLUDED_WARNING_MESSAGE) if base.class_variable_defined?(:@@factory)
base.extend ClassMethods
base.class_variable_set(:@@factory, Industrialist::Factory.new)
end
@@ -19,9 +18,15 @@
Object.const_set(identifier, factory)
end
def corresponds_to(key)
factory.register(key, self)
+ end
+
+ def manufacturable_default
+ WarningHelper.warning(MULTIPLE_DEFAULT_WARNING_MESSAGE) if factory.registry[Industrialist::Factory::DEFAULT_KEY]
+
+ factory.register(Industrialist::Factory::DEFAULT_KEY, self)
end
def factory
class_variable_get(:@@factory)
end