From 72f6363b504264bf880bea6ac0469705974e9bd2 Mon Sep 17 00:00:00 2001 From: kitaro-tn Date: Mon, 18 Jul 2016 16:09:23 +0900 Subject: [PATCH] modify private access --- lib/as_namespace.rb | 7 ++++--- spec/as_namespace_spec.rb | 2 +- spec/support/sample_namespace.rb | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/as_namespace.rb b/lib/as_namespace.rb index f096c76..5f8d59f 100644 --- a/lib/as_namespace.rb +++ b/lib/as_namespace.rb @@ -10,18 +10,19 @@ module ClassMethod ## # @param [Module] module_obj - # @param [Object] alias_val - def as_namespace(module_obj:, alias_val:) + # @param [String] alias_val + def as_namespace(module_obj, alias_val) @module_obj = module_obj @alias_val = alias_val if (alias_val =~ /^[[:upper:]]/).nil? self.class_eval <<-EOS, __FILE__, __LINE__ + 1 - def #{alias_val} + private def #{alias_val} #{module_obj} end EOS else self.const_set(alias_val, module_obj) + self.private_constant(alias_val) end end diff --git a/spec/as_namespace_spec.rb b/spec/as_namespace_spec.rb index f1863ad..2337b52 100644 --- a/spec/as_namespace_spec.rb +++ b/spec/as_namespace_spec.rb @@ -8,7 +8,7 @@ it 'is abbreviated name' do test_class = TestClass - expect(test_class.instance_methods(false)).to include(:grand) + expect(test_class.instance_methods(false)).not_to include(:grand) expect(test_class.const_defined?(:CHILD)).to be true expect(test_class.new.grandson).to eq("Grandson") expect(test_class.new.child).to eq("Child") diff --git a/spec/support/sample_namespace.rb b/spec/support/sample_namespace.rb index 04bf6fd..ee6bbf5 100644 --- a/spec/support/sample_namespace.rb +++ b/spec/support/sample_namespace.rb @@ -26,8 +26,8 @@ class TestClass include AsNamespace - as_namespace module_obj: Parent::Child::Grandson, alias_val: :grand - as_namespace module_obj: Parent::Child, alias_val: :CHILD + as_namespace Parent::Child::Grandson, :grand + as_namespace Parent::Child, :CHILD attr_reader :grandson, :child