Class: DTK::Client::Operation::ClientModuleDir::ServiceInstance::Internal

Inherits:
DTK::Client::Operation::ClientModuleDir::ServiceInstance show all
Defined in:
lib/client/operation/client_module_dir/service_instance/internal.rb,
lib/client/operation/client_module_dir/service_instance/internal/module_info.rb

Overview

All Internal methods do not have wrap_operation and can only be accessed by a method that wraps it

Defined Under Namespace

Classes: ModuleInfo

Constant Summary

Constants inherited from DTK::Client::Operation::ClientModuleDir

NAMESPACE_SEPERATOR

Constants inherited from DTK::Client::Operation

TYPES

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from DTK::Client::Operation::ClientModuleDir

create_file_with_content, create_module_dir, create_module_dir_from_path, create_service_dir, delete_directory_content, local_dir_exists?, ret_base_path, ret_path_with_current_dir, rm_f

Class Method Details

.clone(args) ⇒ Object



34
35
36
# File 'lib/client/operation/client_module_dir/service_instance/internal.rb', line 34

def self.clone(args)
  new(args).clone
end

.clone_nested_modules(args) ⇒ Object



38
39
40
# File 'lib/client/operation/client_module_dir/service_instance/internal.rb', line 38

def self.clone_nested_modules(args)
  new(args).clone_nested_modules
end

.commit_and_push_nested_modules(args) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/client/operation/client_module_dir/service_instance/internal.rb', line 55

def self.commit_and_push_nested_modules(args)
  service_instance     = args[:service_instance]
  service_instance_dir = args[:service_instance_dir] || ret_base_path(:service, service_instance)

  nested_modules_dir = find_nested_modules_dir(service_instance_dir)
  nested_modules     = Dir.glob("#{nested_modules_dir}/*")

  nested_modules_with_sha = []
  nested_modules.each do |nested_module|
    nested_module_name = nested_module.split('/').last
    response = ClientModuleDir::GitRepo.commit_and_push_to_nested_module_repo({target_repo_dir: nested_module})
    if head_sha = response.data(:head_sha)
      nested_modules_with_sha << { nested_module_name => head_sha }
    end
  end

  nested_modules_with_sha
end

.modified_service_instance_or_nested_modules?(args) ⇒ Boolean

Returns:

  • (Boolean)


74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/client/operation/client_module_dir/service_instance/internal.rb', line 74

def self.modified_service_instance_or_nested_modules?(args)
  service_instance_dir = args.required(:dir)
  command   = args.required(:command)
  error_msg = args.required(:error_msg)

  is_modified?(service_instance_dir, command, error_msg)

  nested_modules_dir = find_nested_modules_dir(service_instance_dir)
  nested_modules     = Dir.glob("#{nested_modules_dir}/*")

  nested_modules.each do |nested_module|
    nested_module_name = nested_module.split('/').last
    nested_error_msg = "There are uncommitted changes in nested module '#{nested_module_name}'! #{error_msg}"
    is_modified?(nested_module, command, nested_error_msg)
  end
end

.remove_nested_module_dirs(args) ⇒ Object



91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/client/operation/client_module_dir/service_instance/internal.rb', line 91

def self.remove_nested_module_dirs(args)
  service_instance     = args[:service_instance]
  service_instance_dir = args[:service_instance_dir] || ret_base_path(:service, service_instance)

  nested_modules_dir = find_nested_modules_dir(service_instance_dir)
  nested_modules     = Dir.glob("#{nested_modules_dir}/*")

  args[:nested_modules_to_delete].each do |nested_module|
    module_to_delete_path = "#{nested_modules_dir}/#{nested_module['display_name']}"
    FileUtils.remove_dir(module_to_delete_path) if nested_modules.include? module_to_delete_path
  end
  args[:nested_modules_to_delete]
end

Instance Method Details

#cloneObject



48
49
50
51
52
53
# File 'lib/client/operation/client_module_dir/service_instance/internal.rb', line 48

def clone
  @target_repo_dir = clone_base_module
  @nested_module_base = make_nested_module_base
  self.nested_modules.each { |nested_module| clone_nested_module(nested_module) }
  self.target_repo_dir
end

#clone_nested_modulesObject



42
43
44
45
46
# File 'lib/client/operation/client_module_dir/service_instance/internal.rb', line 42

def clone_nested_modules
  @target_repo_dir = self.repo_dir
  @nested_module_base = self.class.find_nested_modules_dir(self.repo_dir)
  self.nested_modules.each { |nested_module| clone_nested_module(nested_module) }
end