class OroGen::Loaders::Files

Attributes

available_projects[R]
available_typekits[R]

Public Class Methods

new(root_loader = self) click to toggle source
Calls superclass method OroGen::Loaders::Base.new
# File lib/orogen/loaders/files.rb, line 7
def initialize(root_loader = self)
    @available_projects = Hash.new
    @available_typekits = Hash.new
    super
end

Public Instance Methods

clear() click to toggle source
Calls superclass method OroGen::Loaders::Base#clear
# File lib/orogen/loaders/files.rb, line 13
def clear
    @available_projects.clear
    @available_typekits.clear
    super
end
deployment_model_from_name(name) click to toggle source
# File lib/orogen/loaders/files.rb, line 55
def deployment_model_from_name(name)
    if model = loaded_deployment_models[name]
        return model
    end

    each_project do |project|
        if m = project.find_deployment_by_name(name)
            loaded_deployment_models[name] = m
            return m
        end
    end
    raise DeploymentModelNotFound, "there is no deployment called #{name} on #{self}"
end
each_available_deployment_name() { |name| ... } click to toggle source
# File lib/orogen/loaders/files.rb, line 119
def each_available_deployment_name(&block)
    return enum_for(__method__) if !block_given?
    each_project do |project|
        project.each_deployment do |spec|
            yield(spec.name)
        end
    end
    nil
end
each_available_project_name(&block) click to toggle source
# File lib/orogen/loaders/files.rb, line 111
def each_available_project_name(&block)
    return available_projects.each_key(&block)
end
each_available_typekit_name(&block) click to toggle source
# File lib/orogen/loaders/files.rb, line 115
def each_available_typekit_name(&block)
    return available_typekits.each_key(&block)
end
each_project() { |project| ... } click to toggle source
# File lib/orogen/loaders/files.rb, line 77
def each_project
    return enum_for(__method__) if !block_given?

    available_projects.each_key do |project_name|
        project = begin
                      root_loader.project_model_from_name(project_name)
                  rescue Exception => e
                      OroGen.warn "could not load #{project_name}: #{e.message}"
                      next
                  end

        yield(project)
    end
    nil
end
find_project_from_deployment_name(name) click to toggle source
# File lib/orogen/loaders/files.rb, line 102
def find_project_from_deployment_name(name)
    each_project do |project|
        if project.find_deployment_by_name(name)
            return project.name
        end
    end
    nil
end
find_task_library_from_task_model_name(name) click to toggle source
# File lib/orogen/loaders/files.rb, line 93
def find_task_library_from_task_model_name(name)
    each_project do |project|
        if project.find_task_context(name)
            return project.name
        end
    end
    nil
end
has_project?(name) click to toggle source
# File lib/orogen/loaders/files.rb, line 33
def has_project?(name)
    available_projects.has_key?(name)
end
has_typekit?(name) click to toggle source
# File lib/orogen/loaders/files.rb, line 37
def has_typekit?(name)
    available_typekits.has_key?(name)
end
project_model_text_from_name(name) click to toggle source
# File lib/orogen/loaders/files.rb, line 24
def project_model_text_from_name(name)
    path = available_projects[name]
    if !path
        raise ProjectNotFound, "no project called #{name} on #{self}"
    end

    return File.read(path), path
end
register_orogen_file(path, name = nil) click to toggle source
# File lib/orogen/loaders/files.rb, line 19
def register_orogen_file(path, name = nil)
    name ||= File.basename(path, ".orogen")
    available_projects[name] = path
end
register_typekit(path, name) click to toggle source
# File lib/orogen/loaders/files.rb, line 41
def register_typekit(path, name)
    typelist = File.join(path, "#{name}.typelist")
    tlb      = File.join(path, "#{name}.tlb")
    available_typekits[name] = [typelist, tlb]
end
to_s() click to toggle source
# File lib/orogen/loaders/files.rb, line 73
def to_s;
    "#<OroGen::Loaders::Files(#{object_id.to_s(16)}) projects=#{available_projects.keys.sort.join(",")} typekits=#{available_typekits.keys.sort.join(",")}>"
end
typekit_model_text_from_name(name) click to toggle source
# File lib/orogen/loaders/files.rb, line 47
def typekit_model_text_from_name(name)
    typelist, tlb = available_typekits[name]
    if !typelist
        raise TypekitNotFound, "#{self} has not typekit named #{name}"
    end
    return File.read(tlb), File.read(typelist)
end