lib/spaced.rb in spaced-0.1.1 vs lib/spaced.rb in spaced-0.2.0

- old
+ new

@@ -12,14 +12,16 @@ attr_reader :parent end module ClassMethods - def namespace(name, &) - class_name = name.to_s.split("_").collect(&:capitalize).join - klass = eval <<-RUBY, binding, __FILE__, __LINE__ + 1 # rubocop:disable Security/Eval + def namespace(name, klass = nil, &) + unless klass + class_name = name.to_s.split("_").collect(&:capitalize).join + klass = eval <<-RUBY, binding, __FILE__, __LINE__ + 1 # rubocop:disable Security/Eval #{self}::#{class_name} = Class.new(Base, &) # Parent::Namespace = Class.new(Base, &) - RUBY + RUBY + end inst_name = :"@#{name}" define_method name do if instance_variable_defined?(inst_name) instance_variable_get inst_name