Module: Metanorma

Defined in:
lib/metanorma/standoc.rb,
lib/metanorma/standoc/version.rb,
lib/metanorma/standoc/processor.rb

Defined Under Namespace

Modules: Standoc

Class Method Summary collapse

Class Method Details

.all_modules(mod) ⇒ Object



9
10
11
12
13
# File 'lib/metanorma/standoc/version.rb', line 9

def all_modules(mod)
  [mod] + mod.constants.map { |c| mod.const_get(c) }
    .select {|c| c.is_a?(Module) && parent_of(c) == mod }
    .flat_map {|m| all_modules(m) }
end

.parent_of(mod) ⇒ Object



4
5
6
7
# File 'lib/metanorma/standoc/version.rb', line 4

def parent_of(mod)
  parent_name = mod.name =~ /::[^:]+\Z/ ? $`.freeze : nil
  Object.const_get(parent_name) if parent_name
end

.versioned(mod, flavour) ⇒ Object



15
16
17
18
# File 'lib/metanorma/standoc/version.rb', line 15

def versioned(mod, flavour)
  all_modules(mod).select {|c| defined? c::VERSION}.
    select {|c| c.name =~ /::#{flavour}$/ }
end