Parent

Class/Module Index [+]

Quicksearch

RGen::ModelBuilder::BuilderContext::ExtensionContainerFactory

Public Class Methods

new(rootPackage, extensionsModule, builderContext) click to toggle source
# File lib/rgen/model_builder/builder_context.rb, line 124
def initialize(rootPackage, extensionsModule, builderContext)
  @rootPackage, @extensionsModule, @builderContext = rootPackage, extensionsModule, builderContext
  @extensionContainer = {}
end

Public Instance Methods

extensionContainer(package) click to toggle source
# File lib/rgen/model_builder/builder_context.rb, line 147
def extensionContainer(package)
  return @extensionContainer[package] if @extensionContainer[package]
  container = ExtensionContainer.new(@builderContext)
  extensionModule = moduleForPackage(package)
  container.extend(extensionModule) if extensionModule
  @extensionContainer[package] = container
end
moduleForPackage(package) click to toggle source
# File lib/rgen/model_builder/builder_context.rb, line 129
def moduleForPackage(package)
  qName = package.qualifiedName
  rqName = @rootPackage.qualifiedName
  raise "Package #{qName} is not contained within #{rqName}" unless qName.index(rqName) == 0
  path = qName.sub(rqName,'').split('::')
  path.shift if path.first == ""
  mod = @extensionsModule
  path.each do |p|
    if mod && mod.const_defined?(p)
      mod = mod.const_get(p)
    else
      mod = nil
      break
    end
  end
  mod
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.