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