Class: DTK::Network::Client::ModuleRef::Dependency::Local

Inherits:
DTK::Network::Client::ModuleRef::Dependency show all
Defined in:
lib/client/module_ref/dependency/local.rb

Constant Summary collapse

MODULE_FILE =
'dtk.module.yaml'

Instance Attribute Summary collapse

Attributes inherited from DTK::Network::Client::ModuleRef

#explicit_path, #full_name, #name, #namespace, #repo_dir

Instance Method Summary collapse

Methods inherited from DTK::Network::Client::ModuleRef::Dependency

create_local_or_remote, is_local?

Methods included from RestWrapper

#rest_delete, #rest_get, #rest_post

Constructor Details

#initialize(module_info) ⇒ Local

Returns a new instance of Local.



8
9
10
11
12
13
14
15
16
# 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

Instance Attribute Details

#sourceObject (readonly)

Returns the value of attribute source.



7
8
9
# File 'lib/client/module_ref/dependency/local.rb', line 7

def source
  @source
end

#versionObject (readonly)

Returns the value of attribute version.



7
8
9
# File 'lib/client/module_ref/dependency/local.rb', line 7

def version
  @version
end

Instance Method Details

#dtkn_versions_with_dependenciesObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 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