Parent

Class/Module Index [+]

Quicksearch

RGen::ModelBuilder::BuilderContext::PackageResolver

Public Class Methods

new(rootPackage, extensionFactory) click to toggle source
# File lib/rgen/model_builder/builder_context.rb, line 157
def initialize(rootPackage, extensionFactory)
  @rootPackage = rootPackage
  @extensionFactory = extensionFactory
  @packageByCommand = {}
end

Public Instance Methods

packageByCommand(contextPackage, name) click to toggle source
# File lib/rgen/model_builder/builder_context.rb, line 163
def packageByCommand(contextPackage, name)
  return @packageByCommand[[contextPackage, name]] if @packageByCommand.has_key?([contextPackage, name])
  if @extensionFactory.extensionContainer(contextPackage).respond_to?(name)
    result = contextPackage
  else
    className = name.to_s[0..0].upcase + name.to_s[1..-1]
    eClass = contextPackage.eClasses.find{|c| c.name == className}
    if eClass
      result = contextPackage
    elsif contextPackage != @rootPackage
      result = packageByCommand(contextPackage.eSuperPackage, name)
    else
      result = nil
    end
  end
  @packageByCommand[[contextPackage, name]] = result
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.