Module: CapistranoMulticonfigParallel::InternalHelper

Included in:
ApplicationHelper
Defined in:
lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb

Overview

internal helpers for logging mostly

Class Method Summary collapse

Class Method Details

.check_file(file, filename) ⇒ Object



80
81
82
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 80

def check_file(file, filename)
  file.file? && file.basename.to_s.downcase == filename.to_s.downcase
end

.config_fileObject



105
106
107
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 105

def config_file
  File.join(detect_root.to_s, 'config', 'multi_cap.yml')
end

.create_log_file(file_path) ⇒ Object



121
122
123
124
125
126
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 121

def create_log_file(file_path)
  return if file_path.blank?
  directory = File.dirname(file_path)
  FileUtils.mkdir_p(directory) unless File.directory?(directory)
  FileUtils.touch(file_path) unless File.file?(file_path)
end

.custom_commandsObject



117
118
119
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 117

def custom_commands
  ['deploy_multi_stages']
end

.default_internal_configObject



19
20
21
22
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 19

def default_internal_config
  @default_config ||= fetch_default_internal_config
  @default_config
end

.default_internal_configuration_params(new_config) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 32

def default_internal_configuration_params(new_config)
  array = []
  new_config.each do |hash|
    array << [hash['name'], sliced_default_config(hash)]
  end
  array
end

.detect_rootObject



95
96
97
98
99
100
101
102
103
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 95

def detect_root
  if find_env_multi_cap_root
    Pathname.new(find_env_multi_cap_root)
  elsif defined?(::Rails)
    ::Rails.root
  else
    try_detect_capfile
  end
end

.enable_main_log_fileObject



128
129
130
131
132
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 128

def enable_main_log_file
  create_log_file(main_log_file)
  log_file = File.open(main_log_file, 'w')
  log_file.sync = true
end

.fail_capfile_not_found(root) ⇒ Object



68
69
70
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 68

def fail_capfile_not_found(root)
  fail "Can't detect Capfile in the  application root".red if pathname_is_root?(root)
end

.fetch_default_internal_configObject



24
25
26
27
28
29
30
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 24

def fetch_default_internal_config
  config = YAML.load_file(internal_config_file)['default_config']
  new_config = config.map do |hash|
    setup_default_configuration_types(hash)
  end
  default_internal_configuration_params(new_config)
end

.find_config_type(type) ⇒ Object



51
52
53
54
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 51

def find_config_type(type)
  type = type.to_s
  %w(boolean filename).include?(type) ? type.delete(':').to_sym : type.constantize
end

.find_env_multi_cap_rootObject



56
57
58
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 56

def find_env_multi_cap_root
  ENV['MULTI_CAP_ROOT']
end

.find_file_in_directory(root, filename) ⇒ Object



84
85
86
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 84

def find_file_in_directory(root, filename)
  root.children.find { |file| check_file(file, filename) }.present? || pathname_is_root?(root)
end

.internal_config_directoryObject



11
12
13
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 11

def internal_config_directory
  File.join(root.to_s, 'capistrano_multiconfig_parallel', 'configuration')
end

.internal_config_fileObject



15
16
17
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 15

def internal_config_file
  File.join(internal_config_directory, 'default.yml')
end

.log_directoryObject



109
110
111
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 109

def log_directory
  File.join(detect_root.to_s, 'log')
end

.main_log_fileObject



113
114
115
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 113

def main_log_file
  File.join(log_directory, 'multi_cap.log')
end

.multi_level_prop(config, prop) ⇒ Object



6
7
8
9
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 6

def multi_level_prop(config, prop)
  prop.split('.').each { |new_prop| config = config[new_prop] }
  config
end

.pathname_is_root?(root) ⇒ Boolean

Returns:



64
65
66
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 64

def pathname_is_root?(root)
  root.root?
end

.pwd_directoryObject



76
77
78
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 76

def pwd_directory
  Pathname.new(FileUtils.pwd)
end

.pwd_parent_dirObject



72
73
74
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 72

def pwd_parent_dir
  pwd_directory.directory? ? pwd_directory : pwd_directory.parent
end

.rootObject



60
61
62
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 60

def root
  File.expand_path(File.dirname(File.dirname(__dir__)))
end

.setup_default_configuration_types(hash) ⇒ Object



44
45
46
47
48
49
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 44

def setup_default_configuration_types(hash)
  hash.each_with_object({}) do |(key, value), memo|
    memo[key] = (key == 'type') ? find_config_type(value) : value
    memo
  end
end

.sliced_default_config(hash) ⇒ Object



40
41
42
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 40

def sliced_default_config(hash)
  hash.slice('type', 'description', 'default', 'required')
end

.try_detect_capfileObject



88
89
90
91
92
93
# File 'lib/capistrano_multiconfig_parallel/helpers/internal_helper.rb', line 88

def try_detect_capfile
  root = pwd_parent_dir
  root = root.parent until find_file_in_directory(root, 'capfile')
  fail_capfile_not_found(root)
  root
end