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