Class: Rdm::PackageImporter
- Inherits:
-
Object
- Object
- Rdm::PackageImporter
- Defined in:
- lib/rdm/package_importer.rb
Class Method Summary collapse
-
.import_file(package_path, group: nil) ⇒ Rdm::Package
Initialize current package using Package.rb.
-
.import_package(package_name, source:, group: nil) ⇒ Object
Import package and initialize module.
- .instance ⇒ Object
- .reset! ⇒ Object
Instance Method Summary collapse
-
#import_file(package_path, group: nil) ⇒ Rdm::Package
Initialize current package using Package.rb.
-
#import_package(package_name, source:, group: nil) ⇒ Object
Import package and initialize module.
- #imported_configs ⇒ Object
- #imported_packages ⇒ Object
Class Method Details
.import_file(package_path, group: nil) ⇒ Rdm::Package
Initialize current package using Package.rb
10 11 12 |
# File 'lib/rdm/package_importer.rb', line 10 def import_file(package_path, group: nil) instance.import_file(package_path, group: group) end |
.import_package(package_name, source:, group: nil) ⇒ Object
Import package and initialize module
15 16 17 |
# File 'lib/rdm/package_importer.rb', line 15 def import_package(package_name, source:, group: nil) instance.import_package(package_name, source: source, group: group) end |
.instance ⇒ Object
19 20 21 |
# File 'lib/rdm/package_importer.rb', line 19 def instance @instance ||= new end |
.reset! ⇒ Object
23 24 25 |
# File 'lib/rdm/package_importer.rb', line 23 def reset! @instance = nil end |
Instance Method Details
#import_file(package_path, group: nil) ⇒ Rdm::Package
Initialize current package using Package.rb
32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/rdm/package_importer.rb', line 32 def import_file(package_path, group: nil) package = Rdm::PackageParser.parse_file(package_path) source = read_and_init_source(package.source) # Init Rdm.root based on Rdm.packages directory Rdm.root = File.dirname(package.source) # Import package and it's dependencies import_package(package.name, source: source, group: group.to_s) package end |
#import_package(package_name, source:, group: nil) ⇒ Object
Import package and initialize module
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/rdm/package_importer.rb', line 54 def import_package(package_name, source:, group: nil) return imported_packages if imported_packages.include?(package_name.to_s) package = source.packages[package_name.to_s] raise "Can't find package with name: #{package_name}" if package.nil? init_package(package, group: group) imported_packages << package_name # also import local dependencies package.local_dependencies(group).each do |dependency| import_package(dependency, source: source, group: group) end # also import config dependencies package.config_dependencies(group).each do |dependency| import_config(dependency, source: source) end # only after importing dependencies - require package itself begin require package_name rescue LoadError => e unless Rdm.settings.silence_missing_package_file package_require_path = "#{package_name}/#{package_subdir_name}/#{package_name}.rb" puts "WARNING: Can't require package #{package_name}, please make sure that file #{package_require_path} exists and it's valid." raise e end end imported_packages end |
#imported_configs ⇒ Object
49 50 51 |
# File 'lib/rdm/package_importer.rb', line 49 def imported_configs @imported_configs ||= [] end |
#imported_packages ⇒ Object
45 46 47 |
# File 'lib/rdm/package_importer.rb', line 45 def imported_packages @imported_packages ||= [] end |