class Ecic::Project

Constants

LIBRARIES_CFG_SCRIPT
SCRIPT_ECIC

Attributes

libraries[RW]
root[R]

Public Class Methods

new(root = Project::root) click to toggle source
# File lib/ecic/project.rb, line 10
def initialize(root = Project::root)
  @libraries = []
  @root = root
end
root(path = Pathname.new(Dir.pwd)) click to toggle source

Function that returns the root directory of a ECIC project This is used by some generators to check if a command is called from within an ECIC project folder

# File lib/ecic/project.rb, line 21
def self.root(path = Pathname.new(Dir.pwd))
  if File.exists?(File.join(path, SCRIPT_ECIC))
    return File.expand_path(path)
  elsif path.root?
    return nil
  end
  return root(path.parent)
end

Public Instance Methods

add_library(lib) click to toggle source
# File lib/ecic/project.rb, line 59
def add_library(lib)
  raise "A library called '#{lib.name}' already exists" if has_library?(lib)
  raise "A library is already mapped to '#{lib.path}'" if library_mapped_to(lib.path)
  @libraries << lib
  return true
end
design_library(name, options={}) click to toggle source

Function used in src/confic/libraries.rb

# File lib/ecic/project.rb, line 67
def design_library(name, options={})
  Library.new(self, name, :design, options)
end
get_library(lib_name) click to toggle source
# File lib/ecic/project.rb, line 53
def get_library(lib_name)
  matching_libraries = libraries.select {|l| l.name.eql? lib_name }
  raise "Found multiple libraries called '#{lib_name}'" if matching_libraries.length > 1
  matching_libraries.first
end
has_library?(library) click to toggle source
# File lib/ecic/project.rb, line 43
def has_library?(library)
  libraries.any? {|l| l.name.eql? library.name}
end
library_mapped_to(path) click to toggle source
# File lib/ecic/project.rb, line 47
def library_mapped_to(path)
  matching_libraries = libraries.select {|l| l.path.eql? path }
  raise "Found multiple libraries mapped to '#{path}'" if matching_libraries.length > 1
  matching_libraries.first
end
load_libraries() click to toggle source
# File lib/ecic/project.rb, line 30
    def load_libraries
      lib_file = File.join(@root, LIBRARIES_CFG_SCRIPT)
      if File.exists?(lib_file)
        begin
          eval File.read(lib_file)
        rescue Exception => exc
          raise "Syntax error occurred while reading #{lib_file}: #{exc.message}"
        end
#      else
#        raise "Could not read library definitions from #{lib_file}"
      end
    end
load_sources() click to toggle source
# File lib/ecic/project.rb, line 76
def load_sources
  libraries.each { |lib| lib.load_sources }
end
testbench_library(name, options={}) click to toggle source

Function used in src/confic/libraries.rb

# File lib/ecic/project.rb, line 72
def testbench_library(name, options={})
  Library.new(self, name, :testbench, options)
end