class DTK::Network::Client::ModuleRef::Dependency::Local

Constants

MODULE_FILE

Attributes

source[R]
version[R]

Public Class Methods

new(module_info) click to toggle source
Calls superclass method
# File lib/client/module_ref/dependency/local.rb, line 8
def initialize(module_info)
  super(name: module_info[:name] || module_info['module'], namespace: module_info[:namespace] || module_info['namespace'])
  version_hash   = module_info[:version] || module_info['version']
  version_str    = version_hash[:version] || version_hash['version']
  version_source = version_hash[:source] || version_hash['source']

  @version = ModuleRef::Version.new(version_str)
  @source  = find_source(version_source)
end

Public Instance Methods

dtkn_versions_with_dependencies() click to toggle source
# File lib/client/module_ref/dependency/local.rb, line 18
def dtkn_versions_with_dependencies
  require 'dtk_dsl'
  file_type         = DTK::DSL::FileType::CommonModule::DSLFile::Top
  file_obj          = DTK::DSL::FileObj.new(file_type, @source, { content: FileHelper.get_content?("#{@source}/#{MODULE_FILE}") })
  parsed_module     = file_obj.parse_content(:common_module_summary)
  dependent_modules = parsed_module.val(:DependentModules) || []

  dependencies = dependent_modules.map { |dep| { 'namespace' => dep[:namespace], 'module' => dep[:module_name], 'version' => dep[:version] }}
  [
    {
      'name' => self.version.str_version,
      'version' => self.version.str_version,
      'dependencies' => dependencies
    }
  ]
end

Private Instance Methods

find_source(version_source) click to toggle source
# File lib/client/module_ref/dependency/local.rb, line 37
def find_source(version_source)
  if matching_source = version_source.match(/(file:)(.*)/)
    matching_source[2]
  else
    fail "Unsuppored source format: #{version_source}!"
  end
end