class Cfhighlander::Factory::ComponentFactory

Attributes

component_sources[RW]

Public Class Methods

new(component_sources = [], parent_path=nil) click to toggle source
# File lib/cfhighlander.factory.rb, line 16
def initialize(component_sources = [], parent_path=nil)
  @template_finder = Cfhighlander::Factory::TemplateFinder.new(component_sources, parent_path)
  @component_sources = component_sources
end

Public Instance Methods

buildComponentFromLocation(template_meta, component_name) click to toggle source
# File lib/cfhighlander.factory.rb, line 36
def buildComponentFromLocation(template_meta, component_name)
  component = Model::Component.new(template_meta,
      component_name,
      self)
  component.factory = self
  component.load_config
  return component
end
loadComponentFromTemplate(template_name, template_version = nil, component_name = nil) click to toggle source

Find component and given list of sources @return [Cfhighlander::Factory::Component]

# File lib/cfhighlander.factory.rb, line 23
def loadComponentFromTemplate(template_name, template_version = nil, component_name = nil)

  template_meta = @template_finder.findTemplate(template_name, template_version)

  raise StandardError, "highlander template #{template_name}@#{template_version} not located" +
      " in sources #{@component_sources}" if template_meta.nil?

  component_name = template_meta.template_name if component_name.nil?
  return buildComponentFromLocation(template_meta, component_name)

end