Module: PositiveBasicSupport::BasicObjectExt::ClassMethods
- Defined in:
- lib/positive_basic_support/basic_object_ext.rb
名前空間に関するメソッド collapse
-
#has_upper_namespaces? ⇒ Boolean
上位の名前空間が存在するか否かを判定するメソッド.
-
#upper_namespace ⇒ ::Class (Const)
上位の名前空間のリスト(すぐ上のみ).
-
#upper_namespaces(_has_upper_namespaces = nil) ⇒ ::Array
上位の名前空間のリスト(すべて) ::UpperNamespaceTest::A.upper_namespaces => [ ::UpperNamespaceTest ] ::UpperNamespaceTest::A::B.upper_namespaces => [ ::UpperNamespaceTest::A , ::UpperNamespaceTest ].
Instance Method Details
#has_upper_namespaces? ⇒ Boolean
上位の名前空間が存在するか否かを判定するメソッド
45 46 47 48 |
# File 'lib/positive_basic_support/basic_object_ext.rb', line 45 def has_upper_namespaces? # upper_namespaces.length > 1 /\:\:/ === name end |
#upper_namespace ⇒ ::Class (Const)
上位の名前空間のリスト(すぐ上のみ)
55 56 57 58 59 60 61 62 |
# File 'lib/positive_basic_support/basic_object_ext.rb', line 55 def upper_namespace _has_upper_namespaces = has_upper_namespaces? if _has_upper_namespaces upper_namespaces( _has_upper_namespaces ).first else nil end end |
#upper_namespaces(_has_upper_namespaces = nil) ⇒ ::Array
上位の名前空間のリスト(すべて)::UpperNamespaceTest::A.upper_namespaces => [ ::UpperNamespaceTest ] ::UpperNamespaceTest::A::B.upper_namespaces => [ ::UpperNamespaceTest::A , ::UpperNamespaceTest ]
25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/positive_basic_support/basic_object_ext.rb', line 25 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 |