def upper_namespaces( _has_upper_namespaces = nil )
      _has_upper_namespaces ||= has_upper_namespaces?
      if _has_upper_namespaces
        splited = self.name.split( "::" )[0..-2]
        ary = ::Array.new
        for i in 0..( splited.length - 1 )
          ary << eval( splited[ 0..i ].join( "::" ) )
        end
        ary.reverse
      else
        nil
      end
    end
def upper_namespaces( _has_upper_namespaces = nil )
      _has_upper_namespaces ||= has_upper_namespaces?
      if _has_upper_namespaces
        splited = self.name.split( "::" )[0..-2]
        ary = ::Array.new
        for i in 0..( splited.length - 1 )
          ary << eval( splited[ 0..i ].join( "::" ) )
        end
        ary.reverse
      else
        nil
      end
    end
@!group 名前空間に関するメソッド
 上位の名前空間のリスト（すべて）
 @return [::Array]
 @example
   module UpperNamespaceTest
     module A
       module B
         module C
         end
         module C::D
         end
       end
     end
   end

 ::UpperNamespaceTest::A.upper_namespaces => [ ::UpperNamespaceTest ]
 ::UpperNamespaceTest::A::B.upper_namespaces => [ ::UpperNamespaceTest::A , ::UpperNamespaceTest ]