module Metaractor::Namespace::ClassMethods

Public Instance Methods

i18n_parent_names() click to toggle source
# File lib/metaractor/namespace.rb, line 28
def i18n_parent_names
  module_parent_names.map {|name| underscore_module_name(name).to_sym }
end
module_parent_name() click to toggle source
# File lib/metaractor/namespace.rb, line 10
def module_parent_name
  if defined?(@parent_name)
    @parent_name
  else
    parent_name = name =~ /::[^:]+\z/ ? -$` : nil
    @parent_name = parent_name unless frozen?
    parent_name
  end
end
module_parent_names() click to toggle source
# File lib/metaractor/namespace.rb, line 20
def module_parent_names
  parents = []
  if module_parent_name
    parents = module_parent_name.split("::")
  end
  parents
end

Private Instance Methods

underscore_module_name(camel_cased_word) click to toggle source
# File lib/metaractor/namespace.rb, line 34
def underscore_module_name(camel_cased_word)
  return camel_cased_word unless /[A-Z-]|::/.match?(camel_cased_word)
  word = camel_cased_word.to_s.gsub("::", "/")
  word.gsub!(/([A-Z\d]+)([A-Z][a-z])/, '\1_\2')
  word.gsub!(/([a-z\d])([A-Z])/, '\1_\2')
  word.tr!("-", "_")
  word.downcase!
  word
end