Class: Sbuilder::ExtensionLoader

Inherits:
Object
  • Object
show all
Includes:
ExtensionLoader_Deprecated_Step_Extensions, Utils::MyLogger
Defined in:
lib/sbuilder/extension_loader.rb

Constant Summary collapse

PROGNAME =

mixer

nil

Constants included from Utils::MyLogger

Utils::MyLogger::LOGFILE

Instance Attribute Summary collapse

contruct & configure collapse

Instance Method Summary collapse

Methods included from ExtensionLoader_Deprecated_Step_Extensions

#addTemplateData, #expandDefaultValue, #expandDefaults, #expandStepInputForDefaults, #expandStepInputForDefaultsRecursion, #extendNumbering, #extendStep, #extendStepDefaults, #extendStepInputs, #extendStep_Input, #extendStep_Inputs, #getDomainElement, #getDomainElement2, #locateParameter, #locateTemplateData, #parametersToBe, #recurseHash, #recurseStepDefaults, #recurseStepInputs

Methods included from Utils::MyLogger

#getLogger, #logfile

Constructor Details

#initialize(options = {}) ⇒ ExtensionLoader




24
25
26
27
28
# File 'lib/sbuilder/extension_loader.rb', line 24

def initialize( options = {} )
  @logger = getLogger( PROGNAME, options )
  @logger.debug( "#{__method__} initialized" )
  self
end

Instance Attribute Details

#controllerObject



9
10
11
# File 'lib/sbuilder/extension_loader.rb', line 9

def controller
  @controller
end

#setupNameObject



12
13
14
# File 'lib/sbuilder/extension_loader.rb', line 12

def setupName
  @setupName
end

Instance Method Details

#deprecatedInterfaceExtension(extensionDefs) ⇒ Object



117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# File 'lib/sbuilder/extension_loader.rb', line 117

def deprecatedInterfaceExtension( extensionDefs )
  <<-EOS
  Extension 'interface-extension' is deprecated - 
  use snippets configuration in sbuilder.yaml instead.

  For example:

  snippets:
  - className: Sbuilder::SnippetLoaderSimple 
    snippets:
          metatype: service_implementation
          appName: ...
          name: ...
  EOS
end

#doLoad(fileUri) ⇒ Object



56
57
58
59
60
61
# File 'lib/sbuilder/extension_loader.rb', line 56

def doLoad( fileUri )
  
  yaml = Sbuilder::Utils::NetIo.read_lines( fileUri )
  domains_hash = YAML.load( yaml )
  loadExtensions( domains_hash )
end

#extendInterface(interfaceExtensionDef) ⇒ Object


extend interface



112
113
114
115
# File 'lib/sbuilder/extension_loader.rb', line 112

def extendInterface( interfaceExtensionDef )
  @logger.info( "#{__method__} interfaceExtensionDef=#{interfaceExtensionDef}" )
  controller.extendInterface( interfaceExtensionDef )
end

#factoryObject



44
45
46
# File 'lib/sbuilder/extension_loader.rb', line 44

def factory
  controller.factory
end

#load(filePath, controller) ⇒ Object


load



50
51
52
53
54
# File 'lib/sbuilder/extension_loader.rb', line 50

def load( filePath, controller )
  @logger.info( "#{__method__} filePath=#{filePath}" )
  @controller = controller
  doLoad( filePath )
end

#loadExtensions(extensionsArr) ⇒ Object

iterate domains



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/sbuilder/extension_loader.rb', line 64

def loadExtensions( extensionsArr )
  extensionsArr && extensionsArr.each do |extensionDef|
    raise ExtensionException.new  "Invalid extension definition #{extensionDef}"  unless (extensionDef.keys.length == 1)
    # validateProperties( extensionDef, [], @@extensionDefProperties )
    key = extensionDef.keys.first
    case key
    when 'domain-extension'
      extensionDef[key].each do |domainDef|
        controller.dispatchExtendDomain( domainDef )
      end
    when 'interface-extension'
      msg = deprecatedInterfaceExtension( extensionDef[key] )
      @logger.error "#{__method__} #{msg}"
      raise  DeprecatedException.new( msg )
      # extensionDef[key].each do |interfaceExtesionDef|
      #   extendInterface( interfaceExtesionDef )
      # end
    # when 'step-extension'
    #   extensionDef[key].each do |stepExtensionDef|
    #     extendStep( stepExtensionDef )
    #   end
    else
      ldr = factory.getSetupLoader( key, controller, setupName )
      ldr.load( extensionDef[key] )
      # raise ExtensionException.new "Unknown extension type #{key} in #{extensionDef}"
    end
  end
end

#modelObject


model - is found using contorller



40
41
42
# File 'lib/sbuilder/extension_loader.rb', line 40

def model
  controller.model
end