module Eapi::Children

Constants

CHILDREN

Public Class Methods

append(klass) click to toggle source
# File lib/eapi/children.rb, line 9
def self.append(klass)
  k           = self.key_for klass
  CHILDREN[k] = klass
end
get(klass_name, base_class = nil) click to toggle source
# File lib/eapi/children.rb, line 14
def self.get(klass_name, base_class = nil)
  k = key_for klass_name

  find(k) || find_bare(base_class, k)
end
has?(klass_name) click to toggle source
# File lib/eapi/children.rb, line 20
def self.has?(klass_name)
  !!self.get(klass_name)
end
list() click to toggle source
# File lib/eapi/children.rb, line 5
def self.list
  CHILDREN.values
end

Private Class Methods

find(k) click to toggle source
# File lib/eapi/children.rb, line 25
def self.find(k)
  CHILDREN[k] ||
    CHILDREN[k.gsub('__', '/')] ||
    CHILDREN.select { |key, _| key.gsub('/', '_') == k }.values.first
end
find_bare(base_class, k) click to toggle source
# File lib/eapi/children.rb, line 36
def self.find_bare(base_class, k)
  if base_class.present?
    base_key = key_for(base_class)
    find "#{base_key}/#{k}"
  else
    nil
  end
end
key_for(klass_name) click to toggle source
# File lib/eapi/children.rb, line 31
def self.key_for(klass_name)
  k = klass_name.to_s
  k.underscore
end