Module: Ruby::Node::Traversal::Module
- Included in:
- Ruby::Node
- Defined in:
- lib/traversal/module.rb
Instance Method Summary collapse
- #class_or_module? ⇒ Boolean
- #get_full_namespace(ns) ⇒ Object
- #get_namespace ⇒ Object
- #module_namespace?(namespace) ⇒ Boolean
- #namespace?(full_name) ⇒ Boolean
- #superclass?(value) ⇒ Boolean
Instance Method Details
#class_or_module? ⇒ Boolean
17 18 19 |
# File 'lib/traversal/module.rb', line 17 def class_or_module? [Ruby::Class, Ruby::Module].include?(self.class) end |
#get_full_namespace(ns) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/traversal/module.rb', line 30 def get_full_namespace(ns) if ns.respond_to?(:namespace) name = ns.identifier.token parent_ns = get_full_namespace(ns.namespace) name += ('::' + parent_ns) if !parent_ns.empty? return name.split('::').reverse.join('::') else return ns.identifier.token if ns.respond_to?(:identifier) "" end end |
#get_namespace ⇒ Object
25 26 27 28 |
# File 'lib/traversal/module.rb', line 25 def get_namespace return self.const.namespace if self.respond_to?(:const) self.identifier.namespace end |
#module_namespace?(namespace) ⇒ Boolean
21 22 23 |
# File 'lib/traversal/module.rb', line 21 def module_namespace?(namespace) namespace == get_full_namespace(get_namespace) end |
#namespace?(full_name) ⇒ Boolean
5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/traversal/module.rb', line 5 def namespace?(full_name) if full_name.split('::').size > 1 namespaces = full_name.split('::')[0..-2] namespace = namespaces.join('::') if class_or_module? return module_namespace?(namespace) end end true end |
#superclass?(value) ⇒ Boolean
42 43 44 45 46 47 48 |
# File 'lib/traversal/module.rb', line 42 def superclass?(value) if class_or_module? ns = get_full_namespace(self.super_class) return ns == value end false end |